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 Server

The VMS contains the intelligence for the Voice Mail application and controls the UAVM through the VMCP protocol.

VMCP Messages Received by VMS

The VMCP messages received by the VMS are:

  • VMCP::SessionInfo

  • VMCP::Dtmf

  • VMCP::PlayStopped

  • VMCP::Close

The LineVMCP class contains a VMCP object and listens to the open sockets for VMCP messages (LineVMCP::Process). When a message is received, an event is generated and sent to the state machine for further processing. Events are listed in vocal-1.3.0/vm/vme/EventList.h.

VMS Initialization

When the VMS is started, the following objects are created:

VMCP

Needed to communicate with the UAVM.

LineVMCP

Receives VMCP messages from the VMCP and puts corresponding events to the event queue. It contains a VMCP object and the socket descriptors for the UAVM connections.

VmSession (derives from Session)

Contains all the data associated with the current session, in particular the VMS configuration and a LineVmcp object.

The VMS then waits on port 8024 and forks a new process for every connection request received from a UAVM. Then events are generated upon reception of VMCP messages as described later, and the VMS waits for these events in the State::ProcessLoop() .

IMAP Server

The interface for the Internet Message Access Protocol (IMAP, RFC 2060) library client (vocal-1.3.0/contrib/imap/c-) is vocal-1.3.0/vm/mail/mail.cxx. This file is used to communicate with the IMAP server that contains the Voice Mail messages. This IMAP client is ...

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