IMS |
|||||||||||||||||||||||||||||||||||||
RCS does not have any special registration process. It is just a additional service running on top of IMS. But usually RCS enabled UE go through some of additional steps during IMS registration. What are those additional steps ? The answer may vary a little depending on UE implementation and Carriers requirement. The most common additional steps for RCS during IMS Registration is SUBCRIBE/NOTIFY and PUBLISCH. You may already be familiar with SUBCRIBE/NOTIFY. You might have seen SUBSCRIBE with Event 'reg'. But this is with different Event called 'presence'. One common example SIP message sequence with IMS enabled phone is as follows. In reality, during SUBCRIBE/NOTIFY and PUBLISH process, some XCAP procedure is performed. So, the complete transaction would be more complicated than this example, but I just put down SIP transaction part to give you overall process. (If you are interested in the full transactions including XCAP process, refere to RCS Initial Subscribe/Notify page.)
Overall logic of this sequence is like this.
Step 1 and 2 is IMS Registration without Authentication. Very simple. I intentionally tried without Authentication to make IMS registration procedure simple because it is not the main focus of the topic in this post. Step 3 is SUBSCRIBE for presense. With this message, UE tells IMS server "Are you providing Presence service ?" (See the details of message contents). Step 7 is the response to Step 3. Depending on the situation, you may see this response earlier than in this example. For example, this reponse would come right after Step 3. In this step, IMS Server say "Yes, I am providing Presence service". Step 5 is the message in which UE informs RCS server about its RCS capability. Basically in this message UE is saying "Hey.. I can do this, this, that, that ...". See the details of message contents and see how UE carry these information in the message.
REGISTER sip:test-rcs.com SIP/2.0 Call-ID: 3Ag0yaUAAA@192.168.1.1 CSeq: 1 REGISTER From: <sip:+339012341234@test-rcs.com>;tag=PBg0yaUCAA To: <sip:+339012341234@test-rcs.com> Via: SIP/2.0/UDP 192.168.1.1:5060;keep;branch=z9hG4bKbf994bf8ba37e52882a1ac4ba748f008383138;rport Max-Forwards: 70 Contact: <sip:192.168.1.1:5060;transport=UDP>;+sip.instance="<urn:gsma:imei:356432059050620>"; +g.oma.sip-im; +g.3gpp.cs-voice; +g.gsma.rcs.ipcall; +g.3gpp.icsi-ref="urn%3Aurn-7%3A3gpp-service.ims.icsi.mmtel";video;automata; +g.3gpp.iari-ref="urn%3Aurn-7%3A3gpp-application.ims.iari.gsma-is, urn%3Aurn-7%3A3gpp-application.ims.iari.rcs.fthttp" Supported: path, gruu Allow: INVITE,UPDATE,ACK,CANCEL,BYE,NOTIFY,OPTIONS,MESSAGE,REFER Route: <sip:192.168.1.2:5060;transport=udp;lr> Expires: 600000 User-Agent: IM-client/OMA1.0 Test-RCS-client/2.5.13 Authorization: Digest username="X",uri="sip:test-rcs.com",algorithm=MD5,realm="X",nonce="",response="" Content-Length: 0
3) SUBSCRIBE sip:+339012341234@test-rcs.com;pres-list=rcs
SUBSCRIBE sip:+339012341234@test-rcs.com;pres-list=rcs SIP/2.0 Call-ID: 8Ih0yaUFAA@192.168.1.1 CSeq: 1 SUBSCRIBE From: "test user" <sip:+339012341234@test-rcs.com>;tag=8Ih0yaUGAA To: <sip:+339012341234@test-rcs.com;pres-list=rcs> Via: SIP/2.0/UDP 192.168.1.1:5060;branch=z9hG4bKcad78c485b12e9ff2a8410e4d375722f383138;rport Max-Forwards: 70 Route: <sip:192.168.1.2:5060;transport=udp;lr> Expires: 3600 User-Agent: IM-client/OMA1.0 Test-RCS-client/2.5.13 Contact: <sip:192.168.1.1:5060;transport=UDP>;+sip.instance="<urn:gsma:imei:356432059050620>" Allow: INVITE,UPDATE,ACK,CANCEL,BYE,NOTIFY,OPTIONS,MESSAGE,REFER Event: presence Supported: eventlist Content-Length: 0
5) PUBLISH sip:+339012341234@test-rcs.com
PUBLISH sip:+339012341234@test-rcs.com SIP/2.0 Call-ID: xSh0yaUHAA@192.168.1.1 CSeq: 1 PUBLISH From: <sip:+339012341234@test-rcs.com>;tag=xSh0yaUIAA To: <sip:+339012341234@test-rcs.com> Via: SIP/2.0/UDP 192.168.1.1:5060;branch=z9hG4bK84da5f074a2ba56ea1c0d63f7fa45a54383138;rport Max-Forwards: 70 Route: <sip:192.168.1.2:5060;transport=udp;lr> Expires: 3600 SIP-If-Match: ac63be7e9042439dad76da16904cf48d User-Agent: IM-client/OMA1.0 Test-RCS-client/2.5.13 Event: presence Content-Type: application/pidf+xml Content-Length: 2122
<presence xmlns="urn:ietf:params:xml:ns:pidf" xmlns:op="urn:oma:xml:prs:pidf:oma-pres" xmlns:opd="urn:oma:xml:pde:pidf:ext" xmlns:pdm="urn:ietf:params:xml:ns:pidf:data-model" xmlns:ci="urn:ietf:params:xml:ns:pidf:cipid" xmlns:rpid="urn:ietf:params:xml:ns:pidf:rpid" xmlns:gp="urn:ietf:params:xml:ns:pidf:geopriv10" xmlns:gml="urn:opengis:specification:gml:schema-xsd:feature:v3.0" entity="sip:+339012341234@test-rcs.com"> <tuple id="t1"> <status><basic>open</basic></status> <op:service-description> <op:service-id>org.openmobilealliance:File-Transfer</op:service-id> <op:version>1.0</op:version> </op:service-description> <contact>sip:+339012341234@test-rcs.com</contact> <timestamp>2014-06-19T06:30:45.000Z</timestamp> </tuple> <tuple id="t2"> <status><basic>open</basic></status> <op:service-description> <op:service-id>org.gsma.imageshare</op:service-id> <op:version>1.0</op:version> </op:service-description> <contact>sip:+339012341234@test-rcs.com</contact> <timestamp>2014-06-19T06:30:45.000Z</timestamp> </tuple> <tuple id="t3"> <status><basic>open</basic></status> <op:service-description> <op:service-id>org.gsma.videoshare</op:service-id> <op:version>1.0</op:version> </op:service-description> <contact>sip:+339012341234@test-rcs.com</contact> <timestamp>2014-06-19T06:30:45.000Z</timestamp> </tuple> <tuple id="t4"> <status><basic>open</basic></status> <op:service-description> <op:service-id>org.openmobilealliance:IM-session</op:service-id> <op:version>1.0</op:version> </op:service-description> <contact>sip:+339012341234@test-rcs.com</contact> <timestamp>2014-06-19T06:30:45.000Z</timestamp> </tuple> <tuple id="t5"> <status><basic>open</basic></status> <op:service-description> <op:service-id>org.3gpp.cs-videotelephony</op:service-id> <op:version>1.0</op:version> </op:service-description> <contact>sip:+339012341234@test-rcs.com</contact> <timestamp>2014-06-19T06:30:45.000Z</timestamp> </tuple> </presence>
7) NOTIFY sip:192.168.1.1:5060;transport=udp
NOTIFY sip:192.168.1.1:5060;transport=udp SIP/2.0 Via: SIP/2.0/UDP 192.168.1.2:51417;branch=z9hG4bKb7a8715cd9d04e019149483fac110bee93;rport;transport=udp Via: SIP/2.0/TCP 192.168.1.2:6061;branch=z9hG4bK299ad82d0390455982d5f305d9d68a43;rport=49793 Max-Forwards: 69 From: <sip:presence@test-rcs.com>;tag=9ab957cb0149442b9e4a6d99d93f3d21 To: <sip:+339012341234@test-rcs.com>;tag=8Ih0yaUGAA Event: presence Contact: <sip:presence@test-rcs.com> Content-Type: application/pidf+xml Subscription-State: active Content-Length: 0 CSeq: 1 NOTIFY Call-ID: 8Ih0yaUFAA@192.168.1.1 Record-Route: <sip:192.168.1.2;lr>
|
|||||||||||||||||||||||||||||||||||||