mercredi 15 juillet 2009

Mercuro IMS Client and SigComp

New release of Mercuro IMS Client (silver edition) now includes SigComp (Signaling Compression).
Mercuro implements:
  • RFC 3320 - Signaling Compression (SigComp)
  • RFC 3485 - The Session Initiation Protocol (SIP) and Session Description Protocol (SDP) Static Dictionary for Signaling Compression (SigComp)
  • RFC 3486 - Compressing the Session Initiation Protocol (SIP)
  • RFC 4077 - A Negative Acknowledgement Mechanism for Signaling Compression
  • RFC 4464 - Signaling Compression (SigComp) Users' Guide
  • RFC 4465 - Signaling Compression (SigComp) Torture Tests
  • RFC 4896 - Signaling Compression (SigComp) Corrections and Clarifications
  • RFC 5049 - Applying Signaling Compression (SigComp) to the Session Initiation Protocol (SIP)
  • RFC 5112 - The Presence-Specific Static Dictionary for Signaling Compression (Sigcomp)
  • 3GPP TR23.979 Annex C - Required SigComp performance

vendredi 19 juin 2009

libSigComp Beta 0.2

First beta version of libSigComp is now available for download.
To download source code:
- go to http://code.google.com/p/libsigcomp or
- use command line "svn checkout http://libsigcomp.googlecode.com/svn/trunk/ libsigcomp-read-only"

Released under LGPLv3

lundi 25 mai 2009

libSigComp: THE Open-Source SigComp framework

I’m writing today to announce the launch of libSigComp, an Open-Source SigComp Framework. This project is intended to develop a complete and compliant SigComp Framework to speed-up SigComp integration in Open-Source IMS projects.


As many operators have begun to commercially deploy IMS, the relevance of using SigComp to lower bandwidth usage will come quickly. In my own opinion I think that most operators (especially those using RCS) will question how to reduce SIP signaling (registration, billing, presence, messaging …) bandwidth usage (who will pay bits?).

These questions will especially concern using SIP (or all other text-based protocols) in wireless handsets as part of 2.5G and 3G cellular networks.


SigComp stands for Signaling Compression and has been defined in RFC 3320 by Internet Engineering Task Force (IETF) ROHC working group.

Many application protocols used for multimedia communications are text-based and engineered for bandwidth rich links. As a result the messages have not been optimized in terms of size. For example, typical IMS/SIP messages range from a few hundred bytes up to two thousand bytes or more. For this reason, SigComp is a mandatory part of 3GPP IMS.

SigComp could also be useful for RCS (Rich Communication Suite) networks because of the size of the SIP packets (more than three thousand bytes for presence publication). Using SigComp in IMS/RCS context will reduce the round-trip over slow radio links.


The goal of this project is to provide a SigComp framework which:

- Could be used as an external API or Framework

- Highly portable (Coded in C/C++ without any external dependencies)

- Easily configurable (memory usage, priorities in static dictionaries, stateful/stateless modes, dynamic/static/shared compression types …)

- Easy to integrate with any existing SIP/IMS stack, Proxy-CSCF, PoC client …

- Allow to easily plug your own compressor (DEFLATE –RFC 1951- will be the default)

- Robust

- Efficiently run on mobile handsets (small footprint)

- Use small memory (UDVM decompression)

- Run fast without high CPU usage


COMPLIANCE:


RFC 3320: Signaling Compression (SigComp)

RFC 3321: Signaling Compression (SigComp) - Extended Operations

RFC 4464: Signaling Compression (SigComp) Users' Guide

RFC 4465: Signaling Compression (SigComp) Torture Tests

RFC 4077: A Negative Acknowledgement Mechanism for Signaling Compression

RFC 3485: The Session Initiation Protocol (SIP) and Session Description Protocol

(SDP) Static Dictionary for Signaling Compression (SigComp)

RFC 5112: The Presence-Specific Static Dictionary for Signaling Compression (Sigcomp)

RFC 1951: DEFLATE Compressed Data Format Specification version

3GPP TR23.979 Annex C: Required SigComp performance


Released under LGPLv3


MORE INFORMATION:


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

[OMA-TS-XDM_Core-V1_1-20080627-A]
[OMA-WP-XDM_1_1_Implementation_Guidelines-20080627-C]
[OMA-TS-Presence-SIMPLE_Content_XDM-V1_0-20081223-C]
[OMA-TS-Presence_SIMPLE-V1_1-20080627-A]
[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)

[OMA-TS-SIMPLE_IM-V1_0-20080903-C]
[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

[OMA-TS-SIMPLE_IM-V1_0-20080903-C]
[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


Out-of-Scope

- 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).

In-Scope

- 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:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TcpIp\Parameters
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:

http://www.rfc-editor.org/rfc/rfc2474.txt
http://www.rfc-editor.org/rfc/rfc1349.txt
http://www.microsoft.com/whdc/archive/qWave.mspx
http://technet.microsoft.com/en-us/library/bb742475.aspx
http://support.microsoft.com/kb/248611

mardi 17 février 2009

IMS Client for Windows Mobile


After the success of Mercuro IMS Client on Windows XP/Vista, Inexbee has launched Mercuro Pocket.

Mercuro Pocket is fully compliant with main 3GPP/IETF specifications and can be used to make voice calls over wireless connection (Both IPv4 and IPv6 networks are supported).

This IMS client includes OMA/IETF XDM features that make possible to store your buddy list on a remote server with presence information using XCAP protocol.

Inexbee has developed a special mechanism that allows routing all IMS/SIP calls through the earpiece to avoid poor audio quality if needed (HTC, BenQ, SAMSUNG …).

GSMA Image Sharing and Video Sharing features are under development and will be released soon.

Mercuro Pocket can be used as a normal SIP /VoIP client and is now available for download at http://www.mercuro.net.



lundi 2 février 2009

Commercial version of Mercuro IMS Client is now available





Inexbee’s Mercuro IMS Client is the result of more than four years of expertise in telecom and convergence software development. Today, the Mercuro IMS Client is the most complete and 3GPP/IMS/RCS compliant softphone available. After several months of live testing and thanks to the active contribution of many of you, the beta version is withdrawn to give birth to a Bronze, Silver and Gold edition on Windows and Windows Mobile.








Mercuro Bronze Edition

Inexbee is providing a free version of the Mercuro IMS Client. The Bronze edition is the entry level version that offers all of the most common features of IMS. It is perfect to begin IMS testing and deployment.

The Mercuro Bronze edition is downloadable for free directly from our website: www.mercuro.net








Mercuro Silver Edition + Mercuro Pocket (beta)

The Mercuro IMS Client Silver edition is our most complete version of IMS Client. It includes all of the features of the Bronze edition. Additionaly, it is compliant with the latest security Networks and is carrying OMA XDMS support. It can be used in carrier-grade IMS environment.

Be among the first to buy the Mercuro Silver Edition and get the beta Mercuro Pocket Silver edition (for Windows Mobile) for free.

You can buy it directly from our website: www.mercuro.net







Mercuro Gold Edition (On Request)

Fully customizable, the Gold edition is available on request and is dedicated to large deployments and provides custom branding, QoS features and high quality codec.

For further information please refer to: www.mercuro.net




About Mercuro

Inexbee is a worldwide leader in software development for multimedia convergence and interoperability. Mercuro team is part of a large community of companies and independent engineers setting up the standards of the next Rich Communication Suite and bringing to life the concept of Multimedia Convergence Service.

For further information please refer to: www.mercuro.net



Copyright 2008 © Inexbee - All Rights Reserved