This section provides details about the XMSTool RESTful Utility (also referred to herein as "XMSTool" or "Utility"). XMSTool is used for developing, debugging, and supporting applications for the PowerMedia XMS using the HTTP RESTful API.
XMSTool is a java-based test application for passing and receiving XMS RESTful API messages to and from the PowerMedia XMS. Supported for both 1PCC and 3PCC (see the Call Control Models), it can be used to build and parse individual RESTful messages, and can drive and record simple applications. The utility provides the following:
Ability to manually enter and execute the XMS RESTful API commands and observe the results
Pre-recorded Macros available for commonly used call scenarios
Method to record Macros for automated execution of command sequences (Demo mode), enabling users to create simple Demos and debug their applications
Logging capabilities
XMSTool can establish media connections on both 1PCC and 3PCC modes.
With the 1PCC model, illustrated below, the PowerMedia XMS handles inbound and outbound SIP calls, taking advantage of its built-in SIP call control functionality. XMSTool controls all aspects of the PowerMedia XMS operation, including SIP call control.

With the 3PCC model, illustrated below, the XMSTool only directs the PowerMedia XMS to establish and manipulate the RTP-based media sessions. This model is commonly used in VoIP network environments such as IMS, where SIP call control is performed by an application server. This model permits using signaling protocols other than SIP and allows application architects the flexibility of choosing the signaling protocol.

Prior to using XMSTool, the user is expected to:
Understand the functionality and operation of the PowerMedia XMS.
Be familiar with the HTTP RESTful control interface of the PowerMedia XMS in order to use the tool in Demo mode.
Understand the HTTP RESTful interface of the PowerMedia XMS and have a working knowledge of XML and related topics (data structures, XSD, etc.) in order to use the tool at the individual command level (Advanced mode).
Understand the key concepts of a service-oriented architecture and HTTP RESTful interface.
Have a working knowledge of Java programming.