reSIProcate/stack  9694
Defines | Functions | Variables
SipMessage.cxx File Reference
#include "resip/stack/Contents.hxx"
#include "resip/stack/Embedded.hxx"
#include "resip/stack/OctetContents.hxx"
#include "resip/stack/HeaderFieldValueList.hxx"
#include "resip/stack/SipMessage.hxx"
#include "resip/stack/ExtensionHeader.hxx"
#include "rutil/Coders.hxx"
#include "rutil/CountStream.hxx"
#include "rutil/Logger.hxx"
#include "rutil/MD5Stream.hxx"
#include "rutil/compat.hxx"
#include "rutil/vmd5.hxx"
#include "rutil/Random.hxx"
#include "rutil/ParseBuffer.hxx"
#include "resip/stack/MsgHeaderScanner.hxx"
Include dependency graph for SipMessage.cxx:

Go to the source code of this file.

Defines

#define RESIPROCATE_SUBSYSTEM   Subsystem::SIP
#define defineHeader(_header, _name, _type, _rfc)
#define defineMultiHeader(_header, _name, _type, _rfc)

Functions

static const Data tidEB (" tid=")
static const Data contactEB (" contact=")
static const Data cseqEB (" cseq=")
static const Data tlsdEB (" tlsd=")
 defineHeader (ContentDisposition,"Content-Disposition", Token,"RFC 3261")
 defineHeader (ContentEncoding,"Content-Encoding", Token,"RFC 3261")
 defineHeader (MIMEVersion,"Mime-Version", Token,"RFC 3261")
 defineHeader (Priority,"Priority", Token,"RFC 3261")
 defineHeader (Event,"Event", Token,"RFC 3265")
 defineHeader (SubscriptionState,"Subscription-State", Token,"RFC 3265")
 defineHeader (SIPETag,"SIP-ETag", Token,"RFC 3903")
 defineHeader (SIPIfMatch,"SIP-If-Match", Token,"RFC 3903")
 defineHeader (ContentId,"Content-ID", Token,"RFC 2045")
 defineMultiHeader (AllowEvents,"Allow-Events", Token,"RFC 3265")
 defineHeader (Identity,"Identity", StringCategory,"RFC 4474")
 defineMultiHeader (AcceptEncoding,"Accept-Encoding", Token,"RFC 3261")
 defineMultiHeader (AcceptLanguage,"Accept-Language", Token,"RFC 3261")
 defineMultiHeader (Allow,"Allow", Token,"RFC 3261")
 defineMultiHeader (ContentLanguage,"Content-Language", Token,"RFC 3261")
 defineMultiHeader (ProxyRequire,"Proxy-Require", Token,"RFC 3261")
 defineMultiHeader (Require,"Require", Token,"RFC 3261")
 defineMultiHeader (Supported,"Supported", Token,"RFC 3261")
 defineMultiHeader (Unsupported,"Unsupported", Token,"RFC 3261")
 defineMultiHeader (SecurityClient,"Security-Client", Token,"RFC 3329")
 defineMultiHeader (SecurityServer,"Security-Server", Token,"RFC 3329")
 defineMultiHeader (SecurityVerify,"Security-Verify", Token,"RFC 3329")
 defineMultiHeader (RequestDisposition,"Request-Disposition", Token,"RFC 3841")
 defineMultiHeader (Reason,"Reason", Token,"RFC 3326")
 defineMultiHeader (Privacy,"Privacy", PrivacyCategory,"RFC 3323")
 defineMultiHeader (PMediaAuthorization,"P-Media-Authorization", Token,"RFC 3313")
 defineHeader (ReferSub,"Refer-Sub", Token,"RFC 4488")
 defineHeader (AnswerMode,"Answer-Mode", Token,"draft-ietf-answermode-01")
 defineHeader (PrivAnswerMode,"Priv-Answer-Mode", Token,"draft-ietf-answermode-01")
 defineMultiHeader (Accept,"Accept", Mime,"RFC 3261")
 defineHeader (ContentType,"Content-Type", Mime,"RFC 3261")
 defineMultiHeader (CallInfo,"Call-Info", GenericUri,"RFC 3261")
 defineMultiHeader (AlertInfo,"Alert-Info", GenericUri,"RFC 3261")
 defineMultiHeader (ErrorInfo,"Error-Info", GenericUri,"RFC 3261")
 defineHeader (IdentityInfo,"Identity-Info", GenericUri,"RFC 4474")
 defineMultiHeader (RecordRoute,"Record-Route", NameAddr,"RFC 3261")
 defineMultiHeader (Route,"Route", NameAddr,"RFC 3261")
 defineMultiHeader (Contact,"Contact", NameAddr,"RFC 3261")
 defineHeader (From,"From", NameAddr,"RFC 3261")
 defineHeader (To,"To", NameAddr,"RFC 3261")
 defineHeader (ReplyTo,"Reply-To", NameAddr,"RFC 3261")
 defineHeader (ReferTo,"Refer-To", NameAddr,"RFC 3515")
 defineHeader (ReferredBy,"Referred-By", NameAddr,"RFC 3892")
 defineMultiHeader (Path,"Path", NameAddr,"RFC 3327")
 defineMultiHeader (AcceptContact,"Accept-Contact", NameAddr,"RFC 3841")
 defineMultiHeader (RejectContact,"Reject-Contact", NameAddr,"RFC 3841")
 defineMultiHeader (PAssertedIdentity,"P-Asserted-Identity", NameAddr,"RFC 3325")
 defineMultiHeader (PPreferredIdentity,"P-Preferred-Identity", NameAddr,"RFC 3325")
 defineHeader (PCalledPartyId,"P-Called-Party-ID", NameAddr,"RFC 3455")
 defineMultiHeader (PAssociatedUri,"P-Associated-URI", NameAddr,"RFC 3455")
 defineMultiHeader (ServiceRoute,"Service-Route", NameAddr,"RFC 3608")
 defineHeader (ContentTransferEncoding,"Content-Transfer-Encoding", StringCategory,"RFC ?")
 defineHeader (Organization,"Organization", StringCategory,"RFC 3261")
 defineHeader (Server,"Server", StringCategory,"RFC 3261")
 defineHeader (Subject,"Subject", StringCategory,"RFC 3261")
 defineHeader (UserAgent,"User-Agent", StringCategory,"RFC 3261")
 defineHeader (Timestamp,"Timestamp", StringCategory,"RFC 3261")
 defineHeader (ContentLength,"Content-Length", UInt32Category,"RFC 3261")
 defineHeader (MaxForwards,"Max-Forwards", UInt32Category,"RFC 3261")
 defineHeader (MinExpires,"Min-Expires", Uint32Category,"RFC 3261")
 defineHeader (RSeq,"RSeq", UInt32Category,"RFC 3261")
 defineHeader (RetryAfter,"Retry-After", UInt32Category,"RFC 3261")
 defineHeader (FlowTimer,"Flow-Timer", UInt32Category,"RFC 5626")
 defineHeader (Expires,"Expires", ExpiresCategory,"RFC 3261")
 defineHeader (SessionExpires,"Session-Expires", ExpiresCategory,"RFC 4028")
 defineHeader (MinSE,"Min-SE", ExpiresCategory,"RFC 4028")
 defineHeader (CallID,"Call-ID", CallID,"RFC 3261")
 defineHeader (Replaces,"Replaces", CallID,"RFC 3891")
 defineHeader (InReplyTo,"In-Reply-To", CallID,"RFC 3261")
 defineHeader (Join,"Join", CallId,"RFC 3911")
 defineHeader (TargetDialog,"Target-Dialog", CallId,"RFC 4538")
 defineHeader (AuthenticationInfo,"Authentication-Info", Auth,"RFC 3261")
 defineMultiHeader (Authorization,"Authorization", Auth,"RFC 3261")
 defineMultiHeader (ProxyAuthenticate,"Proxy-Authenticate", Auth,"RFC 3261")
 defineMultiHeader (ProxyAuthorization,"Proxy-Authorization", Auth,"RFC 3261")
 defineMultiHeader (WWWAuthenticate,"Www-Authenticate", Auth,"RFC 3261")
 defineHeader (CSeq,"CSeq", CSeqCategory,"RFC 3261")
 defineHeader (Date,"Date", DateCategory,"RFC 3261")
 defineMultiHeader (Warning,"Warning", WarningCategory,"RFC 3261")
 defineMultiHeader (Via,"Via", Via,"RFC 3261")
 defineHeader (RAck,"RAck", RAckCategory,"RFC 3262")
 defineMultiHeader (RemotePartyId,"Remote-Party-ID", NameAddr,"draft-ietf-sip-privacy-04")
 defineMultiHeader (HistoryInfo,"History-Info", NameAddr,"RFC 4244")

Variables

static const Data requestEB ("SipReq: ")
static const Data responseEB ("SipResp: ")
static const Data slashEB (" / ")
static const Data wireEB (" from(wire)")
static const Data ftuEB (" from(tu)")

Define Documentation

#define defineHeader (   _header,
  _name,
  _type,
  _rfc 
)
Value:
const H_##_header::Type&                                                                                \
SipMessage::header(const H_##_header& headerType) const                                                 \
{                                                                                                       \
   HeaderFieldValueList* hfvs = ensureHeader(headerType.getTypeNum());                           \
   if (hfvs->getParserContainer() == 0)                                                                 \
   {                                                                                                    \
      SipMessage* nc_this(const_cast<SipMessage*>(this)); \
      hfvs->setParserContainer(nc_this->makeParserContainer<H_##_header::Type>(hfvs, headerType.getTypeNum()));  \
   }                                                                                                    \
   return static_cast<ParserContainer<H_##_header::Type>*>(hfvs->getParserContainer())->front();       \
}                                                                                                       \
                                                                                                        \
H_##_header::Type&                                                                                      \
SipMessage::header(const H_##_header& headerType)                                                       \
{                                                                                                       \
   HeaderFieldValueList* hfvs = ensureHeader(headerType.getTypeNum());                           \
   if (hfvs->getParserContainer() == 0)                                                                 \
   {                                                                                                    \
      hfvs->setParserContainer(makeParserContainer<H_##_header::Type>(hfvs, headerType.getTypeNum()));  \
   }                                                                                                    \
   return static_cast<ParserContainer<H_##_header::Type>*>(hfvs->getParserContainer())->front();       \
}

Definition at line 1403 of file SipMessage.cxx.

#define defineMultiHeader (   _header,
  _name,
  _type,
  _rfc 
)
Value:
const H_##_header##s::Type&                                                                     \
SipMessage::header(const H_##_header##s& headerType) const                                      \
{                                                                                               \
   HeaderFieldValueList* hfvs = ensureHeaders(headerType.getTypeNum());                  \
   if (hfvs->getParserContainer() == 0)                                                         \
   {                                                                                            \
      SipMessage* nc_this(const_cast<SipMessage*>(this)); \
      hfvs->setParserContainer(nc_this->makeParserContainer<H_##_header##s::ContainedType>(hfvs, headerType.getTypeNum()));        \
   }                                                                                            \
   return *static_cast<H_##_header##s::Type*>(hfvs->getParserContainer());                     \
}                                                                                               \
                                                                                                \
H_##_header##s::Type&                                                                           \
SipMessage::header(const H_##_header##s& headerType)                                            \
{                                                                                               \
   HeaderFieldValueList* hfvs = ensureHeaders(headerType.getTypeNum());                  \
   if (hfvs->getParserContainer() == 0)                                                         \
   {                                                                                            \
      hfvs->setParserContainer(makeParserContainer<H_##_header##s::ContainedType>(hfvs, headerType.getTypeNum()));        \
   }                                                                                            \
   return *static_cast<H_##_header##s::Type*>(hfvs->getParserContainer());                     \
}

Definition at line 1428 of file SipMessage.cxx.

#define RESIPROCATE_SUBSYSTEM   Subsystem::SIP

Definition at line 26 of file SipMessage.cxx.


Function Documentation

static const Data contactEB ( ) [static]
static const Data cseqEB ( ) [static]
defineHeader ( ContentDisposition  ,
"Content-Disposition"  ,
Token  ,
"RFC 3261"   
)
defineHeader ( ContentEncoding  ,
"Content-Encoding"  ,
Token  ,
"RFC 3261"   
)
defineHeader ( MIMEVersion  ,
"Mime-Version"  ,
Token  ,
"RFC 3261"   
)
defineHeader ( Priority  ,
"Priority"  ,
Token  ,
"RFC 3261"   
)
defineHeader ( Event  ,
"Event"  ,
Token  ,
"RFC 3265"   
)
defineHeader ( SubscriptionState  ,
"Subscription-State"  ,
Token  ,
"RFC 3265"   
)
defineHeader ( SIPETag  ,
"SIP-ETag"  ,
Token  ,
"RFC 3903"   
)
defineHeader ( SIPIfMatch  ,
"SIP-If-Match"  ,
Token  ,
"RFC 3903"   
)
defineHeader ( ContentId  ,
"Content-ID"  ,
Token  ,
"RFC 2045"   
)
defineHeader ( Identity  ,
"Identity"  ,
StringCategory  ,
"RFC 4474"   
)
defineHeader ( ReferSub  ,
"Refer-Sub"  ,
Token  ,
"RFC 4488"   
)
defineHeader ( AnswerMode  ,
"Answer-Mode"  ,
Token  ,
"draft-ietf-answermode-01"   
)
defineHeader ( PrivAnswerMode  ,
"Priv-Answer-Mode"  ,
Token  ,
"draft-ietf-answermode-01"   
)
defineHeader ( ContentType  ,
"Content-Type"  ,
Mime  ,
"RFC 3261"   
)
defineHeader ( IdentityInfo  ,
"Identity-Info"  ,
GenericUri  ,
"RFC 4474"   
)
defineHeader ( From  ,
"From"  ,
NameAddr  ,
"RFC 3261"   
)
defineHeader ( To  ,
"To"  ,
NameAddr  ,
"RFC 3261"   
)
defineHeader ( ReplyTo  ,
"Reply-To"  ,
NameAddr  ,
"RFC 3261"   
)
defineHeader ( ReferTo  ,
"Refer-To"  ,
NameAddr  ,
"RFC 3515"   
)
defineHeader ( ReferredBy  ,
"Referred-By"  ,
NameAddr  ,
"RFC 3892"   
)
defineHeader ( PCalledPartyId  ,
"P-Called-Party-ID"  ,
NameAddr  ,
"RFC 3455"   
)
defineHeader ( ContentTransferEncoding  ,
"Content-Transfer-Encoding"  ,
StringCategory  ,
"RFC ?"   
)
defineHeader ( Organization  ,
"Organization"  ,
StringCategory  ,
"RFC 3261"   
)
defineHeader ( Server  ,
"Server"  ,
StringCategory  ,
"RFC 3261"   
)
defineHeader ( Subject  ,
"Subject"  ,
StringCategory  ,
"RFC 3261"   
)
defineHeader ( UserAgent  ,
"User-Agent"  ,
StringCategory  ,
"RFC 3261"   
)
defineHeader ( Timestamp  ,
"Timestamp"  ,
StringCategory  ,
"RFC 3261"   
)
defineHeader ( ContentLength  ,
"Content-Length"  ,
UInt32Category  ,
"RFC 3261"   
)
defineHeader ( MaxForwards  ,
"Max-Forwards"  ,
UInt32Category  ,
"RFC 3261"   
)
defineHeader ( MinExpires  ,
"Min-Expires"  ,
Uint32Category  ,
"RFC 3261"   
)
defineHeader ( RSeq  ,
"RSeq"  ,
UInt32Category  ,
"RFC 3261"   
)
defineHeader ( RetryAfter  ,
"Retry-After"  ,
UInt32Category  ,
"RFC 3261"   
)
defineHeader ( FlowTimer  ,
"Flow-Timer ,
UInt32Category  ,
"RFC 5626"   
)
defineHeader ( Expires  ,
"Expires"  ,
ExpiresCategory  ,
"RFC 3261"   
)
defineHeader ( SessionExpires  ,
"Session-Expires"  ,
ExpiresCategory  ,
"RFC 4028"   
)
defineHeader ( MinSE  ,
"Min-SE"  ,
ExpiresCategory  ,
"RFC 4028"   
)
defineHeader ( CallID  ,
"Call-ID"  ,
CallID  ,
"RFC 3261"   
)
defineHeader ( Replaces  ,
"Replaces"  ,
CallID  ,
"RFC 3891"   
)
defineHeader ( InReplyTo  ,
"In-Reply-To"  ,
CallID  ,
"RFC 3261"   
)
defineHeader ( Join  ,
"Join"  ,
CallId  ,
"RFC 3911"   
)
defineHeader ( TargetDialog  ,
"Target-Dialog"  ,
CallId  ,
"RFC 4538"   
)
defineHeader ( AuthenticationInfo  ,
"Authentication-Info"  ,
Auth  ,
"RFC 3261"   
)
defineHeader ( CSeq  ,
"CSeq"  ,
CSeqCategory  ,
"RFC 3261"   
)
defineHeader ( Date  ,
"Date"  ,
DateCategory  ,
"RFC 3261"   
)
defineHeader ( RAck  ,
"RAck"  ,
RAckCategory  ,
"RFC 3262"   
)
defineMultiHeader ( AllowEvents  ,
"Allow-Events"  ,
Token  ,
"RFC 3265"   
)
defineMultiHeader ( AcceptEncoding  ,
"Accept-Encoding"  ,
Token  ,
"RFC 3261"   
)
defineMultiHeader ( AcceptLanguage  ,
"Accept-Language"  ,
Token  ,
"RFC 3261"   
)
defineMultiHeader ( Allow  ,
"Allow"  ,
Token  ,
"RFC 3261"   
)
defineMultiHeader ( ContentLanguage  ,
"Content-Language"  ,
Token  ,
"RFC 3261"   
)
defineMultiHeader ( ProxyRequire  ,
"Proxy-Require"  ,
Token  ,
"RFC 3261"   
)
defineMultiHeader ( Require  ,
"Require"  ,
Token  ,
"RFC 3261"   
)
defineMultiHeader ( Supported  ,
"Supported"  ,
Token  ,
"RFC 3261"   
)
defineMultiHeader ( Unsupported  ,
"Unsupported"  ,
Token  ,
"RFC 3261"   
)
defineMultiHeader ( SecurityClient  ,
"Security-Client ,
Token  ,
"RFC 3329"   
)
defineMultiHeader ( SecurityServer  ,
"Security-Server ,
Token  ,
"RFC 3329"   
)
defineMultiHeader ( SecurityVerify  ,
"Security-Verify"  ,
Token  ,
"RFC 3329"   
)
defineMultiHeader ( RequestDisposition  ,
"Request-Disposition"  ,
Token  ,
"RFC 3841"   
)
defineMultiHeader ( Reason  ,
"Reason"  ,
Token  ,
"RFC 3326"   
)
defineMultiHeader ( Privacy  ,
"Privacy"  ,
PrivacyCategory  ,
"RFC 3323"   
)
defineMultiHeader ( PMediaAuthorization  ,
"P-Media-Authorization"  ,
Token  ,
"RFC 3313"   
)
defineMultiHeader ( Accept  ,
"Accept"  ,
Mime  ,
"RFC 3261"   
)
defineMultiHeader ( CallInfo  ,
"Call-Info"  ,
GenericUri  ,
"RFC 3261"   
)
defineMultiHeader ( AlertInfo  ,
"Alert-Info"  ,
GenericUri  ,
"RFC 3261"   
)
defineMultiHeader ( ErrorInfo  ,
"Error-Info"  ,
GenericUri  ,
"RFC 3261"   
)
defineMultiHeader ( RecordRoute  ,
"Record-Route"  ,
NameAddr  ,
"RFC 3261"   
)
defineMultiHeader ( Route  ,
"Route"  ,
NameAddr  ,
"RFC 3261"   
)
defineMultiHeader ( Contact  ,
"Contact"  ,
NameAddr  ,
"RFC 3261"   
)
defineMultiHeader ( Path  ,
"Path"  ,
NameAddr  ,
"RFC 3327"   
)
defineMultiHeader ( AcceptContact  ,
"Accept-Contact"  ,
NameAddr  ,
"RFC 3841"   
)
defineMultiHeader ( RejectContact  ,
"Reject-Contact"  ,
NameAddr  ,
"RFC 3841"   
)
defineMultiHeader ( PAssertedIdentity  ,
"P-Asserted-Identity"  ,
NameAddr  ,
"RFC 3325"   
)
defineMultiHeader ( PPreferredIdentity  ,
"P-Preferred-Identity"  ,
NameAddr  ,
"RFC 3325"   
)
defineMultiHeader ( PAssociatedUri  ,
"P-Associated-URI"  ,
NameAddr  ,
"RFC 3455"   
)
defineMultiHeader ( ServiceRoute  ,
"Service-Route"  ,
NameAddr  ,
"RFC 3608"   
)
defineMultiHeader ( Authorization  ,
"Authorization"  ,
Auth  ,
"RFC 3261"   
)
defineMultiHeader ( ProxyAuthenticate  ,
"Proxy-Authenticate"  ,
Auth  ,
"RFC 3261"   
)
defineMultiHeader ( ProxyAuthorization  ,
"Proxy-Authorization"  ,
Auth  ,
"RFC 3261"   
)
defineMultiHeader ( WWWAuthenticate  ,
"Www-Authenticate"  ,
Auth  ,
"RFC 3261"   
)
defineMultiHeader ( Warning  ,
"Warning"  ,
WarningCategory  ,
"RFC 3261"   
)
defineMultiHeader ( Via  ,
"Via"  ,
Via  ,
"RFC 3261"   
)
defineMultiHeader ( RemotePartyId  ,
"Remote-Party-ID"  ,
NameAddr  ,
"draft-ietf-sip-privacy-04"   
)
defineMultiHeader ( HistoryInfo  ,
"History-Info"  ,
NameAddr  ,
"RFC 4244"   
)
static const Data tidEB ( ) [static]
static const Data tlsdEB ( ) [static]

Variable Documentation

const Data ftuEB(" from(tu)") [static]
const Data requestEB("SipReq: ") [static]
const Data responseEB("SipResp: ") [static]
const Data slashEB(" / ") [static]
const Data wireEB(" from(wire)") [static]