Environment
- ha-sip version: 5.6
- Home Assistant OS 18.1 (aarch64 / raspberrypi4-64)
- HA Core 2026.7.2
- SIP provider: Vono (Brazil), NextRouter C4 SoftSwitch v5.3.1
Problem
Outgoing calls fail silently with my provider because the INVITE
exceeds the Ethernet MTU and gets IP-fragmented. The provider's
softswitch drops the fragments, so no response is ever received.
REGISTER works fine (498 bytes) and gets a 200 OK; only INVITE fails.
Message sizes observed:
- With ICE enabled: 2490 bytes (SDP 1884)
- With
--ice disabled --use-stun-for-media disabled: 1556 bytes (SDP 958)
Still above the ~1472-byte UDP payload limit. TCP fallback is not an
option: the provider refuses TCP connections on port 5060
("TCP connect() error: Connection refused"), and pjsip's automatic
UDP->TCP switch for large messages therefore fails.
A softphone (Zoiper) using the exact same credentials places calls
successfully, which confirms the account and routing are fine and
isolates the issue to SDP size.
What inflates the SDP
- Codecs the provider never uses: speex (3 variants), iLBC, GSM,
G722, opus. Only PCMU/PCMA are needed.
- A second media line
m=text ... RTP/AVP 100 98 (red/t140),
which is useless for this use case and costs ~200 bytes.
- Four telephone-event rtpmap entries for sample rates that are
not applicable.
Requested feature
Per-account options to control the SDP offer, for example:
options: '--codecs PCMU,PCMA --disable-text-media'
Limiting the codec list alone would bring the INVITE well under the
MTU and make ha-sip usable with providers that cannot accept TCP.
Workaround currently required
Running a local Asterisk instance as an intermediary purely to
re-generate a smaller SDP, which is a heavy dependency for what is
essentially a one-line codec configuration.
Thanks for the add-on — everything else works great.
Environment
Problem
Outgoing calls fail silently with my provider because the INVITE
exceeds the Ethernet MTU and gets IP-fragmented. The provider's
softswitch drops the fragments, so no response is ever received.
REGISTER works fine (498 bytes) and gets a 200 OK; only INVITE fails.
Message sizes observed:
--ice disabled --use-stun-for-media disabled: 1556 bytes (SDP 958)Still above the ~1472-byte UDP payload limit. TCP fallback is not an
option: the provider refuses TCP connections on port 5060
("TCP connect() error: Connection refused"), and pjsip's automatic
UDP->TCP switch for large messages therefore fails.
A softphone (Zoiper) using the exact same credentials places calls
successfully, which confirms the account and routing are fine and
isolates the issue to SDP size.
What inflates the SDP
G722, opus. Only PCMU/PCMA are needed.
m=text ... RTP/AVP 100 98(red/t140),which is useless for this use case and costs ~200 bytes.
not applicable.
Requested feature
Per-account options to control the SDP offer, for example:
Limiting the codec list alone would bring the INVITE well under the
MTU and make ha-sip usable with providers that cannot accept TCP.
Workaround currently required
Running a local Asterisk instance as an intermediary purely to
re-generate a smaller SDP, which is a heavy dependency for what is
essentially a one-line codec configuration.
Thanks for the add-on — everything else works great.