Patches item #1692858, was opened at 2007-04-02 08:47 Message generated for change (Settings changed) made by thekingant You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=300235&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 ---------------------------------------------------------------------- Comment By: Chris Brody (cbrody) Date: 2007-04-02 08:49 Message: Logged In: YES user_id=1757099 Originator: YES File Added: Siemens-message1.zip ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=300235&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-patches mailing list Gaim-patches@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/gaim-patches