[Freeswitch-users] Call transfer fails in proxy media and bypass media modes in FreeSWITCH revision 15700
John Platts
john_platts at hotmail.com
Sat Nov 28 21:34:24 PST 2009
I have updated my FreeSWITCH installation to revision 15700. I am experiencing call transfer problems whenever proxy media or bypass media is enabled. When proxy media and bypass media are both disabled, the call transfer does not fail and there are no audio issues. When proxy media mode is enabled, the call stays up after the transfer occurs, but there is no audio flowing on either end of the call. When bypass media mode is enabled, there is no audio flowing on either end of the call, and the call actually gets disconnected.
I have collected detailed traces using the TPORT_LOG=1 /usr/local/freeswitch/bin/freeswitch command. I have attached a ZIP file named freeswitch-rev15700-traces-112809-2210.zip, which includes the following traces:
- freeswitch-rev15700-trace-112809-2210-proxyandbypassoff.txt - A trace with both media proxying and media bypass disabled. The call is being transferred without any problems in this scenario.
- freeswitch-rev15700-trace-112809-2210-proxyonandbypassoff.txt - A trace with media proxying enabled and media bypass disabled. Media proxying is enabled for the call legs in this scenario. The call stays up in this scenario, but there is no audio flowing after the transfer completed. In this scenario, FreeSWITCH does not shutdown cleanly, and there is a segmentation violation when FreeSWITCH is terminated.
- freeswitch-rev15700-trace-112809-2210-proxyandbypasson.txt - A trace with both media proxying and media bypass enabled. Media bypass is enabled for the call legs in this scenario. The call actually gets dropped and there is no audio after the transfer is completed in this scenario.
I have looked over the SIP traces of the failing scenarios.
I have caught the following problems in the failing scenarios:
- The o= line in SDP descriptors coming from the IP phone contains the private IP address, but the c= line in the SDP descriptors coming from the IP phone contains the public IP address. I have noticed a problem in re-INVITEs being sent from in proxy media and bypass media modes. The c= line in the re-invites contains the private IP address instead of the public IP address. The c= line was modified by a SIP ALG to contain a public IP address, but FreeSWITCH is actually not handling this correctly when calls are transferred.
- The wrong codec is being negotiated in re-INVITE to the transferred number in the scenario when media proxying is enabled but media bypass is disabled.
- In the scenario where media bypass is used, the re-INVITE actually appears to contain the correct details, and we are receiving the correct responses from our IP to IP gateway, but FreeSWITCH is not handling the media streams properly.
Example of SDP descriptor coming from IP phone (with SDP descriptor modified by SIP ALG):
v=0
o=- 123576 123576 IN IP4 192.168.1.4
s=-
c=IN IP4 173.57.44.212
t=0 0
m=audio 16406 RTP/AVP 18 0 8 2 9 104 101
a=rtpmap:18 G729/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:2 G726-32/8000
a=rtpmap:9 G722/8000
a=rtpmap:104 L16/16000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=ptime:20
a=sendrecv
Notice that the c= line has the correct public IP address and the m= line containing the correct port.
Example of incorrect SDP descriptor being sent by FreeSWITCH in re-INVITES:
v=0
o=- 121397 121398 IN IP4 192.168.1.4
s=-
c=IN IP4 192.168.1.4
t=0 0
m=audio 16404 RTP/AVP 18 0 8 101
a=rtpmap:18 G729/8000
a=fmtp:18 annexb=no
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=sendonly
a=ptime:20
Note that the c= line contains the wrong IP address, but the m= line contains the correct RTP port.
Example of wrong re-INVITE message being sent to the number that the call was being transferred to:
INVITE sip:19729831777 at 168.75.202.246:5060 SIP/2.0
Via: SIP/2.0/UDP 168.75.202.212:5062;rport;branch=z9hG4bKF1KrDreNFQgaj
Max-Forwards: 69
From: "John Platts" <sip:19725357722 at 168.75.202.212>;tag=c61Drt38KF72m
To: <sip:19729831777 at ipipgw.ipdimensions.com>;tag=2B1339E0-1A2C
Call-ID: 1c095553-5741-122d-33a8-00185167f91d
CSeq: 123615824 INVITE
Contact: <sip:mod_sofia at 168.75.202.212:5062>
User-Agent: FreeSWITCH-mod_sofia/1.0.trunk-15700M
Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, UPDATE, INFO, REGISTER, REFER, NOTIFY
Supported: timer, precondition, path, replaces
Content-Type: application/sdp
Content-Disposition: session
Content-Length: 183
X-FS-Support: update_display
Remote-Party-ID: "John Platts" <sip:19725357722 at 168.75.202.212>;party=calling;screen=yes;privacy=off
v=0
o=- 123576 123577 IN IP4 192.168.1.4
s=-
c=IN IP4 168.75.202.212
t=0 0
m=audio 30186 RTP/AVP 101 13
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=rtpmap:13 CN/8000
Here is the correct re-INVITE for the call that was unsuccessfully transferred (after the transfer was completed):
INVITE sip:19729555871 at 168.75.202.246:5060 SIP/2.0
Via: SIP/2.0/UDP 168.75.202.212:5062;rport;branch=z9hG4bKgaDHFKZrc06vD
Max-Forwards: 16
From: <sip:19725357722 at 168.75.202.212>;tag=BX8mpZj5p6ggS
To: <sip:19729555871 at 168.75.202.246>;tag=2B12D184-BEC
Call-ID: 15A1F95-DBD611DE-8C95D9DF-3419A306 at 168.75.202.246
CSeq: 123615820 INVITE
Contact: <sip:19725357722 at 168.75.202.212:5062;transport=udp>
User-Agent: FreeSWITCH-mod_sofia/1.0.trunk-15700M
Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, UPDATE, INFO, REGISTER, REFER, NOTIFY
Supported: timer, precondition, path, replaces
Content-Type: application/sdp
Content-Disposition: session
Content-Length: 222
X-FS-Support: update_display
v=0
o=- 121397 121399 IN IP4 192.168.1.4
s=-
c=IN IP4 168.75.202.212
t=0 0
m=audio 26106 RTP/AVP 0 101
a=rtpmap:0 PCMU/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=silenceSupp:off - - - -
a=ptime:20
_________________________________________________________________
Windows 7: I wanted simpler, now it's simpler. I'm a rock star.
http://www.microsoft.com/Windows/windows-7/default.aspx?h=myidea?ocid=PID24727::T:WLMTAGL:ON:WL:en-US:WWL_WIN_myidea:112009
-------------- next part --------------
A non-text attachment was scrubbed...
Name: freeswitch-rev15700-traces-112809-2210.zip
Type: application/zip
Size: 75260 bytes
Desc: not available
Url : http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20091128/dd970d52/attachment-0002.zip
More information about the FreeSWITCH-users
mailing list