Bugs item #1692858, was opened at 2007-04-02 14:47
Message generated for change (Tracker Item Submitted) made by Item Submitter
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=100235&aid=1692858&group_id=235

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: None
Group: None
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: Chris Brody (cbrody)
Assigned to: Nobody/Anonymous (nobody)
Summary: SIP/SIMPLE register/auth/message problems with Siemens

Initial Comment:
I have encountered several problems when connecting to a Siemens CSCF. I made 
some quick fixes to get this to work, as shown in the attached diff file.

Unfortunately, I did not yet succeed to get the presence information (PUBLISH) 
to work with the Siemens CSCF. I will try again at some other point.

So far, I have got the basic registration and a simple MESSAGE to work.

I am now testing some other functionality with the Siemens CSCF for the next 
1-2 months. If these problems are fixed and committed before I am done, I will 
be happy to try the new version as well.

I will try to make a complete list, as concise as I can:

1. The Siemens CSCF uses abbreviated headers, such as l:0 for Content-Length: 
0. These abbreviated headers are valid according to RFC 3261, but they are not 
supported in the current SIMPLE protocol library.

2. simple.c: in the "auth" HTTP Digest authentication (auth->type == 1), upon 
receiving the WWW-Authenticate:Digest in a challenge response (401 
Unauthorized) to the first REGISTER request, the client must put in a CNONCE 
value, and of course use it in gaim_cipher_http_digest_calculate_session_key() 
& gaim_cipher_http_digest_calculate_response().

3. simple.c: in addition, the qop ("auth" for Siemens) must be used in 
gaim_cipher_http_digest_calculate_response().

4. Some of the WWW-Authenticate parameters from the Siemens CSCF are separated 
by "," only, no space between them. In fill_auth(), the 2nd g_strsplit() 
function call should be replaced by: parts = g_strsplit_set(hdr, ", ", 0);

5. In send_sip_request(), it is only in the REGISTER message for which the 
Request URI & authentication URI should have been the same. For others such as 
MESSAGE, even though the Request URI has the end-username, the auth URI was 
still sip:servername.

6. To submit a MESSAGE (as well as any other request beyond registration), the 
Proxy-Authorization: must be included using the authorization from the 
successful REGISTER transaction. To fix send_sip_request() for MESSAGE, I put 
the following lines right before if(sip->proxy.type && strcmp(method, 
"REGISTER")):
        if(sip->registrar.type && !strcmp(method, "MESSAGE")) {
                buf = auth_header(sip, &sip->registrar, method, auth_uri);
                auth = g_strdup_printf("Proxy-Authorization: %s", buf);
                g_free(buf);
                gaim_debug(GAIM_DEBUG_MISC, "simple", "header %s", auth);
        }
        else

At this point, my fixes are in rough form. If some fixes are committed, I will 
be happy to try them again assuming that I still have access.

Thanks,
Chris

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=100235&aid=1692858&group_id=235

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Gaim-bugs mailing list
Gaim-bugs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gaim-bugs

Reply via email to