[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