[Freeswitch-dev] FreeSWITCH Nortel Gateway Interop

Benjamin Willis bwillis at teldio.com
Tue May 5 11:51:41 PDT 2009


Greetings,

We are performing interop testing to have FreeSWITCH as a gateway  
with a Nortel CS1000 box and would appreciate any help resolving our  
issues.  There is a box that is a registrar and a redirect server.   
We can successfully register against this box.  The box is picky  
about the invites we send; it expects something like the following :

INVITE sip:2270;phone-context=cdp.udp at newdomain.com;user=phone SIP/2.0

After great help from the freeSWITCH IRC we came up with the  
following dialplan entry to achieve this style header :

<action application="bridge" data="sofia/internal/sip:$1;phone- 
context=cdp.udp at newdomain.com;user=phone;fs_path=sip: 
192.168.15.8:5060;"/>

At this point we are sending the formatted INVITE message as the  
redirect server expects.  Our next issue where we would appreciate  
help is after the INVITE is sent, the redirect server sends back a  
302 Moved Temporarily as expected.

    SIP/2.0 302 Moved Temporarily
    Via: SIP/2.0/TCP  
192.168.15.11;branch=z9hG4bKy0NcZvFcNr1ZB;received=192.168.15.11
    From: "User 210" <sip:2300 at 192.168.15.11>;tag=jjmgrmHN6Qjaa
    To: <sip:2270;phone- 
context=cdp.udp at newdomain.com;user=phone>;tag=49582
    Call-ID: 6998551e-b04c-122c-2d80-39a48cb53b8d
    CSeq: 114437328 INVITE
    Contact: <sip:2270;phone-context=cdp.udp at newdomain.com: 
5060;maddr=192.168.15.10;transport=tcp;user=phone;x-nt- 
redirect=redirect-server>
    Content-Length: 0

The subsequent INVITE message is, again, sent back to the redirect  
server, not to the machine indicated by the maddr entry in the  
Contact field.  The new INVITE looks like this :

INVITE sip:2270;phone-context=cdp.udp at newdomain.com: 
5060;maddr=192.168.15.10;transport=tcp;user=phone;x-nt- 
redirect=redirect-server SIP/2.0
Via: SIP/2.0/UDP 192.168.15.11;rport;branch=z9hG4bK93BXjtmKD9pcN
Route: <sip:192.168.15.8:5060>
Max-Forwards: 69
From: "User 210" <sip:2300 at 192.168.15.11>;tag=ppSKZmm0rpS3e
To: <sip:2270;phone-context=cdp.udp at newdomain.com;user=phone>
Call-ID: ce59ac9e-b058-122c-2780-39a48cb53b8d
CSeq: 114439989 INVITE
Contact: <sip:mod_sofia at 192.168.15.11:5060>
User-Agent: FreeSWITCH-mod_sofia/1.0.3-12163
Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, PRACK, MESSAGE, SUBSCRIBE,  
NOTIFY, REFER, UPDATE, REGISTER, INFO, PUBLISH
Supported: timer, precondition, path, replaces
Allow-Events: talk, presence, dialog, call-info, sla, include-session- 
description, presence.winfo, message-summary, refer
Content-Type: application/sdp
Content-Disposition: session
Content-Length: 360
Remote-Party-ID: "User 210" <sip: 
2300 at 192.168.15.11>;screen=yes;privacy=off

v=0
o=FreeSWITCH 6002387420083056305 1437766807142321498 IN IP4  
192.168.15.11
s=FreeSWITCH
c=IN IP4 192.168.15.11
t=0 0
m=audio 28220 RTP/AVP 10 0 8 9 3 101 13
a=rtpmap:10 L16/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:9 G722/8000
a=rtpmap:3 GSM/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=rtpmap:13 CN/8000
a=ptime:20

The following is a wireshark capture of the repeated INVITE messages  
back to the same machine, it repeats 3 times after the initial invite :

Conv.| Time    | 192.168.15.11     | 192.168.15.8      |
0    |17.284   |         INVITE SDP ( 16-bit audio, stereo g711U  
g711A ...2 GSM teleph)          |SIP From: sip:2300 at 192.168.15.11  
To:sip:2270
      |         |(5060)   ------------------>  (5060)   |
0    |17.291   |         302 Moved Temporarily          |SIP Status
      |         |(5060)   <------------------  (5060)   |
0    |17.291   |         ACK       |                   |SIP Request
      |         |(5060)   ------------------>  (5060)   |
---------------------------------------------------------
1    |17.291   |         INVITE SDP ( 16-bit audio, stereo g711U  
g711A ...2 GSM teleph)          |SIP From: sip:2300 at 192.168.15.11  
To:sip:2270
      |         |(5060)   ------------------>  (5060)   |
1    |17.298   |         302 Moved Temporarily          |SIP Status
      |         |(5060)   <------------------  (5060)   |
1    |17.298   |         ACK       |                   |SIP Request
      |         |(5060)   ------------------>  (5060)   |
---------------------------------------------------------
2    |17.298   |         INVITE SDP ( 16-bit audio, stereo g711U  
g711A ...2 GSM teleph)          |SIP From: sip:2300 at 192.168.15.11  
To:sip:2270
      |         |(5060)   ------------------>  (5060)   |
2    |17.304   |         302 Moved Temporarily          |SIP Status
      |         |(5060)   <------------------  (5060)   |
2    |17.305   |         ACK       |                   |SIP Request
      |         |(5060)   ------------------>  (5060)   |
---------------------------------------------------------
3    |17.305   |         INVITE SDP ( 16-bit audio, stereo g711U  
g711A ...2 GSM teleph)          |SIP From: sip:2300 at 192.168.15.11  
To:sip:2270
      |         |(5060)   ------------------>  (5060)   |
3    |17.311   |         302 Moved Temporarily          |SIP Status
      |         |(5060)   <------------------  (5060)   |
3    |17.311   |         ACK       |                   |SIP Request
      |         |(5060)   ------------------>  (5060)   |

At this point we are a little stuck.  We feel that the use of fs_path  
may be having unwanted effects on our redirects after looking at  
sofia_glue.c:sofia_glue_do_invite() and the parsing of the fs_path  
variable.  We haven't filed this as a bug as it may be intended  
functionality and would like to get some insight from the more  
experience members before going down such a path.

Thanks in advance.




More information about the Freeswitch-dev mailing list