SIP-I Trunking
This document describes the SIP-I (SIP with encapsulated ISUP) trunking interface implemented by OmniMSC. SIP-I enables transparent transport of ISUP messages within SIP signaling, preserving full ISUP information across IP-based trunk segments.
For pure SIP trunking, see SIP Trunking. For routing configuration, see Routing Configuration. For configuration parameters, see Configuration Reference. For general operations, see Operations Guide.
What Is SIP-I?
SIP-I (Session Initiation Protocol with encapsulated ISUP) is defined by ITU-T Q.1912.5 and uses the SIP protocol as a transport mechanism for ISUP messages. Unlike pure SIP trunking, which maps ISUP parameters to SIP headers (potentially losing information), SIP-I includes the complete ISUP message as a MIME body alongside the SDP, ensuring lossless interworking.
SIP-I is the standard trunking protocol used between MSC servers and media gateways in 3GPP IMS-based core networks and is widely deployed for PSTN interconnection.
The ISUP body is carried per RFC 3204 (MIME media type for ISUP) and RFC 3261 (SIP).
Protocol Comparison
| Aspect | Pure ISUP | Pure SIP | SIP-I |
|---|---|---|---|
| Transport | MTP3/M3UA/SCTP | UDP/TCP/TLS | UDP/TCP/TLS |
| Signaling info | Full ISUP | Mapped to SIP headers | Full ISUP preserved |
| Media description | Bearer capability in IAM | SDP | SDP + ISUP bearer cap |
| Information loss | None | Possible (parameter mapping) | None |
| Codec negotiation | TMR in IAM | SDP Offer/Answer | SDP Offer/Answer |
| Use case | Legacy PSTN | VoIP interconnect | MSC-MSC, PSTN gateway |
Multipart Body Format
SIP-I messages use a multipart/mixed MIME body containing two parts: the SDP offer/answer and the ISUP message encoded per RFC 3204.
Content-Type: multipart/mixed;boundary=boundary42
--boundary42
Content-Type: application/sdp
v=0
o=OmniMSC 12345 12345 IN IP4 203.0.113.10
s=OmniMSC
c=IN IP4 203.0.113.10
t=0 0
m=audio 10042 RTP/AVP 0 8
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
--boundary42
Content-Type: application/ISUP;version=itu-t92+
<binary ISUP IAM>
--boundary42--
The application/ISUP content type is defined in RFC 3204. The version parameter identifies the ISUP variant (e.g., itu-t92+ for ITU-T Q.767).
SIP-I Peer Configuration
SIP-I peers are configured under the :sip_i key, separately from pure SIP peers.
config :omnimsc, :sip_i,
peers: [
[name: "MSC-02-SIP-I",
address: "10.2.1.100",
port: 5060,
transport: :tcp,
isup_variant: :itu_t92,
codecs: [:pcmu, :pcma, :amr],
max_channels: 500,
options_interval: 15]
]
SIP-I Peer Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
name | string | -- (required) | Logical peer name. Referenced in route table entries with type :sip_i. |
address | string | -- (required) | Peer IP address or hostname. |
port | integer | 5060 | Peer SIP port. |
transport | atom | :tcp | Transport protocol: :udp, :tcp, or :tls. TCP is recommended for SIP-I due to larger message sizes. |
isup_variant | atom | :itu_t92 | ISUP encoding variant: :itu_t92 (ITU-T Q.767), :ansi (ANSI T1.113), :etsi (ETSI EN 300 356). |
codecs | list(atom) | [:pcmu, :pcma] | Supported audio codecs for the SDP portion. |
max_channels | integer | 500 | Maximum concurrent calls to this peer. |
options_interval | integer or nil | nil | Interval in seconds for SIP OPTIONS keepalive probes. |
Outgoing Call (SIP-I)
When OmniMSC routes a call to a SIP-I peer, it constructs the SIP INVITE with a multipart body containing both SDP and the ISUP IAM.
Incoming Call (SIP-I)
When an INVITE arrives from a SIP-I peer with a multipart body, OmniMSC extracts the ISUP message and uses it to populate the CC FSM parameters.
ISUP-SIP Header Mapping
When interworking between the ISUP body and SIP headers, OmniMSC applies the following mapping. The ISUP body is authoritative; SIP headers are populated for the benefit of SIP-only intermediaries.
| ISUP Parameter (IAM) | SIP Header | Notes |
|---|---|---|
| Called Party Number | Request-URI, To | E.164 format in tel: URI |
| Calling Party Number | From, P-Asserted-Identity | Presentation indicator controls Privacy header |
| Nature of Connection Indicators | Via | Satellite hop indicator |
| Forward Call Indicators | -- | Encoded in ISUP body only |
| Calling Party Category | P-Asserted-Identity | Operator/priority category |
| Transmission Medium Requirement | SDP m= line | Speech, 3.1kHz audio, 64k unrestricted |
| User Service Information | SDP codec lines | Codec and rate mapping |
| Optional Forward Call Indicators | Supported | ISDN access indicator |
| ISUP Parameter (ACM/ANM) | SIP Response | Notes |
|---|---|---|
| Backward Call Indicators | 183/200 | Charge indicator, interworking flag |
| Cause Indicators (REL) | Reason header | Q.850 cause per RFC 3326 |
| Optional Backward Call Indicators | -- | Encoded in ISUP body only |
Cause Code Mapping Reference
SIP-I preserves the full ISUP cause code in the ISUP body. Additionally, the SIP Reason header carries the Q.850 cause for intermediary nodes. See SIP Trunking - SIP-ISUP Cause Code Mapping for the complete mapping table.
For call clearing, the ISUP REL message in the BYE body takes precedence over the SIP Reason header if both are present.
3GPP and ITU-T References
| Reference | Title | Relevance |
|---|---|---|
| ITU-T Q.1912.5 | Interworking between SIP and Bearer Independent Call Control (BICC) or ISUP | SIP-I protocol definition |
| RFC 3204 | MIME Media Type for ISUP and QSIG Objects | application/ISUP content type |
| RFC 3261 | SIP: Session Initiation Protocol | SIP transport |
| RFC 3264 | Offer/Answer Model with SDP | SDP negotiation within SIP-I |
| RFC 3326 | Reason Header Field | Cause code in SIP responses |
| ITU-T Q.767 | Application of the ISUP | ISUP message encoding |
| ITU-T Q.850 | Usage of Cause in ISDN | Cause code definitions |
| 3GPP TS 29.163 | Interworking between SIP-I based circuit-switched core and other networks | 3GPP SIP-I profile |