Benny, THANK YOU SO MUCH FOR YOUR FEEDBACK!! I'm going to try and modify the existing source to see if I can add NTLM to the parser. I'll keep you updated as to my progress. If I end reverse engineering NTLM would it be beneficial to include in PJSIP? -Tavaris On 6/10/11 3:05 AM, "Benny Prijono" <bennylp at teluu.com> wrote: > On Fri, Jun 3, 2011 at 8:14 PM, Thomas Tavaris J (Tavaris) > <tjthomas at lgsinnovations.com> wrote: >> Hello members, >> >> I apologize for repeated requests but I have not heard from anyone. Surely >> someone has experienced my situation. >> I am trying to parse a SIP Instant Message. The Instant Message (Method: >> MESSAGE) header contains the field Proxy-Authorization: ?NTLM >> >> And the 200 OK reply header contains the field Authentication-Info: NTLM >> >> Both of these packets in my program cause the pjsip_parse_msg function to >> return NULL and generate PJSIP syntax error. I?ve looked through the >> documentation (Developer Guide) The authentication header provided in PJSIP >> does not support NTLM(which is fine) I just want to my add a custom header. >> >> 1. Based on the information in the guide I think I need to tell the endpoint >> to support a new header correct? >> >> 2. I have to create a new header ?struct based on the two fields mentioned >> above that I want to capture in instant message >> >> 3. I then have to extend the parser to support new types of headers? >> >> Are there any steps I?m missing? >> >> > > Actually those aren't the right steps. The parser for > "Proxy-Authorization" is already registered by sip_auth_parser.c, > hence any subsequent attempt to register the parser for the same > header will fail with assertion. > > So instead of registering a parser, what you need to do is to extend > the existing "Proxy-Authorization" parser and its friends. > Unfortunately pjsip does not have plug-in mechanism for this kind of > customization, so you'd have to modify the various sip_auth_xxx files > for this. The existing code supports both "basic" and "digest", so > adding "ntlm" shouldn't be too difficult. Note that I'm only talking > about supporting it syntactically, not performing the actual NTLM > auth. > > >> ?Things get even more confusing when reading section 4.3 of developers guide >> as this isn?t clear: >> typedef pjsip_hdr* (pjsip_parse_hdr_func)(pjsip_parse_ctx *context); >> pj_status_t pjsip_register_hdr_parser( const char *hname, >> const char *hshortname, >> pjsip_parse_hdr_func *fptr); >> >> Register new function to parse new type of SIP message header. There no >> clear examples of how to tie these things together or if I am missing >> something at all. I?ve grep?d through the PJSIP source to see examples of >> how to implement something similar but I am stuck. Could someone please >> advise??? >> > > I'm not sure what you mean. The pjsip source code is full of header > parsers that you can use as sample, just have a look at sip_parser.c? > > Cheers > Benny > > _______________________________________________ > Visit our blog: http://blog.pjsip.org > > pjsip mailing list > pjsip at lists.pjsip.org > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 4191 bytes Desc: not available URL: <http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/attachments/20110610/ac7d4723/attachment.p7s>