[Gaim-patches] [ gaim-Patches-1692858 ] SIP/SIMPLE register/auth/message problems with Siemens

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

[Gaim-patches] [ gaim-Patches-1692858 ] SIP/SIMPLE register/auth/message problems with Siemens

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:

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);
                gaim_debug(GAIM_DEBUG_MISC, "simple", "header %s", auth);

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.



Comment By: Chris Brody (cbrody)
Date: 2007-04-02 08:49

Logged In: YES
Originator: YES

File Added: Siemens-message1.zip


You can respond by visiting:

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
Gaim-patches mailing list
[hidden email]