[Freeswitch-dev] bad REGISTER processing

kokoska rokoska kokoska.rokoska at post.cz
Sun Apr 6 04:48:54 EDT 2008


Hi all,

I just start to play with Freeswitch and first thing I discover is bad 
REGISTER processing in mod_sofia :-(

The problem is, that Sofia modifies Contact header (append port 5060 
which is not in original REGISTER request) in 200 OK reply and thus a ot 
of clients refuses it (for example SJPhone, Nokia E series etc.).
Full debug is included at the end of my e-mail.


In this manner Freeswitch behaviour IMO violates rfc3261:

19.1.4 URI Comparison
...

A URI omitting any component with a default value will not
match a URI explicitly containing that component with its
default value.  For instance, a URI omitting the optional port
component will not match a URI explicitly declaring port 5060.
The same is true for the transport-parameter, ttl-parameter,
user-parameter, and method components.

Defining sip:user at host to not be equivalent to
sip:user at host:5060 is a change from RFC 2543.  When deriving
addresses from URIs, equivalent addresses are expected from
equivalent URIs.  The URI sip:user at host:5060 will always
resolve to port 5060.  The URI sip:user at host may resolve to
other ports through the DNS SRV mechanisms detailed in [4].
...


Could you please tell me how to configure mod_sofia to properly handle 
REGISTER request?

Thanx a lot, regards

kokoska.rokoska


----------------------------
SIP debug made with SJPhone:

2008-04-06 08:26:36.093 UDP LOCAL->192.168.1.128:5065
REGISTER sip:192.168.1.128:5065 SIP/2.0
Via: SIP/2.0/UDP 
192.168.1.101;branch=z9hG4bKc0a801650000001e47f8893c000053f900000006;rport
From: "unknown" <sip:1000 at 192.168.1.128:5065>;tag=42f1ed397
To: <sip:1000 at 192.168.1.128:5065>
Contact: <sip:1000 at 192.168.1.101>
Call-ID: 02C388469A134FC18B97E294E4BD845C0xc0a80165
CSeq: 3 REGISTER
Max-Forwards: 70
User-Agent: SJphone/1.65.377a (SJ Labs)
Content-Length: 0


2008-04-06 08:26:36.109 UDP 192.168.1.128:5065->LOCAL
SIP/2.0 401 Unauthorized
Via: SIP/2.0/UDP 
192.168.1.101;branch=z9hG4bKc0a801650000001e47f8893c000053f900000006;rport=5060
From: "unknown" <sip:1000 at 192.168.1.128:5065>;tag=42f1ed397
To: <sip:1000 at 192.168.1.128:5065>;tag=vHv1X7K9yemUe
Call-ID: 02C388469A134FC18B97E294E4BD845C0xc0a80165
CSeq: 3 REGISTER
User-Agent: FreeSWITCH-mod_sofia/1.0.pre4-8038
Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, PRACK, MESSAGE, SUBSCRIBE, 
NOTIFY, REFER, UPDATE, REGISTER, INFO, PUBLISH
Supported: 100rel, precondition, timer
WWW-Authenticate: Digest realm="192.168.1.128", 
nonce="3a4ee704-f9a9-4789-9853-e8e8d6b562e9", algorithm=MD5, qop="auth"
Content-Length: 0


2008-04-06 08:26:36.109 UDP LOCAL->192.168.1.128:5065
REGISTER sip:192.168.1.128:5065 SIP/2.0
Via: SIP/2.0/UDP 
192.168.1.101;branch=z9hG4bKc0a801650000001f47f8893c00007cb100000008;rport
From: "unknown" <sip:1000 at 192.168.1.128:5065>;tag=42f1ed397
To: <sip:1000 at 192.168.1.128:5065>
Contact: <sip:1000 at 192.168.1.101>
Call-ID: 02C388469A134FC18B97E294E4BD845C0xc0a80165
CSeq: 4 REGISTER
Max-Forwards: 70
User-Agent: SJphone/1.65.377a (SJ Labs)
Content-Length: 0
Authorization: Digest 
username="1000",realm="192.168.1.128",nonce="3a4ee704-f9a9-4789-9853-e8e8d6b562e9",uri="sip:192.168.1.128:5065",response="cd1a36378bdb3efaabcfa263a6b9f24c",algorithm=MD5,cnonce="5536ed3a7",qop=auth,nc=00000001


2008-04-06 08:26:36.109 UDP 192.168.1.128:5065->LOCAL
SIP/2.0 200 OK
Via: SIP/2.0/UDP 
192.168.1.101;branch=z9hG4bKc0a801650000001f47f8893c00007cb100000008;rport=5060
From: "unknown" <sip:1000 at 192.168.1.128:5065>;tag=42f1ed397
To: <sip:1000 at 192.168.1.128:5065>;tag=XtNtZ24cvQaea
Call-ID: 02C388469A134FC18B97E294E4BD845C0xc0a80165
CSeq: 4 REGISTER
Contact: "user" <sip:1000 at 192.168.1.101:5060>;expires=60
User-Agent: FreeSWITCH-mod_sofia/1.0.pre4-8038
Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, PRACK, MESSAGE, SUBSCRIBE, 
NOTIFY, REFER, UPDATE, REGISTER, INFO, PUBLISH
Supported: 100rel, precondition, timer
Content-Length: 0


10:26:36 SIP.Registration WARNING   Registrar did not registered none of 
our contacts!
10:26:36 SIP.Registration NOTICE    Foreign contacts returned by the 
server: sip:1000 at 192.168.1.101:5060
10:26:36 SIP.Registration INFO      Not registered 
sip:1000 at 192.168.1.128:5065
10:26:36 SIP.RegistrationClient INFO      Registration reattempt 
scheduled after 60 seconds
10:26:36 SIP.Network DEBUG
2008-04-06 08:26:36.234 UDP 192.168.1.128:5065->LOCAL
NOTIFY sip:1000 at 192.168.1.101:5060 SIP/2.0
Via: SIP/2.0/UDP 192.168.1.128:5065;rport;branch=z9hG4bKc5ZBa6F96yHee
Max-Forwards: 70
From: <sip:1000 at 192.168.1.128>;tag=y3eK1XNgS000N
To: <sip:1000 at 192.168.1.128>
Call-ID: feef82f8-7e55-122b-fb8d-000854d1424f
CSeq: 97616858 NOTIFY
Contact: <sip:mod_sofia at 192.168.1.128:5065>
User-Agent: FreeSWITCH-mod_sofia/1.0.pre4-8038
Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, PRACK, MESSAGE, SUBSCRIBE, 
NOTIFY, REFER, UPDATE, REGISTER, INFO, PUBLISH
Supported: 100rel, precondition, timer
Event: message-summary
Subscription-State: terminated;timeout
Content-Type: application/simple-message-summary
Content-Length: 65

Messages-Waiting: no
Message-Account: sip:1000 at 192.168.1.128


10:26:36 SIP.Network DEBUG
2008-04-06 08:26:36.234 UDP LOCAL->192.168.1.128:5065
SIP/2.0 200 OK
Via: SIP/2.0/UDP 
192.168.1.128:5065;branch=z9hG4bKc5ZBa6F96yHee;rport=5065;received=192.168.1.128
From: <sip:1000 at 192.168.1.128>;tag=y3eK1XNgS000N
To: "unknown" <sip:1000 at 192.168.1.128>;tag=6c19ed424
Call-ID: feef82f8-7e55-122b-fb8d-000854d1424f
CSeq: 97616858 NOTIFY
Content-Length: 0
Server: SJphone/1.65.377a (SJ Labs)




More information about the Freeswitch-dev mailing list