# Simplified Message Desk Interface

Simplified Message Desk Interface (SMDI) is a protocol that defines the interface between a voice mail system and a phone system such as a PBX or public telephone switch. It was developed by Bell Labs. It is used to provide the voice mail system the information it needs to process the call. Each time a call is sent to the voice mail system, a message is sent using SMDI over a serial interface that identifies the line, the type of call, and the calling/called party numbers. The SMDI protocol also specifies a method for turning the message-waiting indicator (MWI) on and off on individual telephones.
Some of the more recent voicemail systems transmit the SMDI protocol over a network TCP session rather than a serial interface.
The current requirements are provided in the Telcordia Technologies Generic Requirements document GR-283-CORE (legacy document TR-NWT-000283).
According to Telcordia GR-283-CORE, the Simplified Message Desk Interface (SMDI) is an analog interface between the local stored program controlled switching system (SPCS) and a message storage and retrieval (MSR) system. Calls are distributed to the call answering points with normal call processing or using multiline hunt group (MLHG) features. One or more MLHGs may be associated with the same set of SMDI data links. An identification scheme is assigned in the SPCS to identify each MLHG uniquely and each line in the MLHG, for which call information (e.g., calling number) is provided over the SMDI data link. This identification information is provided to the MSR system, with the call information, to help the MSR system correlate the call information with a call terminating on a particular line.

## Message format

<CR><LF>MDXXXLLLLTYYYYYYY<0x20>ZZZZZZZ<0x20><CR><LF><^Y>
Meaning of the individual segments:
* <CR> - carriage return
* <LF> - line feed
* MDXXX - Message desk. This is a 3 digit field (usually 001)
* LLLL - Logical terminal number (0001 - 4096)
* T - Reason code (D for direct call, A for all calls forwarded, B for busy forwarding, U for unknown)
* <0x20> - space
* YYYYYYY - called party number (maybe not present, such as for direct calls)
* ZZZZZZZ - calling party number (CPN) (maybe not present if unavailable)
* <CR> - carriage return
* <LF> - line feed
* <^Y> - end marker, Ctrl-Y, ASCII "EM"
Each of the numbers is a common fixed length for each link, such as 5 (extensions), 7 (US PSTN numbers without area code), or 10 (US PSTN numbers) digits, zero-padded on the left where necessary, and terminated with <0x20>.
A typical use of the called party number is to select which voicemail greeting to play for the call.

## MWI format

OP:MWI<0x20>XXXX!<EOT>
Meaning of the individual segments:
* OP - Operate message-waiting indicator (turn on)
* <0x20> - space
* XXXX - extension number
* <EOT> - end-of-transmission character
RMV:MWI<0x20>XXXX!<EOT>
* RMV - remove message-waiting indicator (turn off)
* <0x20> - space
* XXXX - extension number
* <EOT> - End of Transmission

## Example

This is an example of a direct call from extension 3500. It was presented to the voice messaging system on LTN 0007 (port 7). This would be someone calling from their extension to pick up their voicemail and thus would likely ask for sign-on credentials, such as a PIN.
<CR><LF>MD0010007D<0x20>3500<0x20><CR><LF><^Y>