dimanche 8 mars 2009

GSMA Rich Communication Suite Experience

1. Presentation

RCS (Rich Communication Suite) was a join industry effort aiming to speed up the evolution of mobile phone communication towards rich communication. The RCS initiative includes network operators, network and device vendors (Orange, Telecom Italia, Telefonica, TeliaSonera, Ericsson, Nokia Siemens Networks, Nokia, SK Telecom, Sony Ericsson and Samsung).

The RCS is now managed by the GSM Association (GSMA). For more information about GSMA RCS program look at this dedicated website (http://www.gsmworld.com/rcs/programme.shtml)
The main goal of GSMA RCS is to provide a set of fully interoperable rich services to be used both in mobile and fixed network (Network/Access Convergence). These services will enrich call experience.
To be compliant with the GSMA RCS an IMS client MUST at least support these services:

- Enhanced Address Book (defined by the OMA –Open Mobile Alliance-)
- Enhanced Messaging (OMA)
- Content Sharing (GSMA)
- File Transfer (OMA)

An easy way to show how RCS work is to share with you RCS Experience using Mercuro IMS Client. Mercuro is one of the most complete and compliant IMS/RCS client used today.

Mercuro is developed by Inexbee.

2. Enhanced Address Book

This service (also called Enhanced Phonebook or EAB) is the main RCS Service and could be seen as an enriched buddy list with rich presence information. It should be possible to launch all other services (Image/Video Sharing, File transfer, SMS, MMS …) by selecting a contact from the phonebook.
The buddy list is expressed as XML documents and stored in various document repositories in the network where such documents can be located, accessed and manipulated (created, changed, deleted) by authorized principals.
Such documents are accessed and manipulated using IETF XML Configuration Access Protocol (XCAP).
Mercuro could be seen as a XDM Client (XDMC) and the server (XDMS) as a HTTP origin server.
Mercuro can automatically synchronize your EAB with your Terminal Address Book (TAB) to backup or restore your local buddies.
Synchronization between your TAB and the Network Address Book (NAB) must be done using a SyncML agent which will do translation from SyncML (OMA DS Synchronization) to OMA XDM.
Mercuro will support NAB synchronization in release 5.0.

Figure 1: Mercuro IMS Client EAB

2.1 XDM Storage

All contacts are remotely stored in the XDM server. Remote storage allows the user to get his buddy list everywhere and makes Convergence easier (Same contacts on your PC, PDA or mobile phone even if roaming). A contact is stored with some mandatory information (id and display-name) and extended with social information (e.g. nickname, e-mail, free text, dynamic avatar, birthday, labels, favorite link …). To keep XML documents compliant and interoperable, all Mercuro specific information are stored in separate documents.

Mercuro buddies are displayed with minimal information (nickname, msisdn …) and full profile is shown only when requested by the user. It is possible for the user to sort stored his contacts by nickname, e-mail, birthday …

2.2 History

All communications history is saved (for each contact) on behalf of the user. Retrieving a particular saved entry from the UI can be performed using dynamic filters.

Mercuro IMS Client allows the user to start new session (Voice/Video call, Image Sharing, Messaging …) from the history by selecting an entry. You can sort history by date, communication type...

2.3 Groups

Each contact could be part of one or many Groups (e.g. friends, family, biz …).

Mercuro buddies are displayed by Group. You can sort your buddies by group, name, sphere ….

2.4 Enhanced Address Book Presence

This feature is mainly based on OMA SIMPLE Presence 1.1 which partially uses IETF presence data model (RFC 4479).
Mercuro offers the possibility to publish your status (online, offline, out to lunch, on the phone …), dynamic avatar, favorite link, notes, availability, willingness, mood or per service/device capabilities at any time. Dynamic avatar publication (Based on OMA Presence Content) is an important element of EABP and gives Mercuro the look and feel of some well-known VoIP software (Skype or Windows Live Messenger).
It is possible to retrieve presence information for each contact in the phonebook using subscription mechanism (asynchronous). Presence could be retrieved one by one or per list.

All contacts are displayed with their presence information (all mentioned above). You have the possibility to sort your buddies by presence information (availability or willingness).
See below for capabilities indication.

2.5 Capabilities Enhanced Address Book

Mercuro can publish/store (persistent) end-user’s current communication capabilities and retrieve them later (new session). In the other side, capabilities information is retrieved for each contact using presence subscription. All contacts are displayed with their capabilities information. The list of capabilities to be shown to the user by Mercuro 4.x includes:

Video Call (3G CS video call)
Image Sharing (PRD IR.79 Image Share Interoperability Specification 1.0)
Video Sharing (PRD IR.74 Video Share Interoperability Specification, 1.0)
File Transfer (OMA SIMPLE IM 1.0)
Session Mode Messaging (OMA Instant Messaging using SIMPLE, 1.0)

Capabilities indication can be seen as “what type of communication I’m willing to accept”.

2.6 Presence authorization

Once your presence information is published you can choose with who you want to share it. At any time you can choose to accept, block, ignore or revoke an existing (or incoming request) authorization. Rules could be managed per lists (black-hat, white-hat …) or per buddy.

You can easily (UI) retrieve associated pres-rules (blocked, allowed …) for each contact.

2.7 Multimedia Element Integration

It is possible to integrate multimedia elements such as photos, portrait icon, free text …

3. Enhanced Messaging

Mercuro supports 1-to-1 and Ad-hoc mode messaging (Instant Messaging using SIMPLE v1.0 chapter 4.3.1). Peer-to-peer IM Session is also supported (chap. 4.3.2).
These services are supported as part of GSMA RCS Phase 1.

Mercuro also supports Pager mode (chap. 4.2.1) and Large Message Mode messaging (chap. 4.2.1).

Group Messages (chap. 4.2.2), Deferred Messages (chap. 4.2.3) and Predefined session mode messaging (chap. 4.3.1) will be supported in release 5.0.

Mercuro (PC version) uses Pager Mode and Large Message Mode messaging to simulate SMS/MMS services.
Mercuro uses OMA Final Delivery Reports (chap. 5.7) to simulate Negative/Positive Acknowledgement Mechanism for MMS messages.

For 1-to-1 mode the caller or callee can add new participants at any time. The exchanged message can contain both text and/or multimedia content (SMIL, images, videos ...).

End party activity (typing/composing) is indicated to all participants.

4. Content Sharing

4.1 Image Sharing

In 3GPP specifications Image sharing is defined as a service for sharing images between users during a mobile phone call (CS Call). These specifications were defined by the GSM Association for cellular network. For packet-only devices (e.g. Mercuro PC version) all these specifications do not apply. This mean that no CS voice call set up is required prior to sharing the images.
The Message Session Relay Protocol (MSRP), IETF RFC 4975, is mandatory for the Image Share Service. Image data information settings in SIP/SDP follow IETF File transfer RFC 5547 (previously [draft-ietf-mmusic-file-transfer-mech]).

To see how this feature is used in Mercuro IMS Client --> [http://imsclient.blogspot.com/2008/09/rcs-rich-communication-suite-image.html].

4.2 Video Sharing

This feature will be supported in release 5.0.

GSMA Video Sharing is vendor independent and a Peer-To-Peer service and doesn’t require special/dedicated server.
A compliant RCS Client shall be able to share live Video (by sharing the camera capture) and sharing pre-recorded Video is a handset implementation option.
Video codec H.263-2000 profile 0 level 45 is mandatory (QCIF). To have better Video quality MPEG4 Visual Simple Profile 0b and H.264/AVC Baseline Profile Level 1b could be optionally used.

5. File Transfer

Many technical references are common to GSMA Image Sharing but this service allows exchanging different types of content (text, documents, SMIL, videos …).
Both end clients (caller/callee) can start file transfer session during an ongoing session (CS/PS call) or without having an ongoing session.
Only 1-to-1 file transfer feature is supported in GSMA RCS phase 1 and only a single file can be transferred per session. Only sending/receiving files are supported and requesting files is not part of the GSMA RCS phase 1 use cases.

6. Main IETF/OMA specifications (3GPP omitted)

6.1 Enhanced address Book

[RFC 2387] + [RFC 3265] + [RFC 3857] + [RFC 3858] + [RFC 3863] + [RFC 3903] + [RFC 4662] + [RFC 4479] + [RFC 4480] + [RFC 4482] + [RFC 4483] + [RFC 4825] + [RFC 5025] + [RFC 5262] + [RFC 5264]

6.2 Enhanced Messaging (-minus those listed above)

[RFC 3862] + [RFC 3891] + [RFC 3994] + [RFC 4028] + [RFC 4145] + [RFC 4353] + [RFC 4488] + [RFC 4575] + [RFC 4579] + [RFC 4975] + [RFC 5366]

6.3 Image Sharing

[GSMA PRD IR.79 Image Share Interoperability Specification 1.0]
[RFC 4145] + [RFC 4575] + [RFC 4975] + [RFC 5547]

6.4 File Transfer

[RFC 4145] + [RFC 4575] + [RFC 4975] + [RFC 5547]

jeudi 5 mars 2009

DSCP marking under Windows at application level

DSCP stands for Differentiated Services Code Point and is a field in the header of IP packets (v4 and v6) for packet classification purposes. As defined in the RFC 2474 Differentiated Services enhancements to the Internet protocol are intended to enable scalable service discrimination in the Internet without the need for per-flow state and signaling at every hop.

 0   1   2   3   4   5   6   7
| DSCP | CU |
DSCP: Differentiated Services CodePoint (0x00-0x3F)
CU: Currently Unused


- Using End-to-end QoS features in IMS context. However, you can read 3GPP TS 23.207 for more information.
- Using DSCP tagging under Windows at host level (Network administrators).


- Using DSCP tagging under Windows at application level (General Information).

The IP_TOS socket option

By default, individual applications are not allowed to manipulate TOS (Type Of Services) bits, because this can defeat system policy mechanisms. This is why using IP_TOS option on WINSOCK socket has no effect.

Follow these steps to enable the IP_TOS option for the Winsock setsockopt function and the -v option for the ping utility on Windows 2000, Windows XP, or Windows Server 2003 (Microsoft KB 248611):

1. Start Registry Editor (Regedt32.exe).
2. Go to the following key:
3. If you are running Windows 2000, follow these steps:
1. On the Edit menu, click Add Value.
2. In the Value name box, type DisableUserTOSSetting.
3. In the Data Type list, click REG_DWORD, and then click OK.
4. In the Data box, type a value of 0 (zero), and then click OK.

If you are running Windows XP or Windows Server 2003, follow these steps:

1. On the Edit menu, point to New, and then click DWORD Value.
2. Type DisableUserTOSSetting as the entry name, and then press ENTER.

When you add this entry, the value is set to 0 (zero). Do not change the value.

4. Quit Registry Editor, and then restart the computer.

This is not supported under Windows Vista

The Generic Quality of Service (GQoS) API

It is also possible to specify DSCP values using GQoS API. This API is part of Microsoft Windows Sockets v2. Because the first method can break the security rules it is recommended to use GQoS. This API can also be used to provide feedback to your application regarding the status of the network.

Good article on how to use this API --> http://msdn.microsoft.com/en-us/magazine/cc301862.aspx

Only IPv4 is supported

Quality Windows Audio/Video Experience (qWave)

As define here qWave is a collection of QoS-related software modules that run on devices in the home network. qWave supports multiple A/V streams (real-time flows requiring QoS) and data streams (best-effort flows, such as e-mail) simultaneously over the home network, while providing a high-quality A/V user experience. qWave is targeted for home A/V scenarios and is disabled in other environments, such as an enterprise.

Only under Windows Vista

Some references: