2009/2/3 Andrew Rechenberg Lists <flux...@resurgent.com>:
> My Sofia-based application is talking to a Microsoft OCS 2007 server and
> I believe, in true MS fashion, that certain headers are not quite in
> adherence to the RFCs.  Could it be that Sofia is not parsing those
> headers as a result of them not being standard?

>   Authentication-Info: NTLM rspauth="01000000000000002DBA2B7889FDE4C9",
> srand="E8CDC093", snum="1", opaque="F06AE926", qop="auth",
> targetname="OCS1.flux.local", realm="SIP Communications Service"

Authentication-Info is non-standard (MS-version borrows the syntax
from WWW-Authenticate, it seems to me). I have not checked, but the
rest of the comma-separated fields should be in ai_items[] array.

Please note that sip->sip_authentication_info->ai_common->h_data is
not valid if the parser has not been asked to cache the unparsed
contents (TPORT_LOG environment variable forces the parser to do
caching. It might be quite confusing if your code works with debugging
logs on, but does not when they are turned off).

>   Allow-Events:
> vnd-microsoft-provisioning,vnd-microsoft-roaming-contacts,vnd-microsoft-
> roaming-ACL,presence,presence.wpending,vnd-microsoft-roaming-self,vnd-mi
> crosoft-provisioning-v2

> The Allow-Events information in sip->sip_allow_events seems to only
> contain the first entry (in my case I only see
> "vnd-microsoft-provisioning" in the debugger).
> sip->sip_allow_events->k_next is NULL.

Allow-Events is parsed as a "list" header, that is, instead of having
separate sip_allow_events_t structure for each token, tokens are
stored in k_items. So vnd-microsoft-roamin-contacts should be in
k_items[1] (In retrospective, that is feature that overtly complicates
header processing).

> Also, the sip->sip_contact information only has pieces of the full
> contact line listed above.

> In particular I need to keep track of the gruu="*" information in the
> Contact header, and some additional information in the
> Authentication-Info, and Allow-Events headers.

The params from Contact URL are as a single string in
m_url->url_params (you can use url_param() function to access any of
them). The header parameters (like gruu, outside <>) are in m_params[]
array.

-- 
Pekka.Pessi mail at nokia.com

------------------------------------------------------------------------------
Create and Deploy Rich Internet Apps outside the browser with Adobe(R)AIR(TM)
software. With Adobe AIR, Ajax developers can use existing skills and code to
build responsive, highly engaging applications that combine the power of local
resources and data with the reach of the web. Download the Adobe AIR SDK and
Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com
_______________________________________________
Sofia-sip-devel mailing list
Sofia-sip-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sofia-sip-devel

Reply via email to