Here is a patch that fixes the below mentioned subscription issues. The
problem was the multiple Authorization headers. Subscriptions now work
properly with Asterisk 1.4 (and I think is much closer to the SIP spec).
This issue is also present in the new version of libosip on trunk.

 

Patch attached to bug report.

 

http://dev.openwengo.com/trac/openwengo/trac.cgi/ticket/1265

 

-Lukas

  _____  

From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Lukas
Oberhuber
Sent: 06 January 2007 14:45
To: [email protected]
Subject: [Wengophone-devel] SIP Subscribe/Notify Problem

 

Hello,

 

I'm running into some issues using a SIP SUBSCRIBE and wondered if anyone
here knows the answer.

 

Exosip/osip is (in branch wengophone2.0 at least) is returning multiple
authentication headers in the sip response to an authentication challenge.
This behaviour does not appear to be correct, and it is causing problems
when connecting to Asterisk 1.4. Can anyone tell me if I am right or wrong?

 

The problems referred to above: server complains about old nonces and then
stops notifying presence changes.

 

The evidence about the incorrect behaviour:

>From the SIP RFC 3261, section 22.2 (http://www.ietf.org/rfc/rfc3261.txt)

 
        Once credentials have been located, any UA that wishes to
   authenticate itself with a UAS or registrar -- usually, but not
   necessarily, after receiving a 401 (Unauthorized) response -- MAY do
   so by including an Authorization header field with the request.  The
   Authorization field value consists of credentials containing the
   authentication information of the UA for the realm of the resource
   being requested as well as parameters required in support of
   authentication and replay protection.
 
   An example of the Authorization header field is:
 
      Authorization: Digest username="bob",
              realm="biloxi.com",
              nonce="dcd98b7102dd2f0e8b11d0f600bfb0c093",
              uri="sip:[EMAIL PROTECTED]",
              qop=auth,
              nc=00000001,
              cnonce="0a4f113b",
              response="6629fae49393a05397450978507c4ef1",
              opaque="5ccc069c403ebaf9f0171e9517f40e41"
 
   When a UAC resubmits a request with its credentials after receiving a
   401 (Unauthorized) or 407 (Proxy Authentication Required) response,
   it MUST increment the CSeq header field value as it would normally
   when sending an updated request.

 

The challenge response from Wengophone:

 

| INFO1 | <wifo\eXosip\src\jcallback.c: 274> Message sent: 
SUBSCRIBE sip:[EMAIL PROTECTED] SIP/2.0
Via: SIP/2.0/UDP
192.168.1.69:5060;rport;branch=z9hG4bK4259280421;xxx-nat-type=sym
Route: <sip:sipalive.com:5060;lr>
From: lukas <sip:[EMAIL PROTECTED]>;tag=2544574891
To: <sip:[EMAIL PROTECTED]>
Call-ID: [EMAIL PROTECTED]
CSeq: 23 SUBSCRIBE
Contact: <sip:[EMAIL PROTECTED]:5060>
Authorization: Digest username="lukas", realm="asterisk", nonce="49ebc1bc",
uri="sip:[EMAIL PROTECTED]", response="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
algorithm=MD5
Authorization: Digest username="lukas", realm="asterisk", nonce="5cfd830b",
uri="sip:[EMAIL PROTECTED]", response="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
algorithm=MD5
Authorization: Digest username="lukas", realm="asterisk", nonce="26a381bb",
uri="sip:[EMAIL PROTECTED]", response="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
algorithm=MD5
Max-Forwards: 70
Event: presence
User-Agent: wengo/v1/wengophoneng/wengo/rev0/branches/wengophone-2.0/
Expires: 600
Allow: INVITE, ACK, CANCEL, BYE, OPTIONS, REFER, SUBSCRIBE, NOTIFY, MESSAGE
Accept: application/pidf+xml
Content-Length: 0

 

_______________________________________________
Wengophone-devel mailing list
[email protected]
http://dev.openwengo.com/mailman/listinfo/wengophone-devel

Reply via email to