volte

93
VOLTE

Upload: nivin-sebastian

Post on 09-Dec-2015

71 views

Category:

Documents


7 download

DESCRIPTION

VOLTE

TRANSCRIPT

Page 1: VOLTE

VOLTE

Page 2: VOLTE

Agenda

• VOLTE Introduction• IMS architecture• Overview of SIP• Overview of SDP• Introduction on RCS• Capability discovery• Enhanced address book

Page 3: VOLTE

Advantages of VOLTE

• Provide faster call setup time• Enhance voice quality with wideband codec• Enable simultaneous voice and LTE data• Provide evolution from voice to rich next generation IMS

services like video calling, file transfer, instant messaging with QoS support

• Migrate from dual radio CDMA + LTE devices to LTE only devices

• Take benefit of low band LTE for extended coverage• Improve spectral efficiency• Prepare evolution to LTE only deployments

Page 4: VOLTE

Mandatory features for Supporting VoLTE

From the UE’s point of view there are 4 requirements from Network to support VoLTE.

Semi-Persistent Scheduling (SPS) Transmission Time Interval (TTI) Bundling Discontinuous Reception (DRX) Robust Header Compression

Page 5: VOLTE

3GPP IMS Architecture

Page 6: VOLTE

IMS Home Network – Functional elements

Page 7: VOLTE

IMS Core Functions

IMS CSCF - Call Session Control Server: The IMS CSCF is the section of the architecture that provides the registration of the endpoints. It also provides routing for the SIP signaling messages. It also links to the interworking and transport layer to provide QoS. The IMS CSCF can be further split into further entities:

Server CSCF: This element in the overall IMS CSCF is a session control entity for endpoint devices and it maintains session state.

Proxy CSCF: This part of the IMS CSCF is the entry point to IMS for devices. The P-CSCF is the first point of contact for the UE and it forwards SIP messages to the user's home S-CSCF. It provides device control interworking security. Within the P-CSCF, the PCF or Policy Control Function provides QoS management.

Interrogating CSCF: This entity within the IMS CSCF is a session control entity for endpoint devices that maintains session state.

Page 8: VOLTE

IMS Core Functions

Home Subscriber Server, HSS: This is an important element within the IMS architecture which provides the subscriber data base for the home network.

Breakout gateway control function, BGCF: This entity within the IMS architecture selects the network in which a PSTN breakout is to occur. If this is to occur in the same network as the BGCF, then the BGCF selects a media gateway control function, MGCF

Media gateway control function, MGCF: This entity interworks the SIP signaling. It manages the distribution of sessions across multiple media gateways.

Media server function control, MSCF: This manages the use of resources on media servers.

SIP applications server, SIP-AS: The SIP-AS is a service execution platform on which one or more services are deployed.

Page 9: VOLTE

IMS Registration - Proxy- CSCF Discovery

The P-CSCF is the entry point to the IMS domain and serves as the outbound proxy server for the UE.

The UE attaches to the P-CSCF prior to performing IMS registrations and initiating SIP sessions.

During LTE attach procedure, the network sends ACTIVATE DEFAULT EPS BEARER CONTEXT REQUEST message for the IMS PDN to UE

From Protocol Configuration Option (PCO) parameters of ACTIVATE DEFAULT EPS BEARER CONTEXT REQUEST message, UE obtains IP address of the P-CSCF

When UE is attached to eHRPD, UE obtains IP address of the P-CSCF from PCO field of the VSNCP-Config-Response message for the IMS PDN provided by the network

UE obtains at least three P-CSCF IP addresses

The IMS SIP port number is configurable parameter at UE. Its default value is of 5060

Page 10: VOLTE

IMS Registration Overview

Device performs IMS registration with the Proxy-CSCF and S-CSCF.

e

Page 11: VOLTE

IMS Registration flow

Page 12: VOLTE

SIP Timers for IMS

Page 13: VOLTE

EPS Bearer EPS Bearer Types:• A Default EPS Bearer is always non-GBR• A Dedicated EPS Bearer can be GBR on non-GBR QoS Class Identifier (QCI): Used as a reference to Access Node specific parameters that control how bearer

level packets are forwarded, are pre-configured by the operator. Every QCI (GBR or non-GBR) is associated with a Priority Level.

The GBR indicates the bit rate that can be expected to be provided by a GBR bearer. The MBR limits the bit rate that can be expected to be provided by a GBR bearer. Rel8 requires MBR=GBR. MBR and GBR can be coded as high as 256 Mbps.

Page 14: VOLTE

Overview of SIP

• SIP is an application layer protocol that is used to establish, maintain, modify and end communications sessions between two or more parties .

• SIP is a signaling protocol for IP-based networks that can support the standard call processing functions found in the PSTN. The SIP protocol itself does not define these features, but enables their creation in network elements, such as proxy servers and user agents.

• SIP-based clients (devices) use TCP or UDP or SCTP protocols to connect to SIP servers• Key advantages of SIP protocol:

– Intelligence at the Edge: It is a peer-to-peer protocol with a blend of intelligence located at the edge (i.e., soft phone or end-user device hardware), complimented by more scalable, granular, and rapidly deployed services offered by service providers

– Flexibility: In IP suite, SIP is flexible and extraordinarily dynamic. Its functionality can be extended to any number of applications, including enhanced signaling for value-added services, VoIP, and XML-tagged applications

– Supports any Network Transport Medium: SIP is designed to be completely independent of the transport layer., It can use seamlessly across any transport scheme (TCP, UDP or SCTP) and be transported across any access modality — cable, DSL, WiFi, Ethernet, and wireless. Thus, SIP can enable a broad range of applications and remote session capabilities

– Mobility and Presence Support: Using SIP session establishment requests are sent to the network, which locates the user’s “presence” and establishes a session based on the user’s current location and usage profile

Page 15: VOLTE

SIP Requests & Responses

• SIP message is either a request or response• The following table includes, but not limited to, SIP messages used in

Verizon IMS-VoLTE network

g

Page 16: VOLTE

Requests

Page 17: VOLTE

Requests contd…

Page 18: VOLTE

Requests contd…

Page 19: VOLTE

Requests contd…

Page 20: VOLTE

Requests contd…

Page 21: VOLTE

Responses

Page 22: VOLTE

Responses contd…

Page 23: VOLTE

Request vs. Response

Page 24: VOLTE

REGISTER Header

REGISTER sip:vzims.com SIP/2.0

Route:sip:192.168.43.166:5060;lr>

P-Access-Network-Info: 3GPP-E-UTRAN-FDD; utran-cell-id-3gpp=31148000000000002 Network type Access –Info Computed value

Page 25: VOLTE

REGISTER Header contd...

Expires: 3600• Contact Header if device registered with IMS while on LTE or WiFiContact: <sip:[email protected]:5060>;+g.3gpp.icsi-ref="urn:urn-7:3gpp-service.ims.icsi.mmtel"; +sip.instance=<device_IMEI>;+g.gsma.rcs.telephony="cs,volte"; video

• Contact Header if device registered with eHRPDContact: <sip:[email protected]:5060>; +sip.instance=<device_IMEI> IMEI -> International Mobile Equipment Identity

Page 26: VOLTE

REGISTER Header contd...

Authorization: Digest username=“+12244004278”, realm="vzims.com", uri=“sip: vzims.com”,nonce="84a4cc6f3082121f32b42a2187831a9e",response="7587245234b3434cc3412213e5f113a5432“

From: <sip:[email protected]>;tag=4fa3560890To: sip:[email protected]

Page 27: VOLTE

REGISTER Header contd...

CSeq: 1 REGISTERCSeq or Command Sequence contains an integer and a method name. The CSeq number is incremented for each new request within a dialog

Max-Forwards: 70Max-Forwards serves to limit the number of hops a request can make on the way to its destination. It consists of an integer that is decremented by one at each hop

Via: SIP/2.0/UDP 192.168.43.144;branch=z9hG4bKnashds7;transport=UDPThe Via header field indicates the transport used for the transaction and identifies the location where the response is to be sent. Here transport is UDP. Branch ID is unique ID which identifies the transaction created by user.

Content-Length: 0Length of the body. Register will not have message body.

Page 28: VOLTE

200 OK (REGISTER)

SIP/2.0 200 OKFrom: <sip:[email protected]>;tag=4fa3560890To: <sip:[email protected]>; tag = 32299af7845

Tag is added here in To Field

Call-ID: apb03a0s09dkjdfglkj49111P-Associated-URI:<sip:[email protected]>P-Associated-URI:tel:+15551234567

Registrar returns a set of associated URIs in P-Associated –URI header for a registered address-of-record. Here SIP URI and TEL URI are returned

Max-Forwards: 70

Contact: <sip:[email protected]:5060>;+g.3gpp.icsi-ref; expires=1800

CSeq: 1 REGISTER

Via: SIP/2.0/UDP 192.168.43.144;branch=z9hG4bKnashds7;transport=UDP

Content-Length: 0

Page 29: VOLTE

INVITE Header

INVITE tel:1234512345;phone-context=vzims.com SIP/2.0tel:1234512345 -> tel URI (Mobile Directory Number (MDN) , vzims.com->Domain NameSupported: 100rel, timer Option tag “100rel” -> Endpoint supports PRACK. Option tag “timer” -> request other end to use session timer

Allowed: INVITE,ACK,PRACK,SUBSCRIBE,NOTIFY,CANCEL,INFO,BYE,UPDATE,REFER,MESSAGE,OPTIONS

List of Methods allowed at DeviceP-Preferred-Identity: <sip:[email protected]>

Device sets its preferred identity out of multiple valid identities it has. Here it is its SIP URIP-Access-Network-Info: 3GPP-E-UTRAN-FDD; utran-cell-id-3gpp=31148000000000002

Contact: <sip:[email protected]:5060>;+g.3gpp.icsi-ref="urn:urn-7:3gpp-service.ims.icsi.mmtel"; +sip.instance=<device_IMEI>;+g.gsma.rcs.telephony="cs,volte"; video Note: If Video calling is enabled

Page 30: VOLTE

INVITE Header contd...

Accept-Contact: * ;+g.3gpp.icsi-ref="urn:urn-7:3gpp-service.ims.icsi.mmtel“

The Accept-Contact header field allows the caller to specify that callee should be contacted if it matches some or all of the values of the header field. Here, user has not specified any preferred contact amongst contacts of the callee

User-Agent: SP VOIP IMS 2.0 In this Header, UAC reveals the specific software version it uses

Session Expires: 300Route:<sip:192.168.43.166:5060;lr>To:< tel:1234512345>From: sip:[email protected]; tag= 3456efa74510Call-ID: apb03a0s09dkjd546789CSeq: 1 INVITEVia: SIP/2.0/UDP 192.168.43.144;branch=z9hG4bKnashds7;transport=UDPContent-Type: Application/sdpContent-Length: 370

Page 31: VOLTE

Overview of SDP

• SIP incorporates the use of a Session Description Protocol (SDP)• SDP defines session content using a set of types similar to those used in

Multipurpose Internet Mail Extensions (MIME)• SDP is intended for describing multimedia communication sessions for the

purposes of session announcement, session invitation, and parameter negotiation to the participants

• SDP does not deliver media itself but is used for negotiation between end points of media type, format, and all associated properties.

• The set of properties and parameters are often called a session profile. • SDP is designed to be extensible to support new media types and formats• An SDP session description includes the following:

Session name and purpose Time(s) the session is active The media comprising the session Information needed to receive those media (addresses, ports, formats, etc.)

Page 32: VOLTE

SDP Offer & Answer

• SDP provides Offer & Answer model for media negotiation• In this model, one participant in the session generates an SDP

message that constitutes offer – describing media types, codecs, IP addresses, ports etc. to receive the media. This participant is called Offerer.

• The offer is conveyed to the other participant, called the Answerer.

• The Answerer generates an answer, which is an SDP message that responds to the offer provided by the Offerer.

• The answer has a matching media stream for each stream in the offer, indicating whether the stream is accepted or not, along with the codecs that will be used and the IP addresses and ports that the Answerer wants to use to receive media

Page 33: VOLTE

SDP Offer & Answer

Page 34: VOLTE

INVITE Message-Body (SDP)

• Session description

v= 0 [ protocol version, It is always 0]

o= SAMSUNG-IMS-UE 2987933615 2987933615 IN IP4 192.168.43.144

[<Originator/username> <sess-id> <sess-version> <nettype> <addrtype> <unicast-address>Session –id : globally unique identifier for the session. Normally, Network Time Protocol (NTP) format timestamp is used to ensure uniquenessSession-version: version number for this session description. It is incremented when this session data is modified. Normally, Network Time Protocol (NTP) format timestamp is used]

s= Video [session name; it should not be empty]

i= A VT Session [session information/description]

c= IN IP4 192.168.43.144 [connection information]

Page 35: VOLTE

INVITE Message-Body (SDP)

• Time Descriptiont= 0 0 [specify the start and stop times for a session. Here start time =0 and stop time=0. If the <stop-time> is set to zero, then the session is not bounded. If the <start-time> is also zero, the session is regarded as permanent]

• Media Description

m=audio 49120 RTP/AVP 104 110 102 108 105 100[<Media type> <Media Port> < Media Protocol> < Media format List>

a=rtpmap:104 AMR-WB/16000[ <rtpmap: payload type> <encoding name>/<clock rate>][‘a’ stands for media attributes. It maps from an RTP payload type number. AMR-WB has 9 variations in rate. Here, Media format is Dynamic RTP Type-104 which has 12. 65kbps frame content and band efficient mode. Clock rate is audio sampling rate. Here it is 16KHz]

a=fmtp:104 mode-set=2 [fmtp:<format> <format specific parameters>][Mode-set =2 means frame content has 12.65kbps]

Page 36: VOLTE

INVITE Message-Body (SDP)

• Media Descriptiona=rtpmap:110 AMR-WB/16000/1[Here, Media format is Dynamic RTP Type-110 which has 12.65kbps frame content but octet-align mode. ]

a=fmtp:110; mode-set=2;Octet-align =1[Mode-set =2 means frame content has 12.65kbps]

a=rtpmap:102 AMR/8000[AMR has 8 variations in rate .Here, Media format is Dynamic RTP Type-102 which has 12. 2kbps frame content and band efficient mode]

a=fmtp:102 mode-set=7[Mode-set =7 means frame content has 12.65kbps]

a=rtpmap:108 AMR/8000/1[Here, Media format is Dynamic RTP Type-108 which has 12. 2kbps frame content but band octet-align mode]

a=fmtp:108 mode-set=7; octet-align=1

Page 37: VOLTE

INVITE Message-Body (SDP)

• Media Descriptiona=rtpmap:105 telephone-event/16000 [Here, Media format is Dynamic RTP Type-105 for telephone events, clock rate 16KHz ]

a=fmtp:105 0-15[ Telephone event range from 0 to 15 (0-9,*,#,A,B,C,D)]

a=rtpmap:100 telephone-event/8000[Here, Media format is Dynamic RTP Type-100 for telephone events, clock rate 8KHz ]

a=fmtp:100 0-15

a=ptime:20[Packetization time 20 sec]

a=maxptime:240[Max. Packetization time 240 sec -> 7 packets]

a=sendrecv[Both Send and receive media packets]

Page 38: VOLTE

INVITE Message-Body (SDP)

• Media Descriptionm=video 49121 RTP/AVP 117 34[Here, Media format for video is Dynamic RTP Type-117 and 34]

a=rtpmap:117 H264/90000

a=fmtp:117 profile-level-id=428016

a=framerate:15

a=rtpmap:34 H263/90000

a=fmtp:34 profile=0

a=framerate:7

a=sendrecv

Page 39: VOLTE

SDP Offer-1

m=audio 49120 RTP/AVP 102 108 100a=rtpmap:102 AMR/8000a=fmtp:102 mode-set=7a=rtpmap:108 AMR/8000a=fmtp:108 mode-set=7; octet-align=1a=rtpmap:100 telephone-event/8000a=fmtp:100 0-15a=ptime:20a=maxptime:240a=sendrecv

Page 40: VOLTE

SDP Answer -1

m=audio 49120 RTP/AVP 102 100a=rtpmap:102 AMR/8000a=fmtp:102 mode-set=7a=rtpmap:100 telephone-event/8000a=fmtp:100 0-15a=ptime:20a=maxptime:240a=sendrecv

Page 41: VOLTE

SDP Offer-2

m=audio 49120 RTP/AVP 104 110 102 108 105 100a=rtpmap:104 AMR-WB/16000a=fmtp:104 mode-set=2a=rtpmap:110 AMR-WB/16000a=fmtp:110 mode-set=2; octet-align=1a=rtpmap:102 AMR/8000a=fmtp:102 mode-set=7a=rtpmap:108 AMR/8000a=fmtp:108 mode-set=7; octet-align=1a=rtpmap:105 telephone-event/16000a=fmtp:105 0-15a=rtpmap:100 telephone-event/8000a=fmtp:100 0-15a=ptime:20a=maxptime:240a=sendrecv

Page 42: VOLTE

SDP Answer-2

m=audio 49120 RTP/AVP 104 105a=rtpmap:104 AMR-WB/16000a=fmtp:104 mode-set=2a=rtpmap:105 telephone-event/16000a=fmtp:105 0-15a=ptime:20a=maxptime:240a=sendrecv

Page 43: VOLTE

Speech Codec & QoS

The UE shall support the speech codec:• AMR ( all eight modes): 4.75 kbps ,5.15 kbps, 5.9 kbps, 6.7 kbps, 7.4 kbps,

7.95 kbps, 10.2 kbps, 12.2 kbps( Mode Set =7)

• AMR-WB ( all nine modes): 6.6 kbps, 8.85 kbps, 12.65( Mode Set =2) kbps, 14.25 kbps, 15.85 kbps, 18.25 kbps, 19.85 kbps, 23.05 kbps, 23.85 kbps.

Verizon specific Note: UE support all modes of AMR and AMR-WB. Default modes : AMR 12.2Kbps, AMR-WB 12.65Kbps

Page 44: VOLTE

AMR –WB Band efficient Payload

Payload Header : CMR( 4 bits ) CMR: Indicates a codec mode request sent to the speech encoder at the site of the receiver of this

payload. Code mode request field set to the frame type index of the corresponding speech mode

being requested.

Page 45: VOLTE

AMR –WB Band efficient Payload

Table of content: F (1 bit) + Frame Type (4 bits) + Q ( 1 bit) F (1 bit): • If set to 1, -> indicates that this frame is followed by another speech

frame in this payload;• if set to 0, -> indicates that this frame is the last frame in this payload.

FT (4 bits): • indicates either the AMR or AMR-WB speech coding mode or comfort

noise (SID) mode of the corresponding frame carried in this payload.

Q (1 bit ): Frame quality indicator. • If set to 0, -> indicates the corresponding frame is severely damaged .• if set to 1 -> indicates the corresponding frame is OK.

Page 46: VOLTE

Types of Payload format

Octet-aligned Mode :• All the fields in a RTP payload (payload header + table of

contents entries + speech frames ) are individually aligned to octet boundaries.

• Octet alignment means last octet is padded with zeroes in the LSB(least significant bits) to fill the octet.

Bandwidth Efficient :• In the bandwidth efficient format only the full payload is

octet aligned, so fewer padding bits are added and makes efficient.

Page 47: VOLTE

Example of AMR-WB Band efficient Payload

Single Channel Payload Carrying a Single Frame : f1 58 4e 04 2e ef bb bc bc 17 b8 e3 d6 4f e8 99 02 23 63 f7 7a 20 63 80 38 00 10 e7 6a 09 11 b6 3e Payload is 33 Bytes. Take first two bytes : i.e., f1 58

F = 0Last frame in this payload

Page 48: VOLTE

Setting up Conference Call

• AT1 calls AT2 and then places this call on hold.• AT1 calls AT3 and places this call on hold.• AT1 then generates a SIP INVITE using the conference server URI which is routed to

the Telephony Application Server (TAS). • The TAS sets up a voice media path between AT1 and the MRF (which provides the

audio bridging function). • To request AT2 to join the conference call, AT1 sends SIP REFER to conference

server URI with Refer-To header indicating AT2, • TAS responds with SIP 202 Accepted, which creates an implicit subscription with

Event "refer".• AT1 gets a SIP NOTIFY indicating "100 Trying" in the message body.

Page 49: VOLTE

3-way conferencing with Subsequent Drop and Add

Page 50: VOLTE

Setting up Conference Call Continued…

• After AT2 accepts the SIP INVITE from TAS to join the conference call, AT1 gets a SIP NOTIFY indicating "200 OK" in the message body.

• AT1 can now send SIP BYE on the original dialog between AT1 and AT2

• Same process is followed to Add AT3• After AT3 also successfully joins the conference call, there is a

3-way call between AT1, AT2 and AT3 (through the MRF, providing the audio bridging function).

Page 51: VOLTE

Continues…

Page 52: VOLTE

Adding Participant in Call

• AT1 puts the call with TAS on hold.• Call AT4• Use SIP REFER Message to conf. server URI to request AT4.• SIP 202 Accepted from TAS• AT1 joins back TAS• AT4 joins the conference call

Page 53: VOLTE

Continues… Adding AT4 now

Page 54: VOLTE

PUBLISH HeaderPUBLISH sip:[email protected]; SIP/2.0Via: SIP/2.0/UDP 192.168.43.144;branch=z9hG4bKnashds7;transport=UDPAccept: application/pidf+xml, application/rlmi+xml, multipart/relatedMax-forwards: 70Contact: <sip:[email protected];5060>Route:<sip:192.168.43.166:5060;lr>To: <sip:[email protected]>From: <sip:[email protected]>; tag = 3456efa74510Call-ID: 200737754dCSeq: 1 PUBLISHExpires: 1200Event: presenceContent-Type: application/pidf+xmlContent-Length: 1277

Page 55: VOLTE

PUBLISH Body

<?xml version="1.0" encoding="UTF-8" ?> XML format

<presence Presence info part starts from hereentity=sip:[email protected] xmlns="urn:ietf:params:xml:ns:pidf“ xmlns:b="urn:ietf:params:xml:ns:pidf:caps" xmlns:op="urn:oma:xml:prs:pidf:oma-pres"

<tuple id="354edt4fe"> 1st tuple starts <status>

<basic>open</basic></status><op:service-description>

<op:service-id> org.3gpp.urn:urn-7:3gpp-application.ims.iari.rcse.dp </op:service-id><op:version> 1.0 </op:version></op:description> VoLTE Capabilities Discovery </op:description>

</op:service-description><contact>sip:[email protected]</contact>

</tuple> 1st tuple ends

Page 56: VOLTE

PUBLISH Body

<tuple id="t4fe357ba"> 2nd tuple starts <status>

<basic>open</basic></status><op:service-description>

<op:service-id> org.3gpp.urn:urn-7:3gpp-service.ims.icsi.mmtel </op:service-id><op:version>1.0</op:version><op:description> VoLTE and Video Service</op:description>

</op:service-description><b:servcaps>

<b:audio>true</b:audio><b:video>true</b:video><b:duplex>

<b:supported> <b:full/> </b:supported></b:duplex>

</b:servcaps><contact>sip:[email protected]</contact></tuple> 2nd tuple ends </presence>

Page 57: VOLTE

200 OK (PUBLISH Response)

• Presence server sends the ETag in the 200 OK response• The device should use the ETag in order refresh the event

state

SIP/2.0 200 OK To: <sip:[email protected]>From: <sip:[email protected]>CSeq: 1 PUBLISH SIP-ETag: dx200xyzExpires: 1200

Page 58: VOLTE

PUBLISH (Republish) Header

Device should send periodically PUBLISH message provided Etag is not expired

PUBLISH sip:[email protected]; SIP/2.0Via: SIP/2.0/UDP 192.168.43.144;branch=z9hG4bKnashds7;transport=UDPTo: <sip:[email protected]> From: <sip:[email protected]>CSeq: 1 PUBLISH SIP-If-Match: dx200xyz Expires: 1200 Event: presenceContent-Length: 0 The body of the republish is blank.

Page 59: VOLTE

PUBLISH (Update) Header

• Device should send Publish message to Presence server for updating if there is a change in its capabilities and availability and previous Etag is not expired

PUBLISH sip:[email protected]; SIP/2.0Via: SIP/2.0/UDP 192.168.43.144;branch=z9hG4bKnashds7;transport=UDPTo: <sip:[email protected]> From: <sip:[email protected]>CSeq: 1 PUBLISH SIP-If-Match: dx200xyz Expires: 1200 Event: presenceContent-Length: ……

The body of the update PUBLISH message is similar to that shown for initial PUBLISH message, varying according to the actual capabilities and availability at that time.

Page 60: VOLTE

PUBLISH (Unpublish) Header

• Device should send Publish message to Presence server for unpublishing its presence at device shutdown and airplane mode ON

PUBLISH sip:[email protected]; SIP/2.0Via: SIP/2.0/UDP 192.168.43.144;branch=z9hG4bKnashds7;transport=UDPTo: <sip:[email protected]> From: <sip:[email protected]>CSeq: 1 PUBLISH SIP-If-Match: dx200xyz Expires: 0 Event: presenceContent-Length: 0

The body of the unpublish is blank

Page 61: VOLTE

Different scenarios of device capabilities & availabilities

Page 62: VOLTE

SUBSCRIBE Header

SUBSCRIBE sip:[email protected]; SIP/2.0Via: SIP/2.0/UDP 192.168.43.144;branch=z9hG4bKnashds7;transport=UDPAccept: application/pidf+xml, application/rlmi+xml, multipart/relatedMax-forwards: 70Contact: <sip:[email protected];5060>Route:<sip:192.168.43.166:5060;lr>To: <sip:[email protected]>From: <sip:[email protected]>; tag = 3456efa74510Call-ID: 200737754dCSeq: 1 SUBSCRIBEExpires: 1200Supported: eventlistRequire: recipient-list-subscribeAccept-Encoding:gzipEvent: presenceContent-Type: application/resource-list+xmlContent-Length: 1277

Page 63: VOLTE

SUBSCRIBE Body

<?xml version="1.0" encoding="UTF-8" ?><resource-lists xmlns="urn:ietf:params:xml:ns:resource-lists" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><list name="dummy-rfc5367"><entry uri="tel:+16175551212 "/><entry uri="tel:+17815551212 "/><entry uri="tel:+19175551212 "/><entry uri="tel:+12125551212 "/></list></resource-lists>

Page 64: VOLTE

NOTIFY Header

NOTIFY sip:[email protected]; SIP/2.0Via: SIP/2.0/UDP 192.168.43.144;branch=z9hG4bKnashds7;transport=UDPMax-forwards: 70Contact: <sip:[email protected];5060>To: <sip:[email protected]>; tag=234ab45230From: <sip:[email protected]>; tag = 3456efa74510Call-ID: 200737754dCSeq: 1 NOTIFYExpires: 600Event: presenceSubscription-State: activeContent-Type: application/rlmi+xml,application/pidf+xmlContent-Length: 1277

Page 65: VOLTE

NOTIFY Body

<list xmlns="urn:ietf:params:xml:ns:rlmi" rlmi+xml part starts uri="sip:+1234567890@@vzims.com;pres-list=dummy-rfc5367" version="0" fullState="true"><name>dummy-rfc5367</name><resource uri="tel:+16175551212 "><instance id="001" state="active" reason="subscribe"cid="[email protected]_1312926684451"/>/></resource><resource uri="tel:+17815551212 "><instance id="001" state="active" reason="subscribe" cid="tel17815551212 _1312926684452"/></resource><resource uri="tel:+12244004301 "/> Both resources have not published<resource uri="tel:+19175551212 "/> rlmi+xml part ends</list>

Page 66: VOLTE

NOTIFY Body

--nxbound1312926427801\r\nContent-ID:<tel:+16175551212_1312926684451> 1st resource/Content Id Content-Type:application/pidf+xml; charset=utf-8Content-Transfer-Encoding:binary <?xml version="1.0" encoding="UTF-8"?><presence entity=" sip:[email protected] " xmlns="urn:ietf:params:xml:ns:pidf" xmlns:b="urn:ietf:params:xml:ns:pidf:caps" xmlns:op="urn:oma:xml:prs:pidf:oma-pres"><tuple id="354edt4fe"> 1st tuple starts

<status><basic>open</basic> </status><op:service-description>

<op:service-id> org.3gpp.urn:urn-7:3gpp-application.ims.iari.rcse.dp

</op:service-id><op:version>1.0</op:version>

<op:description> VoLTE Capabilities Discovery </op:description></op:service-description><contact>sip:[email protected]</contact></tuple> 1st tuple ends

Page 67: VOLTE

NOTIFY Body

<tuple id="t4fe354ed"> 2nd tuple starts <status> <basic>open</basic></status><op:service-description><op:service-id> org.3gpp.urn:urn-7:3gpp-service.ims.icsi.mmtel </op:service-id>

<op:version>1.0</op:version><op:description> VoLTE and Video Service</op:description>

</op:service-description><b:servcaps>

<b:audio>true</b:audio><b:video>true</b:video><b:duplex> <b:supported> <b:full/></b:supported></b:duplex>

</b:servcaps><contact>sip:[email protected]</contact></tuple> 2nd tuple ends</presence>--nxbound1312926427801

Pidf +xml part of cid “tel17815551212 _1312926684452”will be similar to above

Page 68: VOLTE

Different scenarios of device subscription state in NOTIFY message

Page 69: VOLTE

SUBSCRIBE (Availability fetch)

SUBSCRIBE sip:[email protected]; SIP/2.0Via: SIP/2.0/UDP 192.168.43.144;branch=z9hG4bKnashds7;transport=UDPAccept: application/pidf+xmlMax-forwards: 70Contact: <sip:[email protected];5060>Route:<sip:192.168.43.166:5060;lr>To: < sip:[email protected]>From: <sip:[email protected]>; tag = 3456efa74510Call-ID: 200737754dCSeq: 1 SUBSCRIBEExpires: 0Event: presenceContent-Length: 0

Page 70: VOLTE
Page 71: VOLTE

Introduction on RCS

• RCS Versions– RCS-e ( RCS Enhanced)

• Initial implementation for advanced communication services• Based on GSMA RCS Release 2 spec.

– RCS 5.1• Provides a framework for discoverable and interoperable

advanced communication services • Based on GSMA RCS Release 1 to 4, RCS-e 1.2 and RCS 5.0

– Joyn BlackBird• RCS marketed by the GSMA under the brand name joyn™• Based on RCS 5.1

Page 72: VOLTE

RCS Features Summary

Page 73: VOLTE

RCS Features Summary

Page 74: VOLTE

CAPABILITY DISCOVERY

• Capability Discovery is a process• It enables users to understand the subset of RCS services available with their

contacts• User needs this information at certain points of time to access/communicate its

contact• RCS 5.1 provides two alternative mechanisms to perform the capability discovery:

– SIP OPTIONS– PRESENCE ( VZW requirements follow this procedure)

Page 75: VOLTE

OPTIONS Vs. PRESENCE

REGISTER REGISTER

SUBSCRIBE to all contacts

STANDARD REGISTRATION (Rest of registration scenarios)

REGISTER

PUBLISH (capabilities)

ADDING/MODIFYING A CONTACT

OPTIONS to all contacts

REGISTER

OPTIONS to new/modified contact SUBSCRIBE to new/modified contact

PERIODIC CAPABILITY POLLING (Polling period >0)

LIVE CAPABILITY/SERVICE DISCOVERY

SUBSCRIBE to all contacts whose capabilities have not been

recently updated

OPTIONS to all contacts whose capabilities have not been

recently updated

OPTIONS (contact) SUBSCRIBE (contact)

LIVE CAPABILITY/SERVICE UPDATE

PUBLISH (capabilities)OPTIONS (contact)

Page 76: VOLTE

Enhanced Address Book (EAB)

• Overview

• EAB is a feature provided by Address Book Application• It has two functions

– Presence Publication– Presence Info Retrieval

• Presence Publication– Device publishes its own capabilities and availability– Capabilities include but not limited to HD voice and video calling– Required for other devices to retrieve– Performed by Presence User Agent (PUA) of Address Book Application

• Presence Info Retrieval (Presence Discovery)– Discovery of other device’s capabilities associated with a contact– Discovery of other device’s availability associated with a contact– Performed by Presence Watcher of Address Book Application

Page 77: VOLTE

Presence Publication

• Presence Publication achieved by using SIP PUBLISH method• Different contexts of PUBLISH

– Full initial publish– Periodic or scheduled or refresh publish– Update publish– Un-publish

• Full initial publish– First time presence object instance of UE is created at presence server

• Periodic or scheduled or refresh publish– Device sends publish message to presence server periodically to refresh its

capabilities and availability– The period is controlled by PST parameter PUBLISH-TIMER or PUBLISH-

TIMER-EXTENDED– Default value of PUBLISH-TIMER=1200s (20 minutes) and PUBLISH-TIMER-

EXTENDED= 86400s (1 day)

Page 78: VOLTE

Presence Publication

• Update publish– Device updated its capabilities and availability as

and when its capabilities and availability status changes

• Un-publish– Device requests presence server to remove its

capabilities and availability– Presence server destroys presence object instance

for the device

Page 79: VOLTE

PUPLISH Request

Page 80: VOLTE

SIP PUPLISH Header (Initial publish)

Page 81: VOLTE

SIP PUPLISH Body – PIDF + XML

<?xml version="1.0" encoding="UTF-8"?><presence xmlns="urn:ietf:params:xml:ns:pidf" " entity="sip:[email protected]"> <tuple id="disc415192695"> <status> <basic>open</basic> </status> <op:service-description> <op:service-id>org.3gpp.urn:urn-7:3gpp-application.ims.iari.rcse.dp</op:service-id> <op:version>1.0</op:version> <op:description> VoLTE Capabilities Discovery </op:description> </op:service-description> <contact>sip:[email protected]</contact> </tuple> <tuple id="caps415192696"> <status> <basic> open </basic> </status> <caps:servcaps> <caps:audio>true</caps:audio> <caps:video>true</caps:video> <caps:duplex> <caps:supported> <caps:full/> </caps:supported> </caps:duplex> </caps:servcaps> <op:description> VoLTE service </op:description> </op:service-description> <contact>sip:[email protected]</contact> </tuple></presence>

Page 82: VOLTE

SIP 200 OK (PUBLISH)

SIP/2.0 200 OKVia: SIP/2.0/TCP [2600:2:5:6:3:2:206:1356]:5060;branch=z9hG4bK97466916smg;transport=TCPFrom: <sip:[email protected]>;tag=1737480301To: <sip:[email protected]>;tag=4614552585Call-ID: 2065482978@2600:2:5:6:3:2:206:1356SIP-ETag: 13461603CSeq: 1 PUBLISHExpires: 1200Content-Length: 0

Page 83: VOLTE

Difference Between Various Publish Types

Page 84: VOLTE

Presence Info Retrieval

• Presence Info Retrieval achieved through SIP SUBSCRIBE method

• Two types of presence info retrieval or discovery– Capability polling– Availability fetch

• Capability polling– For existing contact(s) or new contact(s)– For existing contact(s), it is periodic or scheduled or refresh

capability polling– For new contact(s), it is instantaneous capability polling– Resource-list subscription (multiple contacts or contact with

multiple numbers)– Single resource subscription (single contact with 1 number)

Page 85: VOLTE

Capability Polling/Availability Fetch

• Capability polling triggered if– Device registered with IMS successfully– Last PUBLISH is successful– Device having at least 1 contact number

• When first time device activated• Periodic capability polling

– Controlled by PST parameter CAPABILITY-POLL-INTERVAL– Default value 604800s ( 7 days)

• Instantaneous capability polling – New contact added – Existing contact modified– NAB sync

• Availability Fetch– Performed for existing contact only– User opens a contact in NAB– User opens a contact in Call Log History– Not performed outside of LTE and eHRPD coverage

Page 86: VOLTE

SIP SUBSCRIBE HeaderSUBSCRIBE sip:[email protected];pres-list=dummy-rfc5367 SIP/2.0Accept: application/pidf+xml,multipart/related,application/rlmi+xmlAccept-Encoding: gzipRequire: recipient-list-subscribeContent-Type: application/resource-lists+xmlExpires: 30Event: presenceSupported: eventlistFrom: "Anonymous" <sip:[email protected]>;tag=1094511641To: <sip:[email protected];pres-list=dummy-rfc5367>Allow: INVITE,ACK,OPTIONS,CANCEL,BYE,UPDATE,INFO,REFER,NOTIFY,MESSAGE,PRACKP-Access-Network-Info: 3GPP-E-UTRAN-FDD;utran-cell-id-3gpp=00101000010000001User-Agent: Samsung RCS 3.1Contact: <sip:+11234567890@[1111::1111]:5060>Route: <sip:[1112::1112]:5060;lr>Call-ID: 2030486758@1111::1111CSeq: 1 SUBSCRIBEMax-Forwards: 70Via: SIP/2.0/UDP [1111::1111]:5060;branch=z9hG4bK1260670180smg;transport=UDPContent-Length: 322

Page 87: VOLTE

SIP SUBSCRIBE Body

<?xml version="1.0" encoding="UTF-8"?><resource-lists xmlns="urn:ietf:params:xml:ns:resource-lists" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <list name="dummy-rfc5367"> <entry uri="tel:+12145551234"/> <entry uri="tel:+12146661234"/> <entry uri="tel:+12148881234"/> </list></resource-lists>

Page 88: VOLTE

SIP NOTIFY Header

NOTIFY sip:+11234567890@[fd00:0:0:1::1]:5060 SIP/2.0Event: presenceVia: SIP/2.0/TCP [fd00:0:20:1::1:4]:5060;branch=z9hG4bK1393604306523209-spirentvolteMax-Forwards: 70From: <sip:+ [email protected]>;tag=9982378004To: "Anonymous" <sip:[email protected]>;tag=2219518615Contact: <sip:[fd00:0:20:1::1:4]:5060>Call-ID: 443903722@fd00:0:0:1::1Subscription-State: activeContent-Type: multipart/related; type="application/rlmi+xml“; boundary="nxbound1312926427801"CSeq: 110 NOTIFYContent-Length: 1382

Page 89: VOLTE

SIP NOTIFY Body – PIDF + XML

<list xmlns="urn:ietf:params:xml:ns:rlmi" uri="sip:+11234567890@@vzims.com;pres-list=dummy-rfc5367" version="0" fullState="true"><name>dummy-rfc5367</name><resource uri="tel:+12145551234"><instance id="001" state="active" reason="subscribe"cid="tel12145551234_1312926684451"/> </resource><resource uri="tel:+12146661234"><instance id="001" state="active" reason="subscribe" cid="tel12146661234_1312926684452"/> </resource><resource uri="tel:+12148881234"/><instance id="001" state="active" reason="subscribe" cid="tel12148881234_1312926684453"/> </resource></list>--nxbound1312926427801\r\n

Page 90: VOLTE

SIP NOTIFY Body – PIDF + XML

Content-ID:<tel12145551234_1312926684451>Content-Type:application/pidf+xml; charset=utf-8Content-Transfer-Encoding:binary

<?xml version="1.0" encoding="UTF-8"?><presence entity=" sip:[email protected] “xmlns="urn:ietf:params:xml:ns:pidf" xmlns:b="urn:ietf:params:xml:ns:pidf:caps" xmlns:op="urn:oma:xml:prs:pidf:oma-pres"><tuple id="354edt4fe">

<status> <basic>open</basic> </status><op:service-description>

<op:service-id>org.3gpp.urn:urn-7:3gpp-application.ims.iari.rcse.dp

</op:service-id><op:version>1.0</op:version><op:description>VoLTE Capabilities Discovery </op:description>

</op:service-description><contact>sip:[email protected]</contact>

Page 91: VOLTE

SIP NOTIFY Body – PIDF + XML

<tuple id="t4fe354ed"><status> <basic>open</basic> </status><op:service-description><op:service-id> org.3gpp.urn:urn-7:3gpp-service.ims.icsi.mmtel </op:service-id><op:version>1.0</op:version><op:description> VoLTE and Video Calling Service</op:description></op:service-description><b:servcaps><b:audio>true</b:audio><b:video>true</b:video><b:duplex> <b:supported> <b:full/> </b:supported></b:duplex> </b:servcaps><contact>sip:[email protected]</contact></tuple> </presence>Boundary: --nxbound1312926427801\r\n……….Last Boundary: --nxbound1312926427801\r\n

Page 92: VOLTE

Reference Documents

Page 93: VOLTE