message sip_emsoft { request { requestline:=Method SP Request-URI SP SIP-Version } response { statusline = SIP-Version SP Status-Code SP Reason-Phrase } Method=INVITEm/ACKm/OPTIONSm /BYEm/CANCELm/REGISTERm /INFOm/PRACKm/SUBSCRIBEm/NOTIFYm /UPDATEm/MESSAGEm/REFERm/PUBLISHm/extension-method Request-URI=SIP-URI/SIPS-URI/absoluteURI SIP-Version="SIP""/"1*DIGIT"."1*DIGIT message-body=*OCTET INVITEm=%x49.4E.56.49.54.45;INVITEincaps ACKm=%x41.43.4B;ACKincaps OPTIONSm=%x4F.50.54.49.4F.4E.53;OPTIONSincaps BYEm=%x42.59.45;BYEincaps CANCELm=%x43.41.4E.43.45.4C;CANCELincaps REGISTERm=%x52.45.47.49.53.54.45.52;REGISTERincaps INFOm=%x49.4E.46.4F;INFOincaps[RFC2976] PRACKm=%x50.52.41.43.4B;PRACKincaps[RFC3262] SUBSCRIBEm=%x53.55.42.53.43.52.49.42.45;SUBSCRIBEincaps[RFC3265] NOTIFYm=%x4E.4F.54.49.46.59;NOTIFYincaps[RFC3265] UPDATEm=%x55.50.44.41.54.45;UPDATEincaps[RFC3311] MESSAGEm=%x4D.45.53.53.41.47.45;MESSAGEincaps[RFC3428] REFERm=%x52.45.46.45.52;REFERincaps[RFC3515] PUBLISHm=%x50.55.42.4C.49.53.48;PUBLISHincaps[RFC3903] extension-method=token SIP-URI="sip:"[userinfo]hostport uri-parameters [headers] SIPS-URI="sips:"[userinfo]hostport uri-parameters[headers] userinfo=(user/telephone-subscriber)[":"password]"@" user=1*(unreserved/escaped/user-unreserved) user-unreserved="&"/"="/"+"/"$"/","/";"/"?"/"/" password=*(unreserved/escaped/"&"/"="/"+"/"$"/",") hostport=host[":"port] host=hostname/IPv4address/IPv6reference hostname=*(domainlabel".")toplabel["."] domainlabel=alphanum/alphanum*(alphanum/"-")alphanum toplabel=ALPHA/ALPHA*(alphanum/"-")alphanum IPv4address=1*3DIGIT"."1*3DIGIT"."1*3DIGIT"."1*3DIGIT IPv6reference="["IPv6address"]" IPv6address=hexpart[":"IPv4address] hexpart=hexseq/hexseq"::"[hexseq]/"::"[hexseq] hexseq=hex4 *(":"hex4) hex4=1*4HEXDIG port=1*DIGIT uri-parameters=*(";"uri-parameter) uri-parameter=transport-param/user-param/method-param/ttl-param/maddr-param/lr-param/compression-param/other-param transport-param="transport="("udp"/"tcp"/"sctp"/"tls"/"tls-sctp"/other-transport) other-transport=token user-param="user="("phone"/"ip"/other-user) other-user=token method-param="method="Method ttl-param="ttl="ttl maddr-param="maddr="host lr-param="lr" compression-param="comp="("sigcomp"/other-compression) other-compression=token other-param=pname["="pvalue] pname=1*paramchar pvalue=1*paramchar paramchar=param-unreserved/unreserved/escaped param-unreserved="["/"]"/"/"/":"/"&"/"+"/"$" headers="?"h*("&"h) h=hname["="hvalue] hname=1*(hnv-unreserved/unreserved/escaped) hvalue=*(hnv-unreserved/unreserved/escaped) hnv-unreserved="["/"]"/"/"/"?"/":"/"+"/"$" absoluteURI=scheme":"(hier-part/opaque-part) hier-part=(net-path/abs-path)["?"query] net-path="//"authority[abs-path] abs-path="/"path-segments opaque-part=uric-no-slash*uric uric=reserved/unreserved/escaped uric-no-slash=unreserved/escaped/";"/"?"/":"/"@"/"&"/"="/"+"/"$"/"," path-segments=segment*("/"segment) segment=*pchar*(";"param) param=*pchar pchar=unreserved/escaped/":"/"@"/"&"/"="/"+"/"$"/"," scheme=ALPHA*(ALPHA/DIGIT/"+"/"-"/".") authority=srvr/reg-name srvr=[[userinfo"@"]hostport] reg-name=1*(unreserved/escaped/"$"/","/";"/":"/"@"/"&"/"="/"+") query=*uric telephone-uri="tel:"telephone-subscriber telephone-subscriber=global-number/local-number global-number=global-number-digits*par local-number=local-number-digits*parcontext*par par=parameter/extension/isdn-subaddress isdn-subaddress=";isub="1*uric extension=";ext="1*phonedigit context=";phone-context="1*descriptor descriptor=domainname/global-number-digits global-number-digits="+"*phonedigit DIGIT*phonedigit local-number-digits=*phonedigit-hex(HEXDIG/"*"/"#")*phonedigit-hex domainname=*(domainlabel".")toplabel["."] domainlabel=alphanum/alphanum*(alphanum/"-")alphanum toplabel=ALPHA/ALPHA*(alphanum/"-")alphanum parameter=";"pname["="pvalue] pname=1*(alphanum/"-") pvalue=1*paramchar paramchar=param-unreserved/unreserved/pct-encoded pct-encoded="%"HEXDIG HEXDIG param-unreserved="["/"]"/"/"/":"/"&"/"+"/"$" phonedigit=DIGIT/[visual-separator] phonedigit-hex=HEXDIG/"*"/"#"/[visual-separator] visual-separator="-"/"."/"("/")" Status-Code=Informational /Success /Redirection /Client-Error /Server-Error /Global-Failure /extension-code extension-code=3DIGIT Reason-Phrase=*(reserved/unreserved/escaped/UTF8-NONASCII/UTF8-CONT/SP/HTAB) Informational="100" /"180";Ringing /"181";CallIsBeingForwarded /"182";Queued /"183" Success="200";OK /"202" Redirection="300";MultipleChoices /"301";MovedPermanently /"302";MovedTemporarily /"305";UseProxy /"380" Client-Error="400";BadRequest /"401";Unauthorized /"402";PaymentRequired /"403";Forbidden /"404";NotFound /"405";MethodNotAllowed /"406";NotAcceptable /"407";ProxyAuthenticationRequired /"408";RequestTimeout /"410";Gone /"412";ConditionalRequestFailed[RFC3903] /"413";RequestEntityTooLarge /"414";Request-URITooLong /"415";UnsupportedMediaType /"416";UnsupportedURIScheme /"417";UnknownResource-Priority[RFC4412] /"420";BadExtension /"421";ExtensionRequired /"422";SessionIntervalTooSmall[RFC4028] /"423";IntervalTooBrief /"428";UseIdentityHeader[RFC4474] /"429";ProvideReferrerIdentity[RFC3892] /"436";BadIdentity-Info[RFC4474] /"437";UnsupportedCertificate[RFC4474] /"438";InvalidIdentityHeader[RFC4474] /"480";TemporarilyUnavailable /"481";Call/TransactionDoesNotExist /"482";LoopDetected /"483";TooManyHops /"484";AddressIncomplete /"485";Ambiguous /"486";BusyHere /"487";RequestTerminated /"488";NotAcceptableHere /"489";BadEvent[RFC3265] /"491";RequestPending /"493";Undecipherable /"494" Server-Error="500";ServerInternalError /"501";NotImplemented /"502";BadGateway /"503";ServiceUnavailable /"504";ServerTime-out /"505";VersionNotSupported /"513";MessageTooLarge /"580" Global-Failure="600";BusyEverywhere /"603";Decline /"604";DoesNotExistAnywhere /"606" ;NotAcceptable alphanum=ALPHA/DIGIT ALPHA = %x41-5A / %x61-7A ; A-Z / a-z DIGIT = %x30-39 reserved=";"/"/"/"?"/":"/"@"/"&"/"="/"+"/"$"/"," unreserved=alphanum/mark mark="-"/"_"/"."/"!"/"~"/"*"/"'"/"("/")" escaped="%"HEXDIGHEXDIG LWS=[*WSPCRLF]1*WSP;linearwhitespace SWS=[LWS];sepwhitespace HCOLON=*(SP/HTAB)":"SWS TEXT-UTF8-TRIM=1*TEXT-UTF8char*(*LWSTEXT-UTF8char) TEXT-UTF8char=%x21-7E/UTF8-NONASCII UTF8-NONASCII=%xC0-DF1UTF8-CONT/%xE0-EF2UTF8-CONT /%xF0-F73UTF8-CONT/%xF8-Fb4UTF8-CONT /%xFC-FD5UTF8-CONT UTF8-CONT=%x80-BF LHEX=DIGIT/%x61-66 token=1*(alphanum/"-"/"."/"!"/"%"/"*" /"_"/"+"/"`"/"'"/"~") separators=/"("/")"/"<"/">"/"@" /","/";"/":"/"\"/DQUOTE /"/"/"["/"]"/"?"/"=" /"{"/"}"/SP/HTAB word=1*(alphanum/"-"/"."/"!"/"%"/"*" /"_"/"+"/"`"/"'"/"~" /"("/")"/"<"/">" /":"/"\"/DQUOTE /"/"/"["/"]"/"?" /"{"/"}") STAR=SWS"*"SWS;asterisk SLASH=SWS"/"SWS;slash EQUAL=SWS"="SWS;equal LPAREN=SWS"("SWS;leftparenthesis RPAREN=SWS")"SWS;rightparenthesis RAQUOT=">"SWS;rightanglequote LAQUOT=SWS"<";leftanglequote COMMA=SWS","SWS;comma SEMI=SWS";"SWS;semicolon COLON=SWS":"SWS;colon LDQUOT=SWS DQUOTE;opendoublequotationmark RDQUOT=DQUOTE SWS;closedoublequotationmark comment=LPAREN*(ctext/quoted-pair/comment)RPAREN ctext=%x21-27/%x2A-5B/%x5D-7E/UTF8-NONASCII /LWS quoted-string=SWSDQUOTE*(qdtext/quoted-pair)DQUOTE qdtext=LWS/%x21/%x23-5B/%x5D-7E /UTF8-NONASCII quoted-pair="\"(%x00-09/%x0B-0C/%x0E-7F) name-addr=[ display-name ] LAQUOT addr-spec RAQUOT addr-spec= SIP-URI / SIPS-URI / absoluteURI display-name= *(token LWS) / quoted-string callid= word [ "@" word ] accept-param= ("q" EQUAL qvalue ) / generic-param qvalue= ("0" [ "." 0*3DIGIT ] )/ ( "1" [ "." 0*3("0") ] ) generic-param= token [ EQUAL gen-value ] gen-value= token / host / quoted-string delta-seconds= 1*DIGIT algorithm= "algorithm" EQUAL ( aka-namespace / algorithm-value ) ; algorithm rule is as amended by [RFC3310] ; example: ; algorithm=AKAv1-MD5 aka-namespace= aka-version "-" algorithm-value aka-version= "AKAv" 1*DIGIT algorithm-value= ( "MD5" / "MD5-sess" / token ) nonce= "nonce" EQUAL ( aka-nonce / nonce-value ) aka-nonce= LDQUOT aka-nonce-value RDQUOT aka-nonce-value= token ; nonce-value= quoted-string option-tag= token ; Option tags are used in header fields such as Require, Supported, Proxy-Require, and Unsupported ; in support of SIP compatibility mechanisms for extensions. The option tag itself is a string that ; is associated with a particular SIP option (that is, an extension). It identifies the option to SIP endpoints. ; ; 100rel [RFC3262] ; precondition [RFC3312] ; privacy [RFC3323] ; path [RFC3327] ; sec-agree [RFC3329] ; pref [RFC3840] ; replaces [RFC3891] ; join [RFC3911] ; early-session [RFC3959] ; timer [RFC4028] ; sdp-anat [RFC4092] ; histinfo [RFC4244] ; resource-priority [RFC4412] ; norefersub [RFC4488] ; tdialog [RFC4538] ; eventlist [RFC4662] header Via:=via-parm *(COMMA via-parm) ; example: ; Via: SIP/2.0/TCP client.atlanta.example.com:5060 ; ;branch=z9hG4bK74b76 ; ;received=192.0.2.101 via-parm= sent-protocol LWS sent-by *( SEMI via-params ) via-params= via-ttl / via-maddr / via-received / via-branch / via-compression / response-port / via-extension via-ttl= "ttl" EQUAL ttl via-maddr= "maddr" EQUAL host via-received= "received" EQUAL (IPv4address / IPv6address) via-branch= "branch" EQUAL token via-compression= "comp" EQUAL ("sigcomp" / other-compression) other-compression= token response-port= "rport" [EQUAL 1*DIGIT] via-extension= generic-param sent-protocol= protocol-name SLASH protocol-version SLASH transport protocol-name= "SIP" / token protocol-version= token transport= "UDP" / "TCP" / "TLS" / "SCTP" / "TLS-SCTP" / other-transport ; TLS-SCTP is defined in [ RFC4168] sent-by= host [ COLON port ] ttl= 1*3DIGIT ; 0 to 255 header Max-Forwards:=1*DIGIT ; example: ; Max-Forwards: 69 header From:=from-spec ; examples: ; From: Alice ;tag=9fxced76sl ; From: "Anonymous" ;tag=1928301774 from-spec= ( name-addr / addr-spec ) *( SEMI from-param ) from-param= tag-param / generic-param tag-param= "tag" EQUAL token header Call-ID:=callid ; example: ; Call-ID: 3848276298220188511@atlanta.example.com header CSeq:=1*DIGIT LWS Method ; example: ; CSeq: 1 INVITE header Contact:= ( STAR / (contact-param *(COMMA contact-param))) ; example: ; Contact: contact-param= (name-addr / addr-spec) *( SEMI contact-params) contact-params= c-p-q / c-p-expires / feature-param / contact-extension c-p-q= "q" EQUAL qvalue c-p-expires= "expires" EQUAL delta-seconds feature-param= enc-feature-tag [EQUAL LDQUOT (tag-value-list / string-value) RDQUOT] enc-feature-tag= base-tags / other-tags base-tags= "audio" / "automata" / "class" / "duplex" / "data" / "control" / "mobility" / "description" / "events" / "priority" / "methods" / "schemes" / "application" / "video" / "language" / "type" / "isfocus" / "actor" / "text" / "extensions" other-tags= "+" ftag-name ftag-name= ALPHA *( ALPHA / DIGIT / "!" / "'" / "." / "-" / "%" ) tag-value-list= tag-value *("," tag-value) tag-value= ["!"] (token-nobang / boolean / numeric) token-nobang= 1*(alphanum / "-" / "." / "%" / "*" / "_" / "+" / "`" / "'" / "~" ) boolean= "TRUE" / "FALSE" numeric= "#" numeric-relation number numeric-relation= ">=" / "<=" / "=" / (number ":") number= [ "+" / "-" ] 1*DIGIT ["." 0*DIGIT] string-value= "<" *(qdtext-no-abkt / quoted-pair ) ">" qdtext-no-abkt= LWS / %x21 / %x23-3B / %x3D / %x3F-5B / %x5D-7E / UTF8-NONASCII contact-extension= generic-param header Content-Length:= 1*DIGIT ; example: ; Content-Length: 0 header Content-Type:= media-type ; example: ; Content-Type: application/sdp media-type= m-type SLASH m-subtype *( SEMI m-parameter) m-type= discrete-type / composite-type discrete-type= "text" / "image" / "audio" / "video" / "application" / extension-token composite-type= "message" / "multipart" / extension-token extension-token= ietf-token / x-token ietf-token= token x-token= "x-" token m-subtype= extension-token / iana-token iana-token= token m-parameter= m-attribute EQUAL m-value m-attribute= token m-value= token / quoted-string header Accept:= [ accept-range *(COMMA accept-range) ] ; example: ; Accept: application/dialog-info+xml accept-range= media-range *(SEMI accept-param) media-range= ( "*/*" / ( m-type SLASH "*" ) / ( m-type SLASH m-subtype ) ) *( SEMI m-parameter ) header Content-Encoding:= content-coding *(COMMA content-coding) ; example: ; Content-Encoding: gzip content-coding= token header Accept-Encoding:= [ encoding *(COMMA encoding) ] ; example: ; Accept-Encoding: gzip encoding= codings *(SEMI accept-param) codings= content-coding / "*" header Content-Language:=language-tag *(COMMA language-tag) ; example: ; Content-Language: fr language-tag= primary-tag *( "-" subtag ) primary-tag= 1*8ALPHA subtag= 1*8ALPHA header Accept-Language:=[ language *(COMMA language) ] ; example: ; Accept-Language: da, en-gb;q=0.8, en;q=0.7 language= language-range *(SEMI accept-param) language-range= ( ( 1*8ALPHA *( "-" 1*8ALPHA ) ) / "*" ) header Content-Disposition:=disp-type *( SEMI disp-param ) ; example: ; Content-Disposition: session;handling=optional disp-type= "render" / "session" / "icon" / "alert" / "aib" / "early-session" / disp-extension-token ; "aib" is defined in [ RFC3893] ; "early-session" is defined in [ RFC3959] disp-param= handling-param / generic-param handling-param= "handling" EQUAL ( "optional" / "required" / other-handling ) other-handling= token disp-extension-token= token header Record-Route:=rec-route *(COMMA rec-route) ; example: ; Record-Route: , ; rec-route= name-addr *( SEMI rr-param ) rr-param= generic-param header Route:=route-param *(COMMA route-param) ; example: ; Route: , ; route-param= name-addr *( SEMI rr-param ) header Allow:= [Method *(COMMA Method)] ; example: ; Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY header Supported:= [option-tag *(COMMA option-tag)] ; example: ; Supported: replaces header Unsupported:= option-tag *(COMMA option-tag) ; example: ; Unsupported: 100rel header Require:=option-tag *(COMMA option-tag) ; example: ; Require: 100rel header Proxy-Require:=option-tag *(COMMA option-tag) ; example: ; Proxy-Require: sec-agree header Expires:= delta-seconds ; example: ; Expires: 7200 header Min-Expires:=delta-seconds ; example: ; Min-Expires: 60 header Subject:=[TEXT-UTF8-TRIM] ; example: ; Subject: A tornado is heading our way! header Priority:=priority-value ; example: ; Priority: emergency priority-value= "emergency" / "urgent" / "normal" / "non-urgent" / other-priority other-priority= token header Date:= SIP-date ; example: ; Date: Thu, 21 Feb 2002 13:02:03 GMT SIP-date= rfc1123-date rfc1123-date= wkday "," SP date1 SP time SP "GMT" date1= 2DIGIT SP month SP 4DIGIT ; day month year (e.g., 02 Jun 1982) time= 2DIGIT ":" 2DIGIT ":" 2DIGIT ; 00:00:00 - 23:59:59 wkday= "Mon" / "Tue" / "Wed" / "Thu" / "Fri" / "Sat" / "Sun" month= "Jan" / "Feb" / "Mar" / "Apr" / "May" / "Jun" / "Jul" / "Aug" / "Sep" / "Oct" / "Nov" / "Dec" header Timestamp:= 1*(DIGIT) [ "." *(DIGIT) ] [ LWS delay ] ; example: ; Timestamp: 54 delay= *(DIGIT) [ "." *(DIGIT) ] header Organization:= [TEXT-UTF8-TRIM] ; example: ; Organization: Boxes by Bob header Server:= server-val *(LWS server-val) ; example: ; Server: HomeServer v2 server-val= product / comment product= token [SLASH product-version] product-version= token header User-Agent:=server-val *(LWS server-val) ; example: ; User-Agent: Softphone Beta1.5 header Authorization:= credentials ; example: ; Authorization: Digest username="bob", realm="atlanta.example.com" ; nonce="ea9c8e88df84f1cec4341ae6cbe5a359", opaque="", ; uri="sips:ss2.biloxi.example.com", ; response="dfe56131d1958046689d83306477ecc" credentials= ("Digest" LWS digest-response) / other-response digest-response= dig-resp *(COMMA dig-resp) dig-resp= username / realm / nonce / digest-uri / dresponse / algorithm / cnonce / opaque / message-qop / nonce-count / auth-param / auts username= "username" EQUAL username-value username-value= quoted-string digest-uri= "uri" EQUAL LDQUOT digest-uri-value RDQUOT digest-uri-value= request-uri ; equal to request-uri as specified by HTTP/1.1 message-qop= "qop" EQUAL qop-value cnonce= "cnonce" EQUAL cnonce-value cnonce-value= nonce-value nonce-count= "nc" EQUAL nc-value nc-value= 8LHEX dresponse= "response" EQUAL request-digest request-digest= LDQUOT 32LHEX RDQUOT auth-param= auth-param-name EQUAL ( token / quoted-string ) auth-param-name= token other-response= auth-scheme LWS auth-param *(COMMA auth-param) auth-scheme= token auts= "auts" EQUAL auts-param auts-param= LDQUOT auts-value RDQUOT auts-value= token; header Authentication-Info:=ainfo *(COMMA ainfo) ; example: ; Authentication-Info: nextnonce="47364c23432d2e131a5fb210812c" ainfo= nextnonce / message-qop / response-auth / cnonce / nonce-count nextnonce= "nextnonce" EQUAL nonce-value response-auth= "rspauth" EQUAL response-digest response-digest= LDQUOT *LHEX RDQUOT header Proxy-Authenticate:=challenge ; example: ; Proxy-Authenticate: Digest realm="atlanta.example.com", qop="auth", ; nonce="f84f1cec41e6cbe5aea9c8e88d359", ; opaque="", stale=FALSE, algorithm=MD5 challenge= ("Digest" LWS digest-cln *(COMMA digest-cln)) / other-challenge other-challenge= auth-scheme / auth-param *(COMMA auth-param) digest-cln= realm / domain / nonce / opaque / stale / algorithm / qop-options / auth-param realm= "realm" EQUAL realm-value realm-value= quoted-string domain= "domain" EQUAL LDQUOT URI *( 1*SP URI ) RDQUOT URI= absoluteURI / abs-path opaque= "opaque" EQUAL quoted-string stale= "stale" EQUAL ( "true" / "false" ) qop-options= "qop" EQUAL LDQUOT qop-value *("," qop-value) RDQUOT qop-value= "auth" / "auth-int" / token header Proxy-Authorization:=credentials ; example: ; Proxy-Authorization: Digest username="alice", ; realm="atlanta.example.com", ; nonce="wf84f1ceczx41ae6cbe5aea9c8e88d359", opaque="", ; uri="sip:bob@biloxi.example.com", ; response="42ce3cef44b22f50c6a6071bc8" header WWW-Authenticate:=challenge ; example: ; WWW-Authenticate: Digest realm="atlanta.example.com", qop="auth", ; nonce="84f1c1ae6cbe5ua9c8e88dfa3ecm3459", ; opaque="", stale=FALSE, algorithm=MD5 header Warning:=warning-value *(COMMA warning-value) ; example: ; Warning: 301 isi.edu "Incompatible network address type 'E.164'" warning-value= warn-code SP warn-agent SP warn-text warn-code= 3DIGIT warn-agent= hostport / pseudonym warn-text= quoted-string pseudonym= token header Call-Info:=info *(COMMA info) ; example: ; Call-Info: ;purpose=icon, ; ;purpose=info info= LAQUOT absoluteURI RAQUOT *( SEMI info-param ) info-param= ( "purpose" EQUAL ( "icon" / "info" / "card" / token ) ) / generic-param header Error-Info:=error-uri *(COMMA error-uri) ; example: ; Error-Info: error-uri= LAQUOT absoluteURI RAQUOT *( SEMI generic-param ) header Alert-Info:=alert-param *(COMMA alert-param) ; example ; Alert-Info: alert-param= LAQUOT absoluteURI RAQUOT *( SEMI generic-param ) header In-Reply-To:=callid *(COMMA callid) ; example: ; In-Reply-To: 70710@saturn.bell-tel.com, 17320@saturn.bell-tel.com header MIME-Version:=1*DIGIT "." 1*DIGIT ; example: ; MIME-Version: 1.0 header Reply-To:=rplyto-spec ; example: ; Reply-To: Bob rplyto-spec= ( name-addr / addr-spec ) *( SEMI rplyto-param ) rplyto-param= generic-param header Retry-After:=delta-seconds [ comment ] *( SEMI retry-param ) ; examples: ; Retry-After: 18000;duration=3600 ; Retry-After: 120 (I'm in a meeting) retry-param= ("duration" EQUAL delta-seconds) / generic-param header RSeq:=response-num ; example: ; RSeq: 988789 header RAck:=response-num LWS CSeq-num LWS Method ; example: ; RAck: 776656 1 INVITE response-num= 1*DIGIT CSeq-num= 1*DIGIT header Event:=event-type *( SEMI event-param ) ; example: ; Event: refer event-type= event-package *( "." event-template ) event-package= token-nodot event-template= token-nodot token-nodot= 1*( alphanum / "-" / "!" / "%" / "*" / "_" / "+" / "`" / "'" / "~" ) event-param= generic-param / ( "id" EQUAL token ) / call-ident / from-tag / to-tag / with-sessd ; defined in [ RFC4235] call-ident= "call-id" EQUAL ( token / DQUOTE callid DQUOTE ) ; NOTE: any DQUOTEs inside callid MUST be escaped! with-sessd= "include-session-description" header Allow-Events:=event-type *(COMMA event-type) ; example: ; Allow-Events: spirits-INDPs header Subscription-State:=substate-value *( SEMI subexp-params ) ; example: ; Subscription-State: active;expires=60 substate-value= "active" / "pending" / "terminated" / extension-substate extension-substate= token subexp-params= ("reason" EQUAL event-reason-value) / ("expires" EQUAL delta-seconds) / ("retry-after" EQUAL delta-seconds) / generic-param event-reason-value= "deactivated" / "probation" / "rejected" / "timeout" / "giveup" / "noresource" / event-reason-extension event-reason-extension = token header P-Media-Authorization:= P-Media-Authorization-Token *(COMMA P-Media-Authorization-Token) P-Media-Authorization-Token = 1*HEXDIG header Privacy-hdr:= priv-value *(";" priv-value) ; example: ; Privacy: id priv-value= "header" / "session" / "user" / "none" / "critical" / "id" / "history" / token header PAssertedID:= PAssertedID-value *(COMMA PAssertedID-value) ; examples: ; P-Asserted-Identity: "Cullen Jennings" ; P-Asserted-Identity: tel:+14085264000 PAssertedID-value= name-addr / addr-spec header PPreferredID:=PPreferredID-value *(COMMA PPreferredID-value) ; example: ; P-Preferred-Identity: "Cullen Jennings" PPreferredID-value= name-addr / addr-spec header Reason:=reason-value *(COMMA reason-value) ; examples: ; Reason: SIP ;cause=200 ;text="Call completed elsewhere" ; Reason: Q.850 ;cause=16 ;text="Terminated" ; Reason: SIP ;cause=600 ;text="Busy Everywhere" ; Reason: SIP ;cause=580 ;text="Precondition Failure" reason-value= protocol *(SEMI reason-params) protocol= "SIP" / "Q.850" / "Preemption" / token reason-params= protocol-cause / reason-text / reason-extension protocol-cause= "cause" EQUAL cause cause= 1*DIGIT reason-text= "text" EQUAL quoted-string reason-extension= generic-param header Path:=path-value *(COMMA path-value) ; example: ; Path: , path-value= name-addr *( SEMI rr-param ) header security-client:=sec-mechanism *(COMMA sec-mechanism) ; example: ; Security-Client: digest sec-mechanism= mechanism-name *( SEMI mech-parameters ) mechanism-name= ( "digest" / "tls" / "ipsec-ike" / "ipsec-man" / token ) mech-parameters= ( preference / digest-algorithm / digest-qop / digest-verify / extension ) preference= "q" EQUAL qvalue digest-algorithm= "d-alg" EQUAL token digest-qop= "d-qop" EQUAL token digest-verify= "d-ver" EQUAL LDQUOT 32LHEX RDQUOT extension= generic-param header security-server:=sec-mechanism *(COMMA sec-mechanism) ; example: ; Security-Server: ipsec-ike;q=0.1 header security-verify:=sec-mechanism *(COMMA sec-mechanism) ; example: ; Security-Verify: tls;q=0.2 header P-Associated-URI:=p-aso-uri-spec *(COMMA p-aso-uri-spec) p-aso-uri-spec= name-addr *( SEMI ai-param ) ai-param= generic-param header P-Called-Party-ID:=called-pty-id-spec ; example: ; P-Called-Party-ID: sip:user1-business@example.com called-pty-id-spec= name-addr *( SEMI cpid-param ) cpid-param= generic-param header P-Visited-Network-ID:=vnetwork-spec *(COMMA vnetwork-spec) ; example: ; P-Visited-Network-ID: other.net, "Visited network number 1" vnetwork-spec= (token / quoted-string) *( SEMI vnetwork-param ) vnetwork-param= generic-param header P-Access-Network-Info:= access-net-spec access-net-spec= access-type *( SEMI access-info ) access-type= "IEEE-802.11a" / "IEEE-802.11b" / "3GPP-GERAN" / "3GPP-UTRAN-FDD" / "3GPP-UTRAN-TDD" / "3GPP-CDMA2000" / token access-info= cgi-3gpp / utran-cell-id-3gpp / extension-access-info extension-access-info= gen-value cgi-3gpp= "cgi-3gpp" EQUAL (token / quoted-string) utran-cell-id-3gpp= "utran-cell-id-3gpp" EQUAL (token / quoted-string) header P-Charging-Addr:=charge-addr-params *( SEMI charge-addr-params ) ; example: ; P-Charging-Function-Addresses: ccf=192.1.1.1; ccf=192.1.1.2 charge-addr-params= ccf / ecf / generic-param ccf= "ccf" EQUAL gen-value ecf= "ecf" EQUAL gen-value header P-Charging-Vector:=icid-value *( SEMI charge-params ) ; example: ; P-Charging-Vector: icid-value=1234bc9876e; ; icid-generated-at=192.0.6.8; orig-ioi=home1.net charge-params= icid-gen-addr / orig-ioi / term-ioi / generic-param icid-value= "icid-value" EQUAL gen-value icid-gen-addr= "icid-generated-at" EQUAL host orig-ioi= "orig-ioi" EQUAL gen-value term-ioi= "term-ioi" EQUAL gen-value header Refer-To:=( name-addr / addr-spec ) *(SEMI refer-param) refer-param= generic-param / feature-param ; example: ; Refer-To: ; Refer-To: sip:conf44@example.com;isfocus header P-DCS-Trace-Party-ID:=name-addr header P-DCS-OSPS:=OSPS-Tag OSPS-Tag= "BLV" / "EI" / "RING" / token header P-DCS-Billing-Info:=Billing-Correlation-ID "/" FEID *( SEMI Billing-Info-param ) Billing-Correlation-ID= 1*48(HEXDIG) FEID= 1*16(HEXDIG) "@" host Billing-Info-param= RKS-Group-ID-param / Charge-param / Calling-param / Called-param / Routing-param / Loc-Routing-param / generic-param RKS-Group-ID-param = "rksgroup" EQUAL RKS-Group-ID RKS-Group-ID= token Charge-param= "charge" EQUAL Acct-Charge-URI Acct-Charge-URI= LDQUOT addr-spec RDQUOT Calling-param= "calling" EQUAL Acct-Calling-URI Acct-Calling-URI= LDQUOT addr-spec RDQUOT Called-param= "called" EQUAL Acct-Called-URI Acct-Called-URI= LDQUOT addr-spec RDQUOT Routing-param= "routing" EQUAL Acct-Routing-URI Acct-Routing-URI= LDQUOT addr-spec RDQUOT Loc-Routing-param= "locroute" EQUAL Acct-Loc-Routing-URI Acct-Loc-Routing-URI= LDQUOT addr-spec RDQUOT header P-DCS-LAES:=Laes-sig *( SEMI Laes-param ) Laes-sig= hostport Laes-param= Laes-content / Laes-key / generic-param Laes-content= "content" EQUAL hostport Laes-key= "key" EQUAL token header P-DCS-Redirect:=Called-ID *(redir-params) Called-ID= LDQUOT addr-spec RDQUOT redir-params= redir-uri-param / redir-count-param / generic-param redir-uri-param= "redirector-uri" EQUAL Redirector Redirector= LDQUOT addr-spec RDQUOT redir-count-param= "count" EQUAL Redir-count Redir-count= 1*DIGIT header Service-Route:=sr-value *(COMMA sr-value) ; example: ; Service-Route: , ; sr-value= name-addr *( SEMI rr-param ) header Request-Disposition:=directive *(COMMA directive) ; example: ; Request-Disposition: proxy, recurse, parallel directive= proxy-directive / cancel-directive / fork-directive / recurse-directive / parallel-directive / queue-directive proxy-directive= "proxy" / "redirect" cancel-directive= "cancel" / "no-cancel" fork-directive= "fork" / "no-fork" recurse-directive= "recurse" / "no-recurse" parallel-directive= "parallel" / "sequential" queue-directive= "queue" / "no-queue" header Accept-Contact:=ac-value *(COMMA ac-value) ; examples: ; Accept-Contact: *;audio;require ; Accept-Contact: *;video;explicit ; Accept-Contact: *;methods="BYE";class="business";q=1.0 ac-value= "*" *(SEMI ac-params) ac-params= feature-param / req-param / explicit-param / generic-param req-param= "require" explicit-param= "explicit" header Reject-Contact:=rc-value *(COMMA rc-value) ; example: ; Reject-Contact: *;actor="msg-taker";video rc-value= "*" *(SEMI rc-params) rc-params= feature-param / generic-param header Replaces:=callid *(SEMI replaces-param) ; example: ; Replaces: 425928@bobster.example.org;to-tag=7743;from-tag=6472 replaces-param= to-tag / from-tag / early-flag / generic-param to-tag= "to-tag" EQUAL token from-tag= "from-tag" EQUAL token early-flag= "early-only" header Referred-By:= referrer-uri *( SEMI (referredby-id-param / generic-param) ) ; example: ; Referred-By: ; ;cid="20398823.2UWQFN309shb3@referrer.example" referrer-uri= ( name-addr / addr-spec ) referredby-id-param= "cid" EQUAL sip-clean-msg-id sip-clean-msg-id= LDQUOT dot-atom "@" (dot-atom / host) RDQUOT dot-atom= atom *( "." atom ) atom= 1*( alphanum / "-" / "!" / "%" / "*" / "_" / "+" / "'" / "`" / "~" ) header SIP-ETag:=entity-tag ; example: ; SIP-ETag: dx200xyz entity-tag= token header SIP-If-Match:=entity-tag ; example: ; SIP-If-Match: dx200xyz header Join:= callid *(SEMI join-param) ; example: ; Join: 12345600@atlanta.example.com;from-tag=1234567;to-tag=23431 join-param= to-tag / from-tag / generic-param to-tag= "to-tag" EQUAL token from-tag= "from-tag" EQUAL token header Session-Expires:= delta-seconds *( SEMI se-params ) ; example: ; Session-Expires: 4000;refresher=uac se-params= refresher-param / generic-param refresher-param= "refresher" EQUAL ("uas" / "uac") header Min-SE:=delta-seconds *(SEMI generic-param) ; example: ; Min-SE: 3600 header History-Info:= hi-entry *(COMMA hi-entry) ; example: ; History-Info:;index=1;foo=bar hi-entry= hi-targeted-to-uri *( SEMI hi-param ) hi-targeted-to-uri= name-addr hi-param= hi-index / hi-extension hi-index= "index" EQUAL 1*DIGIT *("." 1*DIGIT) hi-extension= generic-param header Resource-Priority:= r-value *(COMMA r-value) ; example: ; Resource-Priority: wps.3, dsn.flash r-value= namespace "." r-priority namespace= token-nodot r-priority= token-nodot token-nodot= 1*( alphanum / "-" / "!" / "%" / "*" / "_" / "+" / "`" / "'" / "~" ) header Accept-Resource-Priority:= [r-value *(COMMA r-value)] ; example: ; Accept-Resource-Priority: dsn.flash-override, dsn.flash, dsn.immediate, dsn.priority, dsn.routine P-User-Database= "P-User-Database" HCOLON database *(SEMI generic-param) database= LAQUOT DiameterURI RAQUOT ; example: ; P-User-Database: Identity= "Identity" HCOLON signed-identity-digest signed-identity-digest= LDQUOT 32LHEX RDQUOT header Identity-Info:= ident-info *( SEMI ident-info-params ) ident-info= LAQUOT absoluteURI RAQUOT ident-info-params= ident-info-alg / ident-info-extension ident-info-alg= "alg" EQUAL token ident-info-extension= generic-param header Refer-Sub:= refer-sub-value *(SEMI exten) refer-sub-value= "true" / "false" exten= generic-param header Target-Dialog:=callid *(SEMI td-param) td-param= remote-param / local-param / generic-param remote-param= "remote-tag" EQUAL token local-param= "local-tag" EQUAL token }