O'Reilly logo

Practical VoIP Using VOCAL by Luan Dang, Cullen Jennings, David Kelly

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required