External Machine Interface (EMI), an extension to Universal Computer Protocol (UCP) is a SMSC VAS protocol created by CMG. As one of the major SMSC vendor, EMI and SMPP are two of the widely used SMSC VAS protocol. Even after the merger of Logica and CMG, both protocols are still widely used.

One of the free library that I’ve using is from Marco Romano. It is a Perl library which can be used to generate EMI/UCP message easily. Please take a look at:

Nowadays, anyone that working in the telco space, esp. those who work in the ip mobile space, has to come in touch with transcoding one way or another. Today, topic is about transcoding and how to find information for each transcoding engine that are free and widely available.

Image Transcoding

The best and free engine that I’ve come across is ImageMagick. You can take a look at www.imagemagick.org. To convert from one format to another is as simple as:

convert rose.jpg rose.png

Audio Transcoding

Searching for free audio transcoding is not as simple as I thought initially until I found this web site athttp://xa.bi/mms/. It describes the difference audio transcoding engine and how they work together to convert different format of audio to/from one another.

Video Transcoding

FFMpeg is always the choice when I ask someone for a free source to transcode video file.

Check out these web site, it should give you a starting point of where to look out for free library and third party software to do transcoding.

Last Month in one of articles, I covered a topic on how to get the screen size of a mobile device, someone is wondering about how to check the Open Mobile Alliance (OMA) Digital Rights Management (DRM) support.

To check Forward-Lock, you need to ensure that the following content-type is accepted by the device:

application/vnd.oma.drm.message

To check Combined Delivery, you need to ensure that the following content-type is accepted by the device:

application/vnd.oma.drm.message

application/vnd.oma.drm.rights+xml

To check Separate Delivery, you need to ensure that the following content-type is accepted by the device:

application/vnd.oma.drm.rights+xml

application/vnd.oma.drm.rights+wbxml

application/vnd.oma.drm.content

One more thing is that the device may support (for example) Combined Delivery DRM, but you may not be able to use that in MMS. Thus, further check on “MmsCcppAccept” tag of the User Agent Profile (UAProf) to ensure that it is supported.

Some may wonder why I don’t just check the “DrmClass” tag instead. Well, you can, however, during my investigation, I found out that some mobile phone manufacturers do not include this in the UAProf. Thus, it is much safer to check the DRM’s content-types instead.

I have further modified the previous Mobile::UserAgentProfile library and include this checking into that. I have also make changes to the method calling so that I can hold the profile in memory rather than load the profile from file every time I need to check on the UAProf.

As mobile devices are created differently, there are a lot of different Screen size available in the market. Due to the small screen size, mobile application developers had always find it hard to optimize the WAP portal for different devices. Keeping a record of the screen size is also difficult as there isn’t a standard way for mobile devices manufacturers to communicate to the mobile application developers.

User Agent Profile (UAProf) specification is the answer to this problem. It is used to capture capability and preference information for mobile devices. This information can be used by content providers to produce content in an appropriate format for the specific device.

In this article, we will discuss the Perl module which use UAProf to get the screen size of the mobile devices. For further information, you can download a copy of UAProf’s specification at:

Open Mobile Alliance (OMA) is a standards body founded by telecommunication companies which develops open standards for the mobile phone industry. In order to ensure interoperability across all implementations for Digital Rights Management (DRM), the OMA provides DRM specifications so that content providers, operators and mobile phone manufacturers can easily integrate the DRM solution as smoothly as possible.

I have created Net::OmaDrm Perl module so that content providers can format the content-type quickly.

This module support the OMA DRM version 1.0 method of sending content to the handset. A device will declare the support for OMA-DRM by including one of the method which is provided by this module: