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 ...

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.