[reSIProcate] Does there have a common way to got RFC headers value and extension headers value ?
Karlsson
boost.regex at gmail.com
Tue Mar 25 09:40:32 CDT 2008
Thank you Byron, but as my function, the user call this function and passed
the headerName as parameter,
I do not know the header is built-in header or is extension header, so I
want to found common way.
I just think a stupid idea, use the case to mapping headerName parameter
with the buit-in headers.
void GetHeaderValue(Data buff, string headerName)
{
SipMessage * message = SipMessage::make(buff);
if (!message)
{
return ;
}
case h_to:
compare headerName with "to"
break
case h_from:
compare headerName with "to" break
default:
it's extension header.
break
ExtensionHeader h_Extension(headerName.c_str());
if (message->exists(h_Extension) == false)
{
return ;
}
if (message->header(h_Extension).empty() == true)
{
return ;
}
if (message->header(h_Extension).front().isWellFormed() == false)
{
return ;
}
Data temp(message->header(h_Extension).front().value());
}
But this is not pretty.
2008/3/25, Byron Campen <bcampen at estacado.net>:
>
> You don't access the headers with built-in support with
> ExtensionHeader. You need to use the already-defined header access
> tokens. (see http://www.resiprocate.org/Use_Overview#Headers)
>
> Best regards,
> Byron Campen
>
>
> > Hi, I want to write a function to got the headers value. it's
> > working fine with Extension header, but for the
> > RFC header, likes contact, to, from. I got assert error,.
> > How to mofify this function then it can be working with
> > RFC headers and extension headers both?
> >
> > Thank you in advance.
> >
> >
> > void GetHeaderValue(Data buff, string headerName)
> > {
> > SipMessage * message = SipMessage::make(buff);
> > if (!message)
> > {
> > return ;
> > }
> > ExtensionHeader h_Extension(headerName.c_str());
> > if (message->exists(h_Extension) == false)
> > {
> > return ;
> > }
> >
> >
> > if (message->header(h_Extension).empty() == true)
> > {
> > return ;
> > }
> >
> >
> > if (message->header(h_Extension).front().isWellFormed() == false)
> > {
> > return ;
> > }
> >
> > Data temp(message->header(h_Extension).front().value());
> >
> >
> >
> > }
> > _______________________________________________
> > resiprocate-devel mailing list
> > resiprocate-devel at resiprocate.org
> > https://list.resiprocate.org/mailman/listinfo/resiprocate-devel
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.resiprocate.org/pipermail/resiprocate-devel/attachments/20080325/00dfeecd/attachment.htm>
More information about the resiprocate-devel
mailing list