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