~ $ gh search issues --include-prs --author jjaroztegi
Contributions
Fixes I sent upstream, most of them to SIP and voice AI projects, and the issues I filed. States as GitHub showed them on . When a maintainer took a fix over, the state is that of their pull request.
OpenSIPS
The SIP server: its call recording (siprec) and back-to-back (b2b_entities) modules.
#4321merged
siprec freed a call's context while the dialog still pointed to it, so workers crashed when a recording failed.
siprec: keep the ctx until the dialog is destroyed
#4325merged
After sending a request, b2b_entities wrote to a dialog that another process could already have freed.
b2b_entities: do not use the client dlg after sending the request
#4326merged
When the recording server answered after the call had ended, siprec never freed the session.
siprec: release the session when the SRS answers after the call ended
AI Voice Connector CE
OpenSIPS's bridge from a SIP call to an AI engine. These fixes come from rtpbench's findings, and rtpbench re-measured the connector with all of them merged.
github.com/OpenSIPS/opensips-ai-voice-connector-certpbench's re-measurement
#30merged
A hang-up while the AI was still connecting left the AI session open, with nobody on the call.
call: stop the AI when the call ends while it connects
#31merged
A failed transfer hung up on the caller. Now the call goes on, as RFC 5589 asks.
call: keep the call when a transfer fails
#32merged
When OpenAI rejected the session settings, the call went on without instructions, and the caller heard noise.
openai: end the call when the session is rejected
#33merged
The example configurations listened on UDP only, so a large INVITE, which must go over TCP, was refused.
examples: listen for SIP over TCP too
#34merged
An INVITE with compact header names (f:, t:, i:) got 500 Server Internal Error.
utils: accept compact header names
#35merged
An a=ssrc line without an attribute, as some softphones send it, left the INVITE unanswered.
engine: ignore a=ssrc lines without an attribute
#36merged
On hold, the connector still sent the caller audio it had already queued.
call: send no queued audio while on hold
#37merged
An in-dialog INFO, OPTIONS or UPDATE got no final response, so the caller retransmitted it for 32 s.
engine: answer in-dialog requests that are not handled
LiveKit
LiveKit's SIP bridge and the libraries under it.
sip#901taken over in sip#917, merged
An INVITE rejected for its media got 400 with an empty reason phrase, so the trunk's admin could not tell why.
Give media rejections of an inbound INVITE a reason phrase
sip#902open since
After a re-INVITE that holds the call with c=0.0.0.0, the bridge keeps sending audio to the caller.
Stop sending media when a re-INVITE holds with c=0.0.0.0
sipgo#18open since
Over UDP, a fast final response can delete the transaction before it is read, so a REFER that worked is reported failed.
Fix UDP client transaction deleted by a final response that arrives during Init
sip#906issue, open since
About 1 in 30-40 blind transfers over UDP is reported failed, although the peer accepted and completed it.
REFER over UDP reported failed although the peer answered 202
media-sdk#109issue, open since
The 48 to 8 kHz resampler skips a 20 ms frame 4.2 s into a call, so the RTP runs 20 ms behind its timestamps.
resampleWriter skips a 20 ms frame when soxr returns one sample short (48 to 8 kHz)
T3 Code
A desktop and web app for coding agents. A maintainer is taking both fixes over to land them on current main.
#18596open since
T3 Connect turned off in Settings comes back on after a restart, and the tunnel with it.
fix(server): T3 Connect exposure stays off after a restart
#18597taken over in #24570, open since
An SSH host alias with RemoteCommand or RequestTTY set breaks T3's own SSH sessions, so the remote environment cannot be added.
fix(ssh): ignore RemoteCommand and RequestTTY from host aliases
Jellyfin Enhanced
A plugin that adds to Jellyfin's web interface.
github.com/n00bcodr/Jellyfin-Enhanced
#884merged
Defaults an admin set for everyone never reached users without saved settings: the plugin looked up the server's PascalCase names in camelCase.
fix(settings): resolve casing mismatch when merging server plugin defaults