Voice Mail User Agent

The Voice Mail User Agent (UAVM) is a user agent that uses a vmcpDevice instead of a Quicknet or sound card device. The UAVM sends events to the VMS through a TCP socket using the VMCP protocol. The UAVM has SIP and RTP threads , and plays the recording of the RTP packets into files, using Recorder.h, and plays recorded files, such as user greetings, using PlayQueue.h.

The UAVM shares the regular UA code, but uses the -m option, upon startup, which activates a vmcpDevice .

VMCP Protocol

The VMCP class handles messaging between the UAVM and the VMS and can be seen as a protocol stack. It uses TCP sockets and abstracts the VMCP messages for sending/receiving VMCP messages and is therefore used by the UAVM and the VMS.

VMCP is not an approved protocol, nor is it a standard, and it may not even be a good idea. It is our own proprietary, hacked-together Voice Mail control protocol. Ideally, we would like to replace VMCP with our Real-Time Streaming Protocol (RTSP) stack and media server.

The VMCP text messages are listed here. Upon reception, each message is acknowledged.

CLOSE

UAVM client Voice Mail server

SESSIONINFO

UAVM client Voice Mail server

REQSESSIONINFO

Voice Mail server UAVM client

DTMF

UAVM client Voice Mail server

PLAYFILE

Voice Mail server UAVM client

STARTPLAY

Voice Mail server UAVM client

STOPPLAY

Voice Mail server UAVM client

PLAYSTOPPED

UAVM client Voice Mail server

RECORDFILE

Voice Mail server UAVM client

Get Practical VoIP Using VOCAL now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.