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 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access