[reSIProcate] [reSIProcate-users] question about ExtensionHeader and ExtensionParameter

John Gregg jgregg at aylus.com
Fri May 23 11:58:31 CDT 2014



OK - In that case, I'd like to put in a plea for an enhancement. 
Ideally, I'd like user-defined proprietary headers and parameters to 
work together as well as the predefined ones do. That is, I'd like to be 
able to do

ExtensionHeader fooHdr("P-Foo");
ExtensionParameter batParam("bat");

sipMsg->header(FooHdr).front().exists(batParam), 
sipMsg->header(FooHdr).front().param(batParam).front(), etc. I think 
this only makes sense.

Barring that, it seems to me that at the very least, the above stuff 
should not compile. It is misleading that 
sipMsg->header(FooHdr).front().exists(batParam) compiles just fine, but 
is useless, and always returns FALSE no matter what the content of the 
proprietary header in the SIP message. This fooled me for a while, and I 
had to dig and hack some test cases to figure out what was really going on.

Thanks,

-John Gregg



On 05/23/2014 11:57 AM, Scott Godin wrote:
> That is correct.  :)
>
> You can use the ParseBuffer class to do customized parsing.
>
> Scott
>
>
> On Fri, May 23, 2014 at 11:38 AM, John Gregg <jgregg at aylus.com 
> <mailto:jgregg at aylus.com>> wrote:
>
>     Am I correct in thinking that if I have a proprietary header that
>     I define with ExtensionHeader, I can't use ExtensionParameter to
>     grab its parameters? It looks like if I have a SIP message containing:
>
>     P-Foo: someData;faz=3;bat=987;bar=cheddar
>
>     And in my code I have
>
>     ExtensionHeader fooHdr("P-Foo");
>     ExtensionParameter batParam("bat");
>
>     then
>
>     sipMsg->header(FooHdr).front().exists(batParam)
>
>     always returns FALSE. It looks like
>     sipMsg->header(FooHdr).front().value().c_str() is just the raw
>     string "someData;faz=3;bat=987;bar=cheddar", and then I have to
>     pull out my proprietary parameters by hand using good old C/C++
>     string manipulation primitives. The ExtensionParameter, then, is
>     only useful for proprietary parameters on headers that are already
>     known to resiprocate, like
>
>     Call-ID: 1-3730 at 10.0.23.14 <mailto:1-3730 at 10.0.23.14>;bat=987
>
>     Or am I missing something? It sure would be nice to be able to use
>     proprietary headers and parameters with the same ease as the
>     predefined ones.
>
>     Thanks,
>
>     -John Gregg
>
>     _______________________________________________
>     resiprocate-users mailing list
>     resiprocate-users at resiprocate.org
>     <mailto:resiprocate-users at resiprocate.org>
>     List Archive: http://list.resiprocate.org/archive/resiprocate-users/
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.resiprocate.org/pipermail/resiprocate-devel/attachments/20140523/3575f6e3/attachment.htm>


More information about the resiprocate-devel mailing list