EMI (protocol)


External Machine Interface, an extension to Universal Computer Protocol, is a protocol primarily used to connect to short message service centres for mobile telephones. The protocol was developed by CMG Wireless Data Solutions, now part of Mavenir.

Syntax

A typical EMI/UCP exchange looks like this :
^B01/00045/O/30/66677789///1//////68656C6C6F/CE^C
^B01/00041/R/30/A//66677789:180594141236/F3^C
The start of the packet is signaled by ^B and the end with ^C. Fields within the packet are separated by / characters.
The first four fields form the mandatory header. the third is the operation type, and the fourth is the operation.
The subsequent fields are dependent on the operation. In the first line above, '66677789' is the recipient's address and '68656C6C6F' is the content of the message, in this case the ASCII string "hello". The second line is the response with a matching transaction reference number, where 'A' indicates that the message was successfully acknowledged by the SMSC, and a timestamp is suffixed to the phone number to show time of delivery.
The final field is the checksum, calculated simply by summing all bytes in the packet and taking the 8 least significant bits from the result.
The full specification is available on the LogicaCMG website developers' forum, but registration is required.

Technical limitations

The two-digit transaction reference number means that an entity sending text messages can only have 100 outstanding messages ; this can limit performance, but only over a slow network and with incorrectly configured applications on one's SMSC. In practice it does not have any impact on delivery throughput.
The EMI UCP documentation specifies a default alphabet of IRA. In practice users default to the GSM-7 alphabet, which is almost the same as ASCII on 7 bit, except for a few characters - for example '_'.

Alternatives