Detailed Header Syntax

The following table describes the syntax to manipulate the various SIP headers:

Syntax for Manipulating SIP Headers

SIP
Header

Attribute to Manipulate

Manipulation
Syntax

Example

Accept

Header itself

header.accept

-

Accept-Language

Header itself

header.accept-language

-

Allow

Header itself

header.allow

-

Authorization

Header itself

header.authorization

 

Call-Id

Header itself

header.call-id

-

Specific ID

header.call-id.id

-

Contact

Header itself

header.contact

-

Expires

header.contact.expires

-

Globally Routable UA URI (GRUU) contact

header.contact.gruucontact

-

Enable GRUU

header.contact.isgruu

-

Name

header.contact.name

-

Parameter

header.contact.param

-

Multiple Contact header fields

header.contact.<number of fields>

header.contact.3

URL

header.contact.url.<url>, where <url> can be:

-

type: Defines the type of URL:
1: Indicates a SIP URI (sip:)
2: Indicates a SIP Tel URI (tel:)
3: Indicates a fax URI (fax:)
4: Indicates a SIPS URI (sips:)

header.contact.url.type == '1'

host: Indicates host part. The host by itself includes both domain name/IP address and port, e.g., 10.33.2.6:5070. However, you can indicate only the name/IP address or only the port:
name: Indicates the host name
port: Indicates the port

header.contact.url.host.port

mhost: Indicates the SIP 'maddr' parameter (see RFC 3261)

-

userphone: Indicates the SIP 'user=phone' parameter (the tel URI). (See note below.)

header.contact.url.userphone

looseroute: Indicates loose routing parameter ('lr') according to the Record-Route set (see note below)

-

user: Indicates the user part of the URI (string)

header.contact.url.user=='401'

transporttype:
0: UDP
1: TCP
2: TLS
3: SCTP

header.contact.url.transporttype == '0'

 

param: Indicates a SIP parameter for the URI (can add, for example)

header.contact.url.param.subject

Note:

For type, host, mhost, userphone, looseroute, user, and transporttype, the 'Action Type' field must be set to Modify.
For userphone and looseroute, configure the rule with the 'Action Value' field set to '0' (to remove) or '1' (to add).

-

Content-Disposition

Header itself

header.content-disposition

-

Type

header.content-disposition.type

-

Handling

header.content-disposition.handling

-

Content-Length

Header itself

header.content-length

-

Content-Type

Header itself

header.content-type

-

Type

header.content-type.type

-

Param

header.content-type.param

-

Boundary

header.content-type.boundary

-

Cseq

Header itself

header.cseq

-

Number

header.cseq.num

header.cseq.num=='1'

Type

header.cseq.type

-

Date

Header itself

header.date

-

Diversion

Header itself

header.diversion

-

Name

header.diversion.name

-

Parameter

header.diversion.param

-

Privacy - 1 (full) / 2 (off)

header.diversion.privacy

header.diversion.privacy=='1'

Reason (enum)

header.diversion.reason

-

Screen – yes / no

header.diversion.screen

-

URL (see URL for Contact header)

header.diversion.url

-

Event

Header itself

header.event

-

Event Key

ID

Event package

header.event.eventkey

header.event.eventkey.id

header.event.eventkey.eventpackage

-

Parameter

header.event.param

header.event.param.itsp-abc

Expires

Header itself

header.expires

-

Expiry time

header.expires.time

-

From

Header itself

header.from

 

Name

header.from.name

 

Remove quotation marks surrounding display name

header.from.quotecontrol

The 'Action Value' field must be set to '0'.

 

Parameter

header.from.param

header.from.param.p1

Tag

header.from.tag

 

URL (see URL for Contact header)

header.from.url

header.from.url.user != '654'

History-Info

Header itself

header.history-info

 

Join

Header itself

header.join

 

Max-Forwards

Header itself

header.max-forwards

 

Value

header.max-forwards.val

 

Min-Se and Min-Expires

Header itself

header.min-se

header.min-expires

 

Parameter

header.min-expires.param

 

Time

header.min-expires.time

 

P-Asserted-Identity

Header itself

header.p-asserted-identity

 

Name (string)

header.p-asserted-identity.name

 

URL (see URL for Contact header)

header.p-asserted-identity.url

header.p-asserted-identity.url.host

P-Associated-URI

Header itself

header.p-associated-uri

 

Name (string)

header.p-associated-uri.name

 

Parameter

header.p-associated-uri.param

 

URL (see URL for Contact header)

header.p-associated-uri.url

 

P-Called-Party-ID

Header itself

header.p-called-party-id

 

Name (string

header.p-called-party-id.name

 

Parameter

header.p-called-party-id.param

header.p-called-party-id.param.p1

URL (see URL for Contact header)

header.p-called-party-id.url

 

P-Charging-Vector

Header itself

header.p-charging-vector

 

P-Charge-Info

Header itself

header.p-charge-info

 

P-Preferred-Identity

Header itself

header.p-preferred-identity

 

Name (string)

header.p-preferred-identity.name

 

URL (see URL for Contact header)

header.p-preferred-identity.url

 

Priority

Header itself

header.priority

 

Privacy

Header itself

header.privacy

 

Privacy types

header.privacy.privacy.<type>

where <type> can be:

none
header
session
user
critical
identity
history

header.privacy.privacy.user

Proxy-Authenticate

Header itself

header.proxy-authenticate

 

Proxy-Authorization

Header itself

header.proxy-authorization

 

Proxy-Require

Header itself

header.proxy-require

 

SIP Capabilities

header.proxy-require.capabilities.<capability>

where <capability> can be:

earlymedia
reliableresponse
timer
earlysession
privacy
replaces
history
unknown
gruu
resourcepriority
targetdialog
sdpanat

header.proxy-require.capabilities.earlymedi

RAck

Header itself

header.rack

 

Reason

Header itself

header.reason

 

Reason types

header.reason.reason.<type>

where <type> can be:

reason
cause
text

header.reason.reason.reason

MLPP:

Type: Preemption (0), MLPP (1)

cause

header.reason.mlpp

 

Record-Route

Header itself

header.record-route

 

Referred-By

Header itself

header.referred-by

 

Parameter

header.referred-by.param

header.referred-by.param.p1

URL (see URL for Contact header)

header.referred-by.url

header.referred-by.url.host

Display Name

header.referred-by.name

header.referred-by.name == ‘user1’

Original Referred-By header value

header.referred-by.original

header.referred-by.original == ‘sip:referrer@ref.example;cid=X’

Refer-To

Header itself

header.refer-to

 

The From tag of the call on the device being replaced; it is part of the value of the Replaces URI header, in the Refer-To header of an outgoing request

header.refer-to.fromtag

header.refer-to.fromtag == ‘some_tag_value’

The To tag of the call on the device being replaced; it is part of the value of the Replaces URI header, in the Refer-To header of an outgoing request

header.refer-to.totag

header.refer-to.totag == ‘some_tag_value’

Represents XRawDataInfoHeader as a URI header, when the header is in an outgoing Refer request.

Note: Applicable only to the gateway application.

header.refer-to.addparams

header.refer-to.addparams len> 0

Display Name

header.refer-to.name

header.refer-to.name == ‘user1’

Parameter

header.refer-to.param

header.refer-to.param.p1

A Boolean value indicating whether the Refer-To header in the outgoing request has URI header Replaces with call identifiers for a call on the device

header.refer-to.isreplacesused

header.refer-to.isreplacesused == 1

The Call-ID of the call on the device being replaced; it is part of the value of the Replaces URI header, in the Refer-To header of an outgoing request

header.refer-to.replacedcallid

header.refer-to.replacedCallID len> 0

URL (see URL for Contact header)

header.refer-to.url

header.refer-to.url.host

Remote-Party-ID

Header itself

header.remote-party-id

 

Counter

header.remote-party-id.counter

 

Name

header.remote-party-id.name

 

Number Plan

header.remote-party-id.numberplan

where <numberplan> can have the following value:

1: ISDN
3: Data
4: Telex
8: National
9: Private
15: Reserved

 

Number Type

header.remote-party-id.numbertype

 

Parameter

header.remote-party-id.param

 

Privacy (see Privacy typesheader for description)

header.remote-party-id.privacy

 

Reason types

header.remote-party-id.reason

where reason can equal the following enumeration value:

1: busy
2: immediate
3: no answer

header.remote-party-id.reason=='1'

Screen – Yes / No

header.remote-party-id.screen

 

Screen Indicator types

header.remote-party-id.screening

where screening can equal the following enumeration value:

-1: Screening not included
0: user provided
1: user passed
2: user failed
3: network provided

header.remote-party-id.screening == 0

URL (see URL for Contact header)

header.remote-party-id.url

 

Replaces

Header itself

header.replaces

 

Request-URI

Header itself

header.request-uri

 

Method

header.request-uri.method

 

Method Type

header.request-uri.methodtype

The following enumerations are used to represent the SIP methods:

5: INVITE
7: BYE
8: OPTIONS
9: ACK
10: CANCEL
11: REGISTER
12: INFO
13: MESSAGE
14: NOTIFY
15: REFER
16: SUBSCRIBE
17: PRACK
18: UPDATE
19: PUBLISH
21: SERVICE

header.request-uri.methodtype == '5'

(i.e., SIP method is INVITE message)

URI

header.request-uri.uri

 

URL (see URL for Contact header)

header.request-uri.url

header.request-uri.url.user == '101'

Require

Header itself

header.require

 

SIP Capabilities (see SIP Capabilities for Proxy-Require header)

header.require

header.require.earlymedia

Resource-Priority

Header itself

header.resource-priority

 

Namespace

header.resource-priority.namespace

 

RPriority

header.resource-priority.rpriority

 

Retry-After

Header itself

header.retry-after

 

Time

header.retry-after.time

 

RSEQ

Header itself

header.rseq

 

Server or User-Agent

Header itself

header.user-agent

header.server

 

Service-Route

Header itself

header.service-route

 

Service route list entry

header.service-route.<entry>.serviceroute

header.serviceroute.1.serviceroute

Session-Expires

Header itself

header.session-expires

 

Parameter

header.session-expires.param

header.session-expires.param.longtimer

Refresher

header.session-expires.refresher

Note: The Action Value '1' sets it to "UAC"; the value '2' sets it to "UAS" (i.e., UA type doing the refreshing)

Time

header.session-expires.time

 

SIP ETag

Header itself

header.sip-etag

 

SIP If-Match

Header itself

header.sip-if-match

 

Subject

Header itself

header.subject

 

Subject

header.subject.subject

 

Subscription State

Header itself

header.subscription-state

 

Supported

Header itself

header.supported

 

SIP Capabilities (see SIP Capabilities for Proxy-Require header)

header.supported.capabilities.<capability>

header.supported.capabilities.path

Target Dialog

Header itself

header.target-dialog

 

To

Header itself

header.to

 

Display name

header.to.name

 

Parameter

header.to.param

header.to.param.artist

tag

header.to.tag

 

URL (see URL for Contact header)

header.to.url

header.to.url.userphone

Unknown headers

Header itself

header.<unknown header name>

header.color

Unsupported

Header itself

header.unsupported

 

SIP Capabilities (see SIP Capabilities for Proxy-Require header)

header.unsupported.capabilities.<capability>

header.unsupported.capabilities.path

User-To-User and X-UserToUser

Header itself

header.user-to-user

header.x-usertouser

 

User-to-User Descriptor

header.user-to-user.user2user

header.x-usertouser.user2user

 

Protocol Descriptor (PD)

header.user-to-user.pd

header.x-usertouser.pd

 

 

Data Type (enum)

header.user-to-user.datatype

header.x-usertouser.datatype

header.usertouser.datatype == '1'

Parameter

header.user-to-user.param

header.x-usertouser.param

 

Via

Header itself

header.via

 

Alias

header.via.alias

 

Branch

header.via.branch

 

Host name

header.via.host

 

Via parameter 'maddr'

header.via.maddrip

 

Parameter

header.via.param

 

Port

header.via.port

Where port can have one of the following values:

-1: No rport parameter
0: The rport parameter is without a value
1-65535: The rport parameter with the specified value

Note: "port" refers to the Via header's rport parameter. 

header.via.port=='0'

 

Transport type

header.via.transporttype

Where transporttype can have one of the following values:

0: UDP
1: TCP
2: TLS
3: SCTP

header.via.0.transporttype == '0'

Warning

Header itself

header.warning

 

WWW Authenticate

Header itself

header.www-authenticate

 

X-AC-Action

Header itself

header.x-ac-action

 

X-Channel

Header itself

header.x-channel

 

TrunkID

header.x-channel.trunkid

 

BChannel

header.x-channel.bchannel

 

BoardIP

header.x-channel.boardip

 

HeaderType

header.x-channel.headertype

 

X-RTP-Stat

Header itself

header.x-rtp-stat