2009-10-27

Back from the 3rd ETSI IMS PlugTest


We spend a whole week at Lannion, France, participating to the 3rd ETSI IMS PlugTest. We met a lot a nice people and got a load of feedback. Even if the tests were dedicated towards NNI interoperability, the Mercuro IMS Client was widely used during testing !!!

Here are some nice pictures I took during the event:

From the ground.

From the above.

During our trip in the Briton islands.

2009-10-15

Inexbee is participating at the 3rd ETSI IMS PlugTest with Mercuro IMS Client

Tomorrow (2009-10-16) will be the beginning of the 3rd ETSI IMS PlugTest at Lannion, France. Inexbee will participate to this event with its famous Mercuro IMS Client.
You can find all the information along with the test description document (ETSI TS 186 011) on the ETSI website.
We will also bring some surprise, if we can get them ready by then. Stay tuned !!!

2009-10-12

New Release of Mercuro IMS Client (4.0.1508)

The latest release of Mercuro IMS Client (Version 4.0.1508) is available for download at http://www.mercuro.net/.

This release comes with fixes and improvements. Here is a non-exhaustive list:

[BRONZE, SILVER, GOLD]
- Fix a GDI crash when using Remote Desktop
- Fix a glitch on the last DMTF packet retransmission
- Fix minimum size of the window to ensure options visibility
- Fix crash on the contact list when changing authorization
- Fix minimum size of the window to ensure options visibility
- Fix crash on the contact list when changing authorization
- Fix crash when using SIP MESSAGE with tel URIs
- Fix UPDATE/INVITE for session modification to use UPDATE if supported
- Fix a parsing bug in MSRP header (case insensitive)
- Fix a UTF-8 encoding issue in messages
- Add Network Info headers in PRACK requests

[SILVER, GOLD]
- Add Security-* headers in PRACK request when used with IPSec

[GOLD]
- Add OMA Final Delivery Report for MMS messages
- Fix half-octet encoding for SMS SUBMIT payload
- Update features tags for RCS Phase 2

Your feedback is welcomed (http://feedback.mercuro.net/)

2009-10-02

SMS over 3GPP IMS Network

SMS stands for Short Message Service or Silent Messaging Service and is a communication service standardized in the GSM mobile communication system, using standardized communications protocols allowing the interchange of short text messages between mobile telephone devices.

SMS technology has been specified by the ETSI in GSM 03.40 and 03.38 documents (3GPP TS 23.040 and 3GPP TS 23.038 respectively). These documents only describe how to use SMS over mobile networks (nothing for IP networks).
In real world there are two way to receive SMS messages over mobile networks: Binary (PDU) and Text mode.
In this post I will explain how to use SMS technology over IP within the IP Multimedia (IM) Core Network (CN) subsystem based on the Session Initiation Protocol (SIP) and SIP Events as defined in 3GPP TS 24.229.
Note: In the coming chapters, « SMS over IMS Network » and « SMS over IP Network » have the same meaning.

Text mode

The message payload is transfered « as is ». This mode is out of scope.

Binary mode

Also know as PDU (Protocol Data Unit) mode, it is use to encode the payload of the SMS sent over IMS networks. In this case the payload only contains a sequence of hexa-decimal octets or decimal semi-octets strings. The overall PDU string contains some useful information (SMSC address, Service center time stamp, sender number, message reference ...) plus the actual message.

The message length can be up to 160 characters where each character represent 7bits [160/7bits], [140/8bits] or [70/16bits]. By default, each character represent 7bits encoded as per GSM 03.38.
For IMS Networks, SMS message shall be encapsulated in RPDUs (Relay Protocol Data Unit) data string as defined in 3GPP TS 24.011, subclause 7.3. The RPDU data is transfered from SM entity to SM entity using SIP MESSAGE requests. These SIP requests shall use the MIME type "application/vnd.3gpp.sms" for this purpose.

GSM 7 bit Default Alphabet

Each character represent 7bits. For more information see 3GPP TS 23.038 or ETSI GSM 03.38.

Figure 1: GSM 7bit alphabet

3GPP IMS Registration


On sending a REGISTER request, the IMS Client shall indicate its capability to receive traditional short messages over IMS network by including a "+g.3gpp.smsip" parameter into the Contact header according to RFC 3840.

Figure 2: SIP/IMS registration request

Mobile-Originated SMS (MO-SMS)


The IMS Client sender shall build and populate RP-DATA message (RPDU encapsulating TPDU data string), containing all the information that a mobile station submitting an SMS message according to 3GPP TS 24.011 would place, for successful delivery. The sender shall parse and interpret RP- DATA, RP-ACK and RP-ERROR messages, containing all the information that a mobile station receiving an SM according to 3GPP TS 24.011 would see, in a SM submission or status report.



Figure 3: Signaling flows demonstrating successful UE originated SM submit procedure over IP as per 3GPP TS 24.341

** [1,2,4] RP-DATA (SMS-SUBMIT)

Below is represented the first request (RP-DATA(SMS-SUBMIT)) sent from the IMS Client to the P-CSCF.

Figure 4: RP-DATA(SMS-SUBMIT) from Mercuro to the P-CSCF

The SIP MESSAGE (Figure 4) request sent from the IMS client to the P-SCSF carry the RP-DATA (Mobile station to IMS Network) message encoded as per 3GPP TS 24.011 chapter 7.3.1.2.

Figure 5: RP-DATA (Mobile Station to Network) as per 3GPP TS 24.011 subclause 7.3.1.2

The SIP MESSAGE content (Figure 4) can be dissected as following:

RP-MESSAGE: 000000069133010000F019069133010000F011000A9133163254760000AA05F330BB4E07
RPDU:000000069133010000F019
TPDU (SMS-SUBMIT):069133010000F011000A9133163254760000AA05F330BB4E07

The RP-MESSAGE can be dissected as follow (Figure 6):

Figure 6: RP-DATA (Mobile Station to Network) content dissection

** [9,10,11] RP-ACK(SMS-SUBMIT-REPORT)

The SIP MESSAGE payload includes the RP-ACK message. Its RP-User-Data information element includes a TPDU of type SMS-SUBMIT-REPORT.

Figure 7: RP-ACK as per 3GPP TS 24.011 subclause 7.3.3

RP-MESSAGE:020009069133163254760080

For more information, see 3GPP TS 24.011 subclause 7.3.3 for RPDU (RP-ACK) data and 3GPP TS 23.040 subclause 9.2.2.2a for TPDU (SMS-SUBMIT-REPORT) encoding. If error occurs when decoding the message, RP-ERROR (3GPP TS 24.011 subclause 7.3.4) message is sent instead of RP-ACK.

Mobile-Terminated SMS (MT-SMS)

Figure 8: UE originated SM deliver procedure over IP signaling as per 3GPP TS 24.341

** [2,3,4] RP-DATA(SMS-DELIVER)

This request sent from the IP-SM-GW includes a vnd.3gpp.sms payload that includes the short message and routing information for the S-CSCF to forward the short message.

The payload includes the RP-DATA message. Its RP-User-Data information element includes a TPDU of type SMS-DELIVER.

Figure 9: RP-DATA (Network to Mobile Station ) as per 3GPP TS 24.011 subclause 7.3.1.1

RP-MESSAGE: 0100069133010000F0001E069133010000F0040A91331632547600000000000000000005F330BB4E07

For more information, see 3GPP TS 24.011 subclause 7.3.1.1 for RPDU (RP-DATA) data and 3GPP TS 23.040 subclause 9.2.2.1 for TPDU (SMS-DELIVER) encoding.

** [8,9,11] RP-ACK(SMS-DELIVER-REPORT)

This request includes a vnd.3gpp.sms payload that includes the SMS-DELIVER-REPORT and routing information for the IP-SM-GW to forward the delivery report.
The payload includes an RP-ACK message. Its RP-User-Data information element includes a TPDU of type SMS-DELIVER-REPORT.

RP-MESSAGE:020109069133163254760080

For more information, see 3GPP TS 24.011 subclause 7.3.3 for RPDU (RP-ACK) data and 3GPP TS 23.040 subclause 9.2.2.1a for TPDU (SMS-DELIVER-REPORT) encoding.
If error occurs when decoding the message, RP-ERROR (3GPP TS 24.011 subclause 7.3.4) message is sent instead of RP-ACK.

References:

2009-10-01

New Release of Mercuro IMS Client (4.0.1489)

The latest release of Mercuro IMS Client(Version 4.0.1489) is now available for download at http://www.mercuro.net/.

This release comes with a lot of fixes and improvements. Here is a non-exhaustive list:

[BRONZE, SILVER, GOLD]
- Add support for UPDATE request in early state during an INVITE session
- Add support for Instant Message Disposition Notification (IMDN) as per RFC 5438
- Add ability to choose page mode type (SIP SIMPLE/MSRP Large Message Mode)
- Add ability to deactivate DirectSound API when sound is choppy
- Add ability to change protocol when SIP requests exceeds MTU or 1300 bytes
- Fix SDP rejection in in-dialog request during an INVITE session
- Fix a crash when using presence external document in NOTIFY
- Fix the early start of media during an outgoing INVITE session
- Update UI library to fix ToLogFont() crashes

[SILVER, GOLD]
- Add support for OMA emoticons
- Fix DNS resolving issues when a name returns both IPv4 and IPv6 records
- Fix DHCP issues when a domain returns both IPv4 and IPv6 records

[GOLD]
- Add support for 3GPP SMS(RP-DATA)

Your feedback is welcomed (http://feedback.mercuro.net/)
Mecuro DataSheet: http://www.mercuro.net/downloads/DataSheet_Mercuro.pdf