Hello all,
I have been trying forever to get this Cisco 7970 to work
properly with our freeswitch (latest git). The phone will
register fine, and it will make outbound calls perfectly. The
problem is with inbound calls to this phone, where FS tries to
contact it on the wrong UDP port. The entire system here is on
a local lan, and NAT has been disabled via --nonat cmd line FS
parameter.
Here is what it looks like when registered:
sofia status profile internal reg
Call-ID: 00181844-c24f0002-25f0dff2-c470b5a7@192.168.2.59
User: 15@x.y.com
Contact: "user" <sip:15@192.168.2.59:5060;transport=udp;fs_nat=yes;fs_path=sip%3A15%40192.168.2.59%3A49320%3Btransport%3Dudp>
Agent: Cisco-CP7970G/8.5.2
Status: Registered(UDP-NAT)(unknown) EXP(2011-12-22
21:31:47) EXPSECS(724)
Host: x.y.com
IP: 192.168.2.59
Port: 49165
Auth-User: 15
Auth-Realm: x.y.com
FS tries to contact the phone using the fs_path, which is
getting set incorrectly. I'm not why FS thinks the fs_path
should be different, as it appears the Cisco is sending proper
Contact header in the sip requests/responses.
Also, we have a bunch of ATA's on the same lan which all work
fine (meaning the fs_path is correct). I tried chaning the
NDLB-force-rport param in the internal context, but didn't seems
to change anything.
Here are the SIP traces which show what's happening. Any ideas
of what's going on would be appreciated.
Thanks,
Matt
192.168.2.59 is the cisco phone.
192.168.2.1 is FS (listening on port 5070).
recv 713 bytes from udp/[192.168.2.59]:49320 at
02:28:01.712338:
------------------------------------------------------------------------
REGISTER sip:x.y.com
SIP/2.0
Via: SIP/2.0/UDP 192.168.2.59:5060;branch=z9hG4bKd9e43394
From: <sip:15@x.y.com>;tag=00181844c24f0002a0bb4968-7b2b7dd4
To: <sip:15@x.y.com>
Call-ID: 00181844-c24f0002-eb21e8a8-77681214@192.168.2.59
Max-Forwards: 70
Date: Fri, 23 Dec 2011 02:28:00 GMT
CSeq: 101 REGISTER
User-Agent: Cisco-CP7970G/8.5.2
Contact: <sip:15@192.168.2.59:5060;transport=udp>;+sip.instance="<urn:uuid:00000000-0000-0000-0000-00181844c24f>";+u.sip!model.ccm.cisco.com="30006"
Supported: (null),X-cisco-xsi-7.0.1
Content-Length: 0
Reason: SIP;cause=200;text="cisco-alarm:20
Name=SEP00181844C24F Load=SIP70.8-5-2S Last=phone-keypad"
Expires: 3600
send 689 bytes to udp/[192.168.2.59]:5060 at
02:28:01.715057:
------------------------------------------------------------------------
SIP/2.0 401 Unauthorized
Via: SIP/2.0/UDP 192.168.2.59:5060;branch=z9hG4bKd9e43394
From: <sip:15@x.y.com>;tag=00181844c24f0002a0bb4968-7b2b7dd4
To: <sip:15@x.y.com>;tag=Qv2N52egZ2teH
Call-ID: 00181844-c24f0002-eb21e8a8-77681214@192.168.2.59
CSeq: 101 REGISTER
User-Agent: FreeSWITCH-mod_sofia/1.0.head-git-8059cdc
2011-12-22 14-03-32 -0600
Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, UPDATE,
INFO, REGISTER, REFER, NOTIFY, PUBLISH, SUBSCRIBE
Supported: timer, precondition, path, replaces
WWW-Authenticate: Digest realm="x.y.com",
nonce="fae142ab-8b00-4ac7-89d7-04955e8714f6", algorithm=MD5,
qop="auth"
Content-Length: 0
recv 958 bytes from udp/[192.168.2.59]:49320 at
02:28:01.725802:
------------------------------------------------------------------------
REGISTER sip:x.y.com
SIP/2.0
Via: SIP/2.0/UDP 192.168.2.59:5060;branch=z9hG4bK18d5a468
From: <sip:15@x.y.com>;tag=00181844c24f0002a0bb4968-7b2b7dd4
To: <sip:15@x.y.com>
Call-ID: 00181844-c24f0002-eb21e8a8-77681214@192.168.2.59
Max-Forwards: 70
Date: Fri, 23 Dec 2011 02:28:00 GMT
CSeq: 102 REGISTER
User-Agent: Cisco-CP7970G/8.5.2
Contact: <sip:15@192.168.2.59:5060;transport=udp>;+sip.instance="<urn:uuid:00000000-0000-0000-0000-00181844c24f>";+u.sip!model.ccm.cisco.com="30006"
Authorization: Digest username="15",realm="x.y.com",uri="sip:x.y.com",response="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",nonce="fae142ab-8b00-4ac7-89d7-04955e8714f6",cnonce="4f2a64d4",qop=auth,nc=00000001,algorithm=MD5
Supported: (null),X-cisco-xsi-7.0.1
Content-Length: 0
Reason: SIP;cause=200;text="cisco-alarm:20
Name=SEP00181844C24F Load=SIP70.8-5-2S Last=phone-keypad"
Expires: 3600
send 649 bytes to udp/[192.168.2.59]:5060 at
02:28:01.737460:
------------------------------------------------------------------------
SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.2.59:5060;branch=z9hG4bK18d5a468
From: <sip:15@x.y.com>;tag=00181844c24f0002a0bb4968-7b2b7dd4
To: <sip:15@x.y.com>;tag=SeN78rgQSm7Kr
Call-ID: 00181844-c24f0002-eb21e8a8-77681214@192.168.2.59
CSeq: 102 REGISTER
Contact: <sip:15@192.168.2.59:5060;transport=udp>;expires=3600
Date: Fri, 23 Dec 2011 02:28:01 GMT
User-Agent: FreeSWITCH-mod_sofia/1.0.head-git-8059cdc
2011-12-22 14-03-32 -0600
Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, UPDATE,
INFO, REGISTER, REFER, NOTIFY, PUBLISH, SUBSCRIBE
Supported: timer, precondition, path, replaces
Content-Length: 0
--------------- OK, so far so good.. phone is now
registered.. Now look how FS tries to contact it.. sending
notify's here: Note the port it tries to use, 49320 in this
case.
send 1034 bytes to udp/[192.168.2.59]:49320 at
02:28:01.837149:
------------------------------------------------------------------------
NOTIFY sip:15@192.168.2.59:5060;transport=udp;fs_nat=yes;fs_path=sip:15%40192.168.2.59:49320%3Btransport%3Dudp
SIP/2.0
Via: SIP/2.0/UDP
192.168.2.1:5070;rport;branch=z9hG4bKv92r0r53rQKNa
Route: <sip:15@192.168.2.59:49320>;transport=udp
Max-Forwards: 70
From: <sip:15@192.168.2.1>;tag=U07rcFjyK6KSF
To: <sip:15@192.168.2.1>
Call-ID: 93e179d6-a7b0-122f-d396-5254003b348b
CSeq: 21967576 NOTIFY
Contact: <sip:mod_sofia@192.168.2.1:5070>
User-Agent: FreeSWITCH-mod_sofia/1.0.head-git-8059cdc
2011-12-22 14-03-32 -0600
Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, UPDATE,
INFO, REGISTER, REFER, NOTIFY, PUBLISH, SUBSCRIBE
Supported: timer, precondition, path, replaces
Event: message-summary
Allow-Events: talk, hold, presence, dialog, line-seize,
call-info, sla, include-session-description, presence.winfo,
message-summary, refer
Subscription-State: terminated;reason=timeout
Content-Type: application/simple-message-summary
Content-Length: 69
Messages-Waiting: no
Message-Account: sip:15@x.y.com
The phone never responds, as FS is supposed to contact it on
port 5060, but FS is trying to use the same port that phone
sent is SIP messages on. Here is a sample INVITE:
send 1229 bytes to udp/[192.168.2.59]:49320 at
02:38:15.217775:
------------------------------------------------------------------------
INVITE sip:15@192.168.2.59:5060;transport=udp
SIP/2.0
Via: SIP/2.0/UDP
192.168.2.1:5070;rport;branch=z9hG4bK0D8U748HDUc0r
Route: <sip:15@192.168.2.59:49320>;transport=udp
Max-Forwards: 69
From: "x x x" <sip:11@192.168.2.1>;tag=63X9ZrB5K886e
To: <sip:15@192.168.2.59:5060;transport=udp>
Call-ID: 00e33727-a7b2-122f-d396-5254003b348b
CSeq: 21967883 INVITE
Contact: <sip:mod_sofia@192.168.2.1:5070>
User-Agent: FreeSWITCH-mod_sofia/1.0.head-git-8059cdc
2011-12-22 14-03-32 -0600
Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, UPDATE,
INFO, REGISTER, REFER, NOTIFY, PUBLISH, SUBSCRIBE
Supported: timer, precondition, path, replaces
Allow-Events: talk, hold, presence, dialog, line-seize,
call-info, sla, include-session-description, presence.winfo,
message-summary, refer
Content-Type: application/sdp
Content-Disposition: session
Content-Length: 204
X-FS-Support: update_display,send_info
Remote-Party-ID: "x x x" <sip:11@192.168.2.1>;party=calling;screen=yes;privacy=off
v=0
o=FreeSWITCH 1324545412 1324545413 IN IP4 192.168.2.1
s=FreeSWITCH
c=IN IP4 192.168.2.1
t=0 0
m=audio 62482 RTP/AVP 18 0 8 101 13
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=ptime:20