SIP Request | Description |
---|---|
INVITE | |
ACK | |
CANCEL | Cancels pending searches, but does not terminate call already accepted |
OPTIONS | Queries caps of servers |
REFER | Notify party of outcome of ref'ed request. (e.g. used for call xfer) |
UPDATE | Allows cliet to update params of session (SDP). Like a re-INVITE, but can be sent before initial INVITE has been complted. |
INFO | Carriers session-relatd ctrl info during session |
PRACK | Reliable provisional response msgs. |
SUBSCRIBE/NOTIFY | (e.g. presence) |
SIP Resp Category |
Type |
---|---|
SIP 1xx | Info |
SIP 2xx | Success |
SIP 3xx | Redirect |
SIP 4xx | Client Failure |
SIP 5xx | Server Failure |
SIP 6xx | Global Failure |
Simple SIP Session | SIP Call w/ Proxy Svr |
---|---|
JSmith
JUngar zetamachine gammamachine beta-org.com alpha-org.com ------INVITE------> <---180 Ringing---- <-----200 OK------- -------ACK--------> <--Media Session--> <------BYE--------- ------200 OK------> |
JSmith
ProxySvr JUngar zetamachine SIPproxy gammamachine beta-org.com alpha-org.com alpha-org.com ------INVITE------>|------INVITE ------> <---180 Ringing----|<---180 Ringing ---- <-----200 OK-------|<-----200 OK------- ------------------ACK-----------------> <------------Media Session------------> <-----------------BYE------------------ -----------------200 OK---------------> |
Registration Example | Presence and Instance Message Example |
---|---|
JUngar
Registrar Svr |
JSmith
JUngar ---Subscribe--> <---200 OK----- <----NOTIFY---- ----200 0K----> . . . <---NOTIFY----- ----200 OK----> ----MESSAGE---> <---200 OK----- <---MESSAGE---- ----200 OK----> |
Notes
Type | Translation | ||
---|---|---|---|
Internet | No translation; client has a pubilc IP address | ||
Static NAT | one-to-one mapping (Juniper/Netscreen calls this MIP (mapped IP)) | ||
(Address) Full cone NAT | Constant mapping between private IP addr and
public ip addr
|
||
Dynamic Port NAT | External is one IP address, multiple ports. Can be Full Cone, Restricted Cone, or Port Restricted Cone | ||
Dynamic Pooled NAT | External is pool of IP addresses. Internal addresses assigned dynamically as required to external. Can be Full Cone, Restricted Cone, Port Restricted Cone. | ||
Restricted cone NAT | Constant mapping, but an outgoing packet is needed to open incoming path. May or may not include port in mapping. | ||
Port Restricted cone NAT | Same as Restricted cone NAT, but includes port in mapping. | ||
Symmetric NAT | Diff public IP addr mapping is used based on dest IP addr |
INVITE sip:jungar@alpha-org.com SIP/2.0 | *method, Request-URI, SIP version # | |
Via: SIP/2.0/UDP zetamachine.beta-org.com:5060;branch=as82je8ei4kr | (Path taken by request) *SIP version #/transport hostname-or-addr:portnum;branchparam branch parameter is transaction ID - responses can be correlated with this transaction ID |
|
Max-Forwards: 70 | *initialized to large # and decremented by each SIP server which receives and forwards request. Provides simple loop detection | |
To: J. Ungar <sip:jungar@alpha-org.com> | *shows destination of SIP request. If optional name label is in, then URI is in brackets (used for routing the request. Responder will create unique Tag in To: field | |
From: J. Smith <sip:jsmith@beta-org.com>;tag=13456 | *shows origination of SIP request. If optional name label is in, then URI is in brackets (used for routing the request. Tag is combined with Call-ID to create unique conversation. | |
Call-ID:123456789@zetamachine.beta-org.com | *keeps track of particular SIP session. Originator of request creates locally unique string, adds an @, and its host name to make it globally unique. Local tag, remote tag, and Call-ID ids established session, known as a "dialog". | |
CSeq: 1 INVITE | *Starting integer (incremented with each new request sent), method | |
Subject: Let's talk | Optional. Could be displayed during alerting. | |
Contact: <sip:jsmith@zetamachine.beta-org.com> | SIP URI of J. Smith's communication device. Called User Agent (UA). This URI can be used to route messages directly to J. Smith. | |
Content-Type: application/sdp | message body is SDP | |
Content-Length: 158 | message body has 158 bytes (including CR/LFs) | |
v=0 | SDP protocol version # | |
o=Smith 2890844526 2890844526 IN IP4 zetamachine.alpha-org.com | Originator info: username, session-ID(NTP or random#) version(recommended to be NTP, # increased for each change in session) network-type address-type address | |
s=Phone Call | name of session | |
c=IN IP4 100.101.102.103 | Connection Data-Addr that will be sending media packets: network-type address-type connection-address(if multicast connection-address field will be: base-multicast-addr/ttl/num-of-addresses) | |
t=0 0 | start/stop time of session. NTP Stop time of 0 indicates sesion goes on insdefinitely. If both start and stop time are 0, indicates that session is permanent. | |
m=audio 49170 RTP/AVP 0 | Media info: media(audio,video,application,data,telephone-event,or control) port transport(RTP/AVP or udp) format-list(multiple alternate codecs can be listed) | |
a=rtpmap:0 PCMU/8000 | attributes of preceding session (RTP/AVP or UDP), multiple media types get separate attribute lines |
*required
180 RingingSIP/20.0 180 Ringing | copied from invite |
Via: SIP/2.0/UDP zetamachine.beta-org.com:5060;branch=as82je8ei4kr;received=100.101.102.103 | copied from invite; received parameter contains literal IP addr that req was recieved from |
To: J. Ungar <sip:jungar@alpha-org.com>;tag=643a33 | copied from invite (same order);tag added |
From: J. Smith <sip:jsmith@beta-org.com>;tag=13456 | copied from invite (same order) |
Call-ID:123456789@zetamachine.beta-org.com | copied from invite |
CSeq: 1 INVITE | copied from invite |
Contact: <sip:jungar@gammamachine.alpha-org.com> | contact where to can be contacted once session is established |
Content-Length:0 | no content... |
SIP/2.0 200 OK | copied |
Via: SIP/2.0/UDP zetamachine.beta-org.com:5060;branch=as82je8ei4kr;received=100.101.102.103 | copied |
To: J. Ungar <sip:jungar@alpha-org.com>;tag=643a33 | copied |
From: J. Smith <sip:jsmith@beta-org.com>;tag=13456 | copied |
Call-ID:123456789@zetamachine.beta-org.com | copied |
CSeq: 1 INVITE | copied |
Contact: <sip:jungar@gammamachine.alpha-org.com> | same as 180 Ringing |
Content-Length:155 | |
v=0 | version 0 |
o=Ungar 2890844528 2890844528 IN IP4 gammamachine.alpha-org.com | originator info coming back at Smith |
s=Phone Call | subject |
c=IN IP4 200.201.203 | Connection Data Addr that will be sending media packets |
t=0 0 | start/stop time of session |
m=audio 60000 RTP/AVP 0 | Media info: media port transport format-list |
a=rtpmap:0 PCMU/8000 | attributes of preceding session |
ACK sip:jungar@gammamachine.alpha-org.com SIP/2.0 | |
Via: SIP/2.0/UDP zetamachine.beta-org.com:5060;branch=bt234s342343 | new branch id, ACK sent to 200 OK is considered separate transaction |
Max-Forwards: 70 | |
To: J. Ungar <sip:jungar@alpha-org.com>;tag=643a33 | |
From: J. Smith <sip:jsmith@beta-org.com>;tag=13456 | |
Call-ID:123456789@zetamachine.beta-org.com | |
CSeq: 1 ACK | |
Content-Length: 0 |
<---(RTP SESSION)--->
BYEBYE sip:jsmith@zetamachine.beta-org.com SIP/2.0 | |
Via: SIP/2.0/UDP gammamachine.alpha-org.com:5060;branch=bt234s394594 |
SIP version #/transport hostname-or-addr:portnum;branchparam New branch id because separate transaction from invite or ack shownpreviously. |
Max-Forwards: 70 | |
To: J. Smith <sip:jsmith@beta-org.com>;tag=13456 | To and from swapped as teardown request is coming from Ungar |
From: J. Ungar <sip:jungar@alpha-org.com>;tag=643a33 | To and from swapped as teardown request is coming from Ungar |
Call-ID:123456789@zetamachine.beta-org.com | |
CSeq: 1 BYE | |
Content-Length: 0 |
SIP/2.0 200 OK | |
Via: SIP/2.0/UDP gammamachine.alpha-org.com:5060;branch=bt234s394594 | SIP version #/transport hostname-or-addr:portnum;branchparam |
To: J. Smith <sip:jsmith@beta-org.com>;tag=13456 | |
From: J. Ungar <sip:jungar@alpha-org.com>;tag=643a33 | |
Call-ID:123456789@zetamachine.beta-org.com | |
CSeq: 1 BYE | |
Content-Length: 0 |
INVITE
msg - Proxy(address-of-record)->ProxiedContact(device/endpoint
URI)
INVITE sip:jungar@alpha-org.com SIP/2.0 | *method, Request-URI, SIP version # | |
Via:
SIP/2.0/UDP proxy.alpha-org.com:5060;branch=as82je8ei4kr Via: SIP/2.0/UDP 100.101.102.103:5060 |
*proxy VIA pre-pends original VIA 100.101.102.103 is numeric addr of end device that invite came from SIP version #/transport hostname-or-addr:portnum;branchparam |
|
Max-Forwards: 69 | decremented as it went through proxy | |
To: J. Ungar <sip:jungar@alpha-org.com> | *shows destination of SIP request. | |
From: J. Smith <sip:jsmith@beta-org.com>;tag=13456 | *shows origination of SIP request. Tag is combined with Call-ID to create unique conversation. | |
Call-ID:123456789@100.101.102.103 | *keeps track of particular SIP session. | |
CSeq: 1 INVITE | *Starting integer (incremented with each new request sent), method | |
Subject: Let's talk | Optional. Could be displayed during alerting. | |
Contact: <sip:jsmith@zetamachine.beta-org.com> | SIP URI of J. Smith's communication device. | |
Content-Type: application/sdp | message body is SDP | |
Content-Length: 158 | message body has 158 bytes (including CR/LFs) | |
v=0 | SDP protocol version # | |
o=Smith 2890844526 2890844526 IN IP4 100.101.102.103 | Originator info: username, sess-ID ver net-type addr-type address | |
s=Phone Call | name of session | |
c=IN IP4 100.101.102.103 | Connection Data-Addr that will be sending media packets: network-type address-type connection-address | |
t=0 0 | start/stop time of session. | |
m=audio 49170 RTP/AVP 0 | Media info: media port transport format-list | |
a=rtpmap:0 PCMU/8000 | attributes of preceding session (RTP/AVP or UDP) |
*required
180 Ringing ProxiedContact->Proxy
SIP/20.0 180 Ringing | copied from invite |
Via:SIP/2.0/UDPproxy.alpha-org.com:5060;branch=as82je8ei4kr;received=100.101.102.105 Via: SIP/2.0/UDP 100.101.102.103:5060 |
copied from invite; recived parameter contains literal IP addr that req was recieved from; First VIA will be stripped by Proxy on way to smith |
To: J. Ungar <sip:jungar@alpha-org.com>;tag=643a33 | copied from invite (same order);tag added |
From: J. Smith <sip:jsmith@beta-org.com>;tag=13456 | copied from invite (same order) |
Call-ID:123456789@100.101.102.103 | copied from invite |
CSeq: 1 INVITE | copied from invite |
Contact: <sip:jungar@200.201.202.203> | contact where to can be contacted once session is established |
Content-Length:0 | no content... |
200 Ringing ProxiedContact->Proxy
SIP/20.0 180 OK | copied from invite |
Via:SIP/2.0/UDPproxy.alpha-org.com:5060;branch=as82je8ei4kr;received=100.101.102.105 Via: SIP/2.0/UDP 100.101.102.103:5060 |
copied from invite; recived parameter contains literal IP addr that req was recieved from; First VIA will be stripped by Proxy on way to smith |
To: J. Ungar <sip:jungar@alpha-org.com>;tag=643a33 | copied from invite (same order);tag added |
From: J. Smith <sip:jsmith@beta-org.com>;tag=13456 | copied from invite (same order) |
Call-ID:123456789@100.101.102.103 | copied from invite |
CSeq: 1 INVITE | copied from invite |
Contact: <sip:jungar@200.201.202.203> | contact where to can be contacted once session is established |
Content-Length:0 | no content... |
v=0 | |
o=ungar 2890844528 2890844528 IN IP4 200.201.202.203 | |
s=Phone Call | |
c=IN IP4 200.201.202.203 | |
t=0 0 | |
m=audio 49172 RTP/AVP 0 | |
a=rtpmap:0 PCMU/8000 |
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |V=2|P|X| CC |M| PT | sequence number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | timestamp | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | synchronization source (SSRC) identifier | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | contributing source (CSRC) identifiers | | .... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Payload | Codec | Clock | Description | bps | bps w/ overhead |
0 | PCMU | 8000 | ITU G7.11 PCM mu-law Audio | 64 kbps | |
1 | 1016 | 8000 | CELP Audio | 4.8 kbps | |
2 | G721 | 8000 | ITU G721 ADPCM Audio | 32 kbps | |
3 | GSM | 8000 | European GSM Audio | 13 kbps | |
5 | DVI4 | 8000 | DVI ADPCM Audio | 32 kbps | |
6 | DVI4 | 16000 | DVI ADPCM 64kbs | 64 kbps | |
7 | LPC | 8000 | Experimental LPC Audio | ||
8 | PCMA | 8000 | ITU G711 PCM A-Law Audio | 64 kbps | |
9 | G722 | 8000 | ITU G722 Audio | ||
10 | L16 | 44100 | Linear 16-bit Audio | 705.6 kbps | |
11 | L16 | 44100 | Linear 16-bit Stereo Audio | 1411.2 kbps | |
14 | MPA | 90000 | MPEG-I or MPEG-II Audio Only | ||
15 | G728 | 8000 | ITU G728 Audio | 16 kbps | |
25 | CELB | 90000 | CelB Video | ||
26 | JBEG | 90000 | JBEG Video | ||
28 | NV | 90000 | nv Video | ||
31 | H261 | 90000 | ITU H.261 Video | ||
32 | MPV | 90000 | MPEG-I and MPEG-II Video | ||
33 | MP2T | 90000 | MPEG-II transport stream Video | ||
dynamic | iLBC | Internet low bit rate | 15 kbps | ||
dynamic | AMR | Adaptive Multirate Codec |