OneContact SIP Cloud - SIP Messages flow

To park a call, it’s necessary to establish a call with OnePark. In the following figure it is possible to see the SIP negotiation with OnePark.

 

SipFlow.png

 

The SIP INVITE request (1) must be sent by a B2B UA and must be similar to the following invite:

INVITE sip:park@10.200.10.99:5090[;<SIP DATA PARK PARAMETERS>] SIP/2.0
From: <sip:+351219999999@dev.dt112979.collab:5060>;tag=3ce12390-630ac80a-47eeb900-332f09
To: <sip:park@10.200.10.99:5090>
Call-ID: 3f452fc0-630ac80a-13d8-6006-332f09-49d2c23a-332f09
CSeq: 1 INVITE
Via: SIP/2.0/UDP 10.200.10.99:5060;branch=ce8E!2yYcskyA-U!CaS8GQgKyGmKyO.1-27f8f080
Record-Route: <sip:19665497182146545776AOUD@10.200.10.99:5060;lr;dayaRRParam21051398832082135073>
Via: SIP/2.0/UDP 10.200.10.99:5080;branch=z9hG4bK-332f09-c7efbb2e-34c92b89-3b56b6d0
Max-Forwards: 69
Supported: timer,replaces
Contact: <sip:+351219999999@10.200.10.99:5080>
Session-Expires: 1800
Min-SE: 300
Allow: INVITE,ACK,CANCEL,BYE,REFER,INFO,UPDATE,MESSAGE,NOTIFY
Content-Type: application/sdp
Content-Length: 335

v=0
o=- 19 1 IN IP4 172.18.136.40
s=CounterPath eyeBeam 1.5
c=IN IP4 172.18.136.40
t=0 0
m=audio 17130 RTP/AVP 3 101 0 8 18
a=fmtp:101 0-15
a=rtpmap:101 telephone-event/8000
a=sendrecv
a=x-rtp-session-id:66925A252B9942E38C787FFC14B29A43
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:18 G729/8000
a=fmtp:18 annexb=no

 

The “[;<SIP DATA PARK PARAMETERS>]” contains, among other things, the list of files to be played. This is optional in the INVITE request but, when set, must contain a specific set of properties.

This parameter is optional because the B2B UA might choose the file to be played according to the physical location of OnePark; the INVITE request is normally sent to a load balancer and the physical location is only acknowledge when the B2B UA receives the 200 OK response.

OnePark responds with Trying (2) and Ringing (3):

SIP/2.0 100 Trying
From: <sip:+351219999999@dev.dt112979.collab:5060>;tag=3ce12390-630ac80a-47eeb900-332f09
To: <sip:park@10.200.10.99:5090>
Call-ID: 3f452fc0-630ac80a-13d8-6006-332f09-49d2c23a-332f09
CSeq: 1 INVITE
Via: SIP/2.0/UDP 10.200.10.99:5060;branch=ce8E!2yYcskyA-U!CaS8GQgKyGmKyO.1-27f8f080
Via: SIP/2.0/UDP 10.200.10.99:5080;branch=z9hG4bK-332f09-c7efbb2e-34c92b89-3b56b6d0
Supported: timer
Contact: <sip:park@10.200.10.99:5090>
Content-Length: 0


SIP/2.0 180 Ringing
From: <sip:+351219999999@dev.dt112979.collab:5060>;tag=3ce12390-630ac80a-47eeb900-332f09
To: <sip:park@10.200.10.99:5090>;tag=1d379e50-630ac80a-13e2-6006-332f09-6057cd08-332f09
Call-ID: 3f452fc0-630ac80a-13d8-6006-332f09-49d2c23a-332f09
CSeq: 1 INVITE
Via: SIP/2.0/UDP 10.200.10.99:5060;branch=ce8E!2yYcskyA-U!CaS8GQgKyGmKyO.1-27f8f080
Via: SIP/2.0/UDP 10.200.10.99:5080;branch=z9hG4bK-332f09-c7efbb2e-34c92b89-3b56b6d0
Supported: timer
Record-Route: <sip:19665497182146545776AOUD@10.200.10.99:5060;lr;dayaRRParam210513>
Contact: <sip:park@10.200.10.99:5090>
Content-Length: 0

 

OnePark will then respond with 200 OK (4) with the negotiated codecs:

SIP/2.0 200 OK
From: <sip:+351219999999@dev.dt112979.collab:5060>;tag=3ce12390-630ac80a-47eeb900-332f09
To: <sip:park@10.200.10.99:5090>;tag=1d379e50-630ac80a-13e2-6006-332f09-6057cd08-332f09
Call-ID: 3f452fc0-630ac80a-13d8-6006-332f09-49d2c23a-332f09
CSeq: 1 INVITE
Via: SIP/2.0/UDP 10.200.10.99:5060;branch=2yYcskyA-U!CaS8GQgKyGmKyO.1-27f8f080
Via: SIP/2.0/UDP 10.200.10.99:5080;branch=z9hG4bK-332f09-c7efbb2e-34c92b89-3b56b6d0
Supported: timer
Record-Route: <sip:19665497182146545776AOUD@10.200.10.99:5060;lr;dayaRRParam210513>
Contact: <sip:park@10.200.10.99:5090>
Session-Expires: 1800;refresher=uas
Allow: INVITE,ACK,CANCEL,BYE,OPTIONS,INFO,UPDATE
Content-Type: application/sdp
Content-Length: 210

v=0
o=OnePark 6 1 IN IP4 10.200.10.99
s=Collab SDP
c=IN IP4 10.200.10.99
t=0 0
m=audio 18948 RTP/AVP 18 101
a=rtpmap:18 G729/8000
a=fmtp:18 annexb=no
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15

 

The B2B UA completes the transaction by sending an Ack (5):

ACK sip:park@10.200.10.99:5090 SIP/2.0
From: <sip:+351219999999@dev.dt112979.collab:5060>;tag=3ce12390-630ac80a-47eeb900-332f09
To: <sip:park@10.200.10.99:5090>;tag=1d379e50-630ac80a-13e2-6006-332f09-6057cd08-332f09
Call-ID: 3f452fc0-630ac80a-13d8-6006-332f09-49d2c23a-332f09
CSeq: 1 ACK
Via: SIP/2.0/UDP 10.200.10.99:5060;branch=ce8E!2yYcskyA-U!CaS8GQgKyGmKyO.1
Record-Route: <sip:10.200.10.99:5060;lr;dayaRRParam210513>
Via: SIP/2.0/UDP 10.200.10.99:5080;branch=z9hG4bK-332f09-c7efbc10-63da5626-3b56b950
Max-Forwards: 69
Contact: <sip:+351219999999@10.200.10.99:5080>
Content-Length: 0

 

The B2B UA might send an in-dialog INFO (6) request. This request should only be sent when no SIP data parameters are specified in INVITE request:

INFO sip:park@10.200.10.99:5090[;<SIP DATA PARK PARAMETERS>] SIP/2.0
From: <sip:+351219999999@dev.dt112979.collab:5060>;tag=3ce12390-630ac80a-47eeb900-332f09
To: <sip:park@10.200.10.99:5090>;tag=1d379e50-630ac80a-13e2-6006-332f09-6057cd08-332f09
Call-ID: 3f452fc0-630ac80a-13d8-6006-332f09-49d2c23a-332f09
CSeq: 2 INFO
Via: SIP/2.0/UDP 10.200.10.99:5060;branch=ce8E!2yYcskyA-U!CaS8GQgKyGmKyO.2-27f8f660
Record-Route: <sip:19665497182146545776AOUD@10.200.10.99:5060;lr;dayaRRParam210513>
Via: SIP/2.0/UDP 10.200.10.99:5080;branch=z9hG4bK-332f09-c7efbc14-24599fac-3b56bbd0
Max-Forwards: 69
Supported: timer,replaces
Contact: <sip:+351219999999@10.200.10.99:5080>
Content-Length: 0

 

OnePark will then reply with a 200 OK (7):

SIP/2.0 200 OK
From: <sip:+351219999999@dev.dt112979.collab:5060>;tag=3ce12390-630ac80a-47eeb900-332f09
To: <sip:park@10.200.10.99:5090>;tag=1d379e50-630ac80a-13e2-6006-332f09-6057cd08-332f09
Call-ID: 3f452fc0-630ac80a-13d8-6006-332f09-49d2c23a-332f09
CSeq: 2 INFO
Via: SIP/2.0/UDP 10.200.10.99:5060;branch=ce8E!2yYcskyA-U!CaS8GQgKyGmKyO.2-27f8f660
Via: SIP/2.0/UDP 10.200.10.99:5080;branch=z9hG4bK-332f09-c7efbc14-24599fac-3b56bbd0
Supported: timer
Contact: <sip:park@10.200.10.99:5090>
Content-Length: 0

 

Re-Park a call

The repark operation consists in switching the file currently being played. This operation is done by sending an INFO request like the one described during the call setup.

 

Notifications

OnePark sends notifications when the caller sends DTMF events and when a file reaches the end. Those notifications are sent using INFO requests. The content of the notification is sent in the SIP data parameter. The request should be similar to this:

INFO sip:+351219999999@10.200.10.99:5080[;<SIP DATA NOTIFICATION PARAMETER>] SIP/2.0
From: <sip:park@10.200.10.99:5090>;tag=1d38ce98-630ac80a-13e2-6006-33444d-3f223cd6-33444d
To: <sip:+351219999999@dev.dt112979.collab:5060>;tag=3ce27048-630ac80a-56e7c7b8-33444d
Call-ID: 3f456640-630ac80a-13d8-6006-33444d-389aac7a-33444d
CSeq: 1 INFO
Via: SIP/2.0/UDP 10.200.10.99:5090;branch=z9hG4bK-334453-c842e60b-6ca3ed2d-1d225e20
Max-Forwards: 70
Supported: timer
Route: <sip:19665497182146545776AOUD@10.200.10.99:5060;lr;dayaRRParam21051398832082135073>
Contact: <sip:park@10.200.10.99:5090>
Content-Length: 0