Page tree

Applies to VoipNow 3.5.X!

As mentioned in the upgrade notes, VoipNow 3.5 introduced a couple of new features like ICE support and several extra codecs. These updates ultimately led to larger SIP packages being sent (specifically packets with SDP like INVITE and 200 OK).

Out of the box, the INVITE of a call through a SIP channel looks as shown below:

Step-by-step guide

To see the contents of a fragmented packet, right-click the Data field in the packet and select Copy >> Bytes >> Printable Text Only.

INVITE sip:9002@10.150.20.14:5050 SIP/2.0
Record-Route: <sip:10.150.20.14;lr;ftag=as62688aa0;did=b81.56bd3304>
Record-Route: <sip:10.150.20.71;ftag=as62688aa0;lr;did=b81.0792>
Via: SIP/2.0/UDP 10.150.20.14:5060;branch=z9hG4bKb503.fb127c11.0
Via: SIP/2.0/UDP 10.150.20.71:5060;branch=z9hG4bKb503.27e6d8eace70b8b11962bd6487ee5284.0
Max-Forwards: 15
From: "Anonymous" <sip:0003*002@anonymous.invalid>;tag=as62688aa0
To: <sip:9002@10.150.20.14:5060>
Call-ID: 3e34fd7b4ae896b838f69d6a03fe388d@10.150.20.71
Contact: <sip:0003*002@10.150.20.71:5060>
CSeq: 102 INVITE
User-Agent: VoipNow PBX
Date: Wed, 23 Sep 2015 11:43:31 GMT
Min-SE: 1800
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH
Supported: replaces, timer
P-Asserted-Identity: <sip:+136476374382@vn-latest>
X-voipnow-extension: 0003*004
X-voipnow-pbx: 1dbfe69097
X-voipnow-infrastructureid: b32c8de7
Privacy: header; session
Remote-Party-ID: "Default user" <sip:+136476374382@10.150.20.71>;party=calling;privacy=full;screen=yes
Content-Type: application/sdp
Content-Length: 1617
X-voipnow-orgext: 0003*002
X-voipnow-user: 0003*002
v=0
o=root 1094204853 1094204853 IN IP4 10.150.20.71
s=VoipNow
c=IN IP4 10.150.20.71
b=CT:384
t=0 0
a=msid-semantic: WMS
m=audio 11860 RTP/AVP 8 109 115 102 117 119 97 100 96 108 0 9 107 112 3 101
c=IN IP4 10.150.20.71
a=rtcp:11861 IN IP4 10.150.20.71
a=rtpmap:8 PCMA/8000
a=rtpmap:109 opus/48000/2
a=fmtp:109 maxplaybackrate=16000;maxaveragebitrate=28000;stereo=1;useinbandfec=1
a=ptime:20
a=maxptime:20
a=rtpmap:115 G7221/32000
a=fmtp:115 bitrate=48000
a=rtpmap:102 G7221/16000
a=fmtp:102 bitrate=32000
a=rtpmap:117 speex/16000
a=rtpmap:119 speex/32000
a=rtpmap:97 iLBC/8000
a=fmtp:97 mode=20
a=rtpmap:100 speex/8000
a=rtpmap:96 SILK/16000
a=fmtp:96 maxaveragebitrate=30000
a=fmtp:96 usedtx=0
a=fmtp:96 useinbandfec=1
a=rtpmap:108 SILK/24000
a=fmtp:108 usedtx=0
a=fmtp:108 useinbandfec=1
a=rtpmap:0 PCMU/8000
a=rtpmap:9 G722/8000
a=rtpmap:107 G726-32/8000
a=rtpmap:112 AAL2-G726-32/8000
a=rtpmap:3 GSM/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=ptime:20
a=ssrc:1746168018 cname:audio_video_sync
a=ssrc:1746168018 msid:audiomsid
a=sendrecv
m=video 16914 RTP/AVP 120 99 98 34 31
c=IN IP4 10.150.20.71
a=rtcp:16915 IN IP4 10.150.20.71
a=ssrc:1650435408 cname:audio_video_sync
a=ssrc:1650435408 msid:videomsid
a=rtpmap:120 VP8/90000
a=rtcp-fb:120 ccm fir
a=rtpmap:99 H264/90000
a=fmtp:99 redundant-pic-cap=0;parameter-add=0;packetization-mode=0;level-asymmetry-allowed=0
a=rtpmap:98 h263-1998/90000
a=fmtp:98 F=0;I=0;J=0;T=0;K=0;N=0;BPP=0;HRD=0
a=rtpmap:34 H263/90000
a=fmtp:34 F=0;I=0;J=0;T=0;K=0;N=0;BPP=0;HRD=0
a=rtpmap:31 H261/90000
a=recvonly

UDP fragmentation occurs when the datagram size exceeds the MTU size of the network it is passing through.

Once fragmented, an IP datagram is not reassembled until it has reached its final destination. While there are mechanisms that can reassemble the UDP packets, some providers or extensions fail to respond to fragmented UDP packets.

In such cases, re-transmissions with the fragmented INVITE occur until VoipNow eventually times out and cancels the call. To solve this problem, you may perform the following operations on the VoipNow server: 

  1. Use TCP instead of UDP.
  2. Disable the codecs that you're not using. This will decrease the size of the SDP. You can do this either for channels, or extensions. To apply the changes immediately, run the following command: 

    asterisk -rx "sip reload"
  3. Disable ICE and AVPF support by performing the following operations:

    In /etc/asterisk/sip.conf, set these parameters to "no":

    icesupport=yes                                          ; ICE is enabled
    avpf=yes                                                ; Enable audio-video profile for feedback

    In /etc/asterisk/rtp.conf, set this parameter to "false":

    icesupport=true

All these changes will require an Asterisk restart.

#trackbackRdf ($trackbackUtils.getContentIdentifier($page) $page.title $trackbackUtils.getPingUrl($page))

Except where otherwise noted, content in this space is licensed under a Creative Commons Attribution 4.0 International.