This document describes how to use the TelServices gateway of TelServer.
The main purpose of TelServer is to provide telephony capabilities to computer applications. TelServer acts as a telephony server for client applications since it is connected to the PBX (using its specific call control link) so that it handles the "telephony" view. The client application only has to request specific telephony services.
TelServices is one of the telephony protocols supported by TelServer. It is an XML based client/server protocol using TCP/IP or HTTP.
The following diagram shows the overview. Desktop clients invokes TelServices from the TelServer gateway.
The TelServices protocol is a client-server protocol. The client sends requests to the server and the server answers results or errors. Additionally, the client may be notified by the server of particular events occuring on the monitored PBX device.
The encoding of protocol is simple XML (with no prolog, no namespaces, no attributes...) where only XML elements are accepted. Spaces and line breaks should be avoided but are accepted.
The request is a demand of the client to the server to execute a simple operation. The return must always be provided by the server (unless the server is stopped, normally or accidentally). The response is either a general result informing the client its request has been properly and successfully handled, either a specific result containing information the client needs to perform further processing, either an error informing the client that the request has not been properly treated and giving the most accurate reason.
Two mechanisms are available to get updated information :
Call events are particular. A call event always provides the information of the primary call (the first existing call) and optionnally the information of the secondary call (the consulted call). A call information contains a state, a call reference and the other party phone number. A call state may be :
The transport protocol is TCP/IP or HTTP (over TCP/IP). Events may be notified using UDP.
The dialog between the TelServices client and TelServer is based on a temporary TCP/IP connection. The TelServices client initiates a request by establishing a TCP connection. As soon as the response is sent by TelServer the TCP connection is closed.
By default, there is no mecanism to delimit the protocol data units (request, response, event). When using the TCP/IP and UDP transport, an optional end of TelServices protocol data unit can be added to the complete encoding (see the telserver.TelServices.endOfPDU.sequence setting in TelServices gateway configuration).
TCP/IP transport protocol is adapted to a native client application. The client may provide an UDP port to be notified of changes that occur on a device (agent/call/features states) or the client may use queries and snapshot requests to get information when needed.
HTTP transport protocol is adapted to a web client application :
See TelServices gateway configuration chapter in TelServer User Guide to configure the TCP port of TelServer for the TelServices gateway.
Some services require the PBX device to be monitored on TelServer. A client interested by such services must open a session. Once a session is open, TelServer monitors the PBX device through the PBX link awaiting for events. The server keeps information allowing simple TelServices requests to provide enhanced services.
For example, a session must be opened when the client is interested in requesting some information when a call arrives on his PBX device or when he wants to drop a call.
Several clients for the same session can receive events and perform requests. Note that closing a session does not automatically closes all clients for that session, however if the client is the only one registered at that time, the session is fully closed.
TelServices Asn1API
The TelServices API is located in the "util/TelServices-Asn1API" directory. It has been built from an ASN.1 schema with uniGone Asn1Compiler for the XER (XML Encoding Rules). It is a high-level API for Java and C# used to handle messages independently of their XML encoding.
Two examples are located in the sub-directory "examples" :
TelServicesCommand tool
The TelServicesCommand tool is located in the "util/TelServicesCommand" directory. It is a graphical tool used to send and receive TelServices messages. The Java source code is provided. TelServices XML messages are handled by hand (the tool does not use the TelServices Asn1API).
| Description |
|
This is TelServer response to a request when no error occurs and when the response does not contain specific information. |
| XML encoding |
<TelServiceReturn>
<result>
<standard/>
</result>
</TelServiceReturn>
|
Please refer to requests to check if a specific result is returned.
| Description |
|
TelServer can not fulfil user request because the PBX link is out of service. |
| XML encoding |
<TelServiceReturn>
<error>
<pbxlinkOutOfService/>
</error>
</TelServiceReturn>
|
| Description |
|
A request is rejected because the PBX does not accept it. |
| XML encoding |
<TelServiceReturn>
<error>
<pbxReject/>
</error>
</TelServiceReturn>
|
| Description |
|
TelServer returns this error when PBX link timeout elapses before TelServer receives a response to a request. |
| XML encoding |
<TelServiceReturn>
<error>
<pbxTimeout/>
</error>
</TelServiceReturn>
|
| Description |
|
A request is rejected because there is no call in the expected state. |
| XML encoding |
<TelServiceReturn>
<error>
<noCall/>
</error>
</TelServiceReturn>
|
| Description |
|
A request is rejected because it requires a session to be open previously. |
| XML encoding |
<TelServiceReturn>
<error>
<noOpenSession/>
</error>
</TelServiceReturn>
|
| Description |
|
An open session request is rejected because the limit of open sessions as defined by the license has been reached. |
| XML encoding |
<TelServiceReturn>
<error>
<sessionLimitExceeded/>
</error>
</TelServiceReturn>
|
| Description |
|
A request is rejected because the TelServer does not accept it. |
| XML encoding |
<TelServiceReturn>
<error>
<reject/>
</error>
</TelServiceReturn>
|
| Description |
|
A request is rejected because the given userID/password cannot be authenticated. |
| XML encoding |
<TelServiceReturn>
<error>
<invalidCredentials/>
</error>
</TelServiceReturn>
|
| Description |
|
A request is rejected because of a resource error such as not enough memory to execute the request. |
| XML encoding |
<TelServiceReturn>
<error>
<resourceError/>
</error>
</TelServiceReturn>
|
| Description | Parameters |
|
This service allows a client to open a session on the server. This means the client is interested by telephony features requiring that the associated PBX device is "monitored" by TelServer. To be able to receive further notifications in the form of TelServiceEvent events, an UDP port must be given. A level of notification may be defined. NOTE regarding the session opening authorization: by default, there is no control and userID/userPassword are not checked by TelServer except in the following situations:
|
|
| Example 1 | |
|
Open session for device number 1101. Event port is 20001. Event notification level is "full". |
|
| XML encoding | |
<TelServiceRequest>
<openSession>
<deviceNumber>1101</deviceNumber>
<eventUDPPort>20001</eventUDPPort>
<eventUpdate>
<full/>
</eventUpdate>
</openSession>
</TelServiceRequest>
|
|
| Example 2 | |
|
Open session for device number 1101. Event port is 20001. Event notification level is "full". User identifier is set to "1101". |
|
| XML encoding | |
<TelServiceRequest>
<openSession>
<deviceNumber>1101</deviceNumber>
<eventUDPPort>20001</eventUDPPort>
<eventUpdate>
<full/>
</eventUpdate>
<userID>1101</userID>
</openSession>
</TelServiceRequest>
|
|
| Description | Parameters |
|
This service closes the session and thus all service requests that require an open session will not work any more. |
|
| Example |
|
Immediate close session for device number 1101. |
| XML encoding |
<TelServiceRequest>
<closeSession>
<deviceNumber>1101</deviceNumber>
</closeSession>
</TelServiceRequest>
|
| Description | Parameters |
|
This service requires an opened session. This will add a party to an existing call. It is equivalent to a "single step conference". Existing call state must be "connected" or "hold". |
|
| Example |
|
Add the party 1103 to an existing call at device number 1102. Optional fields are not set. |
| XML encoding |
<TelServiceRequest>
<addPartyToCall>
<deviceNumber>1102</deviceNumber>
<addedDeviceNumber>1103</addedDeviceNumber>
</addPartyToCall>
</TelServiceRequest>
|
| Description | Parameters |
|
This service requires an opened session. This will change the state of the agent. |
|
| Example |
|
Set agent state to "not ready" for device number 1101. |
| XML encoding |
<TelServiceRequest>
<agentState>
<deviceNumber>1101</deviceNumber>
<state>
<notReady/>
</state>
</agentState>
</TelServiceRequest>
|
| Description | Parameters |
|
This service requires an opened session. This will pass the the call currently connected on hold and the call currently on hold connected. This requires that an active and an hold calls exist. |
|
| Example |
|
Place an existing active call on hold and then retrieve a previously held call at device number 1102. Optional field is not set. |
| XML encoding |
<TelServiceRequest>
<alternateCall>
<deviceNumber>1102</deviceNumber>
</alternateCall>
</TelServiceRequest>
|
| Description | Parameters |
|
This service requires an opened session. This will answer the call for the given calling number if any. If no calling number is given, the first alerting call is answered automatically. |
|
| Example |
|
Device number 1102 answers call received from device number 1101. |
| XML encoding |
<TelServiceRequest>
<answerCall>
<deviceNumber>1102</deviceNumber>
<callingNumber>1101</callingNumber>
</answerCall>
</TelServiceRequest>
|
| Description | Parameters |
|
This service requires an opened session. This will create a conference between an existing hold call and an existing active call. The result is that the 3 parties involved are now in direct relation all together. |
|
| Example |
|
Create a conference between an existing held call and another active call at device number 1102. Optional fields are not set. |
| XML encoding |
<TelServiceRequest>
<conferenceCall>
<deviceNumber>1102</deviceNumber>
</conferenceCall>
</TelServiceRequest>
|
| Description | Parameters |
|
This service requires an opened session. This will dial a consultation call upon an existing call. |
|
| Example |
|
Place an existing active call at device number 1102 on hold and initiate a new call from device number 1102 to device number 1103. Optional fields are not set. |
| XML encoding |
<TelServiceRequest>
<consultationCall>
<deviceNumber>1102</deviceNumber>
<consultedDeviceNumber>1103</consultedDeviceNumber>
</consultationCall>
</TelServiceRequest>
|
| Description | Parameters |
|
This service requires an opened session. This will divert an existing call to a new destination. Existing call state can be "alerting" or "connected". In the call state is "connected", the feature is then equivalent to a 'single step' or 'blind' transfer. |
|
| Example |
|
Move an alerting or connected call from device number 1102 to device number 1103. Optional fields are not set. |
| XML encoding |
<TelServiceRequest>
<divertCall>
<deviceNumber>1102</deviceNumber>
<divertedDeviceNumber>1103</divertedDeviceNumber>
</divertCall>
</TelServiceRequest>
|
| Description | Parameters |
|
This service doesn't require the session is open. This changes the "do not disturb" state of the device. |
|
| Example |
|
Invoke "do not disturb" feature at device number 1101. State is turned on. |
| XML encoding |
TelServiceRequest>
<doNotDisturb>
<deviceNumber>1101</deviceNumber>
<state>
<on/>
</state>
</doNotDisturb>
</TelServiceRequest>
|
| Description | Parameters |
|
This service requires an opened session. This will drop the call currently connected. |
|
| Example |
|
Release an active call at device number 1101. Optional field is not set. |
| XML encoding |
<TelServiceRequest>
<dropCall>
<deviceNumber>1101</deviceNumber>
</dropCall>
</TelServiceRequest>
|
| Description | Parameters |
|
This service doesn't require the session is open. This will activate or deactivate a forward on the device. |
|
| Example |
|
Invoke forward feature at device number 1101. "immediate" forwarding type is turned on. Calls are forwarded to the device number 1102. |
| XML encoding |
<TelServiceRequest>
<forward>
<deviceNumber>1101</deviceNumber>
<info>
<number>1102</number>
<type>
<immediate/>
</type>
<state>
<on/>
</state>
</info>
</forward>
</TelServiceRequest>
|
| Description | Parameters |
|
This service requires an opened session. This will pass the the call currently connected on hold. |
|
| Example |
|
Place an existing call into the hold state at device number 1101. Optional field is not set. |
| XML encoding |
<TelServiceRequest>
<holdCall>
<deviceNumber>1101</deviceNumber>
</holdCall>
</TelServiceRequest>
|
| Description | Parameters |
|
This service doesn't require the session is open. It requests TelServer to launch a call from device A to device B. B must be a diallable phone numbers (as if dialled on the phone). A shortcut URL may be used to easily launch a call: http://telServerIP:telServiceGatewayPort/makeCall?deviceNumber=%dn%&calledDeviceNumber=%cdn% where telServerIP is the hostname of TelServer or its IP, telServicesGatewayPort is the port of the TelServicesGateway, %dn% is the device number of the phone from which the call is to be launched and %cdn% is the called number. |
|
| Example |
|
Make call from device 1101 to device 1102. |
| XML encoding |
<TelServiceRequest>
<makeCall>
<deviceNumber>1101</deviceNumber>
<calledDeviceNumber>1102</calledDeviceNumber>
</makeCall>
</TelServiceRequest>
|
| Request description | Parameters |
|
This service requires an opened session. It helps the client from being listening to asynchronous notifications allowing the client to request the notification himself. When a call arrives on the PBX device associated to the client, the client may invoke this service to get the calling number and name. Additionally, the request may want TelServer to automatically answer the call. This feature depends on TelServer configuration; see Sessions configuration chapter in TelServer User Guide to configure the related parameter. |
|
| Response description | Parameters |
|
The response provides the calling phone number and name. |
|
| Example |
|
Qualify an alerting call at device number 1102. Optional field "answerCall" is not set. As its default value is true the call will be automatically answered. Calling number is 1101. Calling name was requested but is unavailable (XML element "name" is missing). |
| XML encoding |
<TelServiceRequest>
<qualifyCall>
<deviceNumber>1102</deviceNumber>
</qualifyCall>
</TelServiceRequest>
<TelServiceReturn>
<result>
<qualifyCall>
<number>1101</number>
</qualifyCall>
</result>
</TelServiceReturn>
|
| Request description | Parameters |
|
This service requires an opened session. This queries the state of the agent. |
|
| Response description | Parameters |
|
The response provides the information about the agent. |
The agent information is the same as reported by an agent event. |
| Example |
|
Query agent state at device number 1101. Agent state is "working after call". |
| XML encoding |
<TelServiceRequest>
<queryAgentState>
<deviceNumber>1101</deviceNumber>
</queryAgentState>
</TelServiceRequest>
<TelServiceReturn>
<result>
<agent>
<state><workingAfterCall/></state>
<timeout>30</timeout>
<inboundServices><service>service1</service></inboundServices>
<permittedStates><ready/><notReady/><workingAfterCall/></permittedStates>
</agent>
</result>
</TelServiceReturn>
|
| Request description | Parameters |
|
This service doesn't require the session is open. This requests the "do not disturb" state of the device. |
|
| Response description | Parameters |
|
The response provides the "do not disturb" state of the device. |
|
| Example |
|
Query "do not disturb" feature state at device number 1101. State is off. |
| XML encoding |
<TelServiceRequest>
<queryDoNotDisturb>
<deviceNumber>1101</deviceNumber>
</queryDoNotDisturb>
</TelServiceRequest>
<TelServiceReturn>
<result>
<doNotDisturb>
<off/>
</doNotDisturb>
</result>
</TelServiceReturn>
|
| Request description | Parameters |
|
This service doesn't require the session is open. This requests the state of the forwards potentially activated on the device. |
|
| Response description | Parameters |
|
The response provides the state of the forwards potentially activated on the device. |
|
| Example 1 |
|
Query forward feature state at device number 1101. "immediate" forwarding is on and calls are forwarded to device number 1102. |
| XML encoding |
<TelServiceRequest>
<queryForward>
<deviceNumber>1101</deviceNumber>
</queryForward>
</TelServiceRequest>
<TelServiceReturn>
<result>
<forwards>
<forward>
<number>1102</number>
<type>
<immediate/>
</type>
<state>
<on/>
</state>
</forward>
</forwards>
</result>
</TelServiceReturn>
|
| Example 2 |
|
Query forward feature state at device number 1101. There is no activated forward.. |
| XML encoding |
<TelServiceRequest>
<queryForward>
<deviceNumber>1101</deviceNumber>
</queryForward>
</TelServiceRequest>
<TelServiceReturn>
<result>
<forwards/>
</result>
</TelServiceReturn>
|
| Request description | Parameters |
|
This service doesn't require the session is open. This requests the "history" of calls for a user. |
|
| Response description | Parameters |
|
The response provides the call records of the user. |
A call record contains:
|
| Example |
|
Query history at device number 1101. |
| XML encoding |
<TelServiceRequest>
<queryHistory>
<deviceNumber>8001</deviceNumber>
<startDate>2009-12-02</startDate>
</queryHistory>
</TelServiceRequest>
<TelServiceReturn>
<result>
<history>
<record>
<creationDate>2009-12-02</creationDate>
<creationTime>15:32:43</creationTime>
<otherParty>
<number>8005</number>
</otherParty>
<alertingDuration>0</alertingDuration>
<duration>0</duration>
<isOutgoing>
<true/>
</isOutgoing>
<isConnected>
<false/>
</isConnected>
<cause>
<normal/>
</cause>
</record>
<record>
<creationDate>2009-12-02</creationDate>
<creationTime>14:53:27</creationTime>
<otherParty>
<number>8002</number>
</otherParty>
<alertingDuration>0</alertingDuration>
<duration>0</duration>
<isOutgoing>
<true/>
</isOutgoing>
<isConnected>
<false/>
</isConnected>
<cause>
<normal/>
</cause>
</record>
</history>
</result>
</TelServiceReturn>
|
| Request description | Parameters |
|
This service doesn't require the session is open. This requests the "message waiting" state of the device. |
|
| Response description | Parameters |
|
The response provides the "message waiting" state of the device. |
|
| Example |
|
Query "message waiting" feature state at device number 1101. There is no message. |
| XML encoding |
<TelServiceRequest>
<queryMsgWaiting>
<deviceNumber>1101</deviceNumber>
</queryMsgWaiting>
</TelServiceRequest>
<TelServiceReturn>
<result>
<msgWaiting>
<off/>
</msgWaiting>
</result>
</TelServiceReturn>
|
| Request description | Parameters |
|
This service doesn't require the session is open. This requests the user statistics. |
|
| Response description | Parameters |
|
The response provides the 'snapshot' or 'total' statistics. |
| Example 1 |
|
Query snapshot user statistics feature at device number 1101 which is used by an agent. |
| XML encoding |
<TelServiceRequest>
<queryUserStatistics>
<deviceNumber>1101</deviceNumber>
<type>
<snapshot/>
</type>
</queryUserStatistics>
</TelServiceRequest>
<TelServiceReturn>
<result>
<userStatistics>
<snapshot>
<agentState>
<ready/>
</agentState>
<inboundServices>
<service>service1</service>
</inboundServices>
</snapshot>
</userStatistics>
</result>
</TelServiceReturn>
|
| Example 2 |
|
Query total user statistics feature at device number 1101 which is used by an agent. |
| XML encoding |
<TelServiceRequest>
<queryUserStatistics>
<deviceNumber>1101</deviceNumber>
<type>
<total/>
</type>
</queryUserStatistics>
</TelServiceRequest>
<TelServiceReturn>
<result>
<userStatistics>
<total>
<start>2009-11-09T11:13:23</start>
<inboundServices>
<service>service1</service>
</inboundServices>
<incomingCallsFailedCount>0</incomingCallsFailedCount>
<incomingCallsAlertingCount>0</incomingCallsAlertingCount>
<agentIncomingCallsAlertingCount>0</agentIncomingCallsAlertingCount>
<incomingCallsConnectedCount>0</incomingCallsConnectedCount>
<agentIncomingCallsConnectedCount>0</agentIncomingCallsConnectedCount>
<incomingCallsAbandonedCount>0</incomingCallsAbandonedCount>
<agentIncomingCallsAbandonedCount>0</agentIncomingCallsAbandonedCount>
<incomingCallsAlertingDuration>00:00:00</incomingCallsAlertingDuration>
<incomingCallsAlertingAvgDuration>00:00:00</incomingCallsAlertingAvgDuration>
<incomingCallsAlertingMaxDuration>00:00:00</incomingCallsAlertingMaxDuration>
<agentIncomingCallsAlertingDuration>00:00:00</agentIncomingCallsAlertingDuration>
<agentIncomingCallsAlertingAvgDuration>00:00:00</agentIncomingCallsAlertingAvgDuration>
<incomingCallsConnectedDuration>00:00:00</incomingCallsConnectedDuration>
<incomingCallsConnectedAvgDuration>00:00:00</incomingCallsConnectedAvgDuration>
<incomingCallsConnectedMaxDuration>00:00:00</incomingCallsConnectedMaxDuration>
<agentIncomingCallsConnectedDuration>00:00:00</agentIncomingCallsConnectedDuration>
<agentIncomingCallsConnectedAvgDuration>00:00:00</agentIncomingCallsConnectedAvgDuration>
<outgoingCallsOriginatedCount>0</outgoingCallsOriginatedCount>
<agentOutgoingCallsOriginatedCount>0</agentOutgoingCallsOriginatedCount>
<outgoingCallsConnectedCount>0</outgoingCallsConnectedCount>
<agentOutgoingCallsConnectedCount>0</agentOutgoingCallsConnectedCount>
<outgoingCallsConnectedDuration>00:00:00</outgoingCallsConnectedDuration>
<outgoingCallsConnectedAvgDuration>00:00:00</outgoingCallsConnectedAvgDuration>
<outgoingCallsConnectedMaxDuration>00:00:00</outgoingCallsConnectedMaxDuration>
<agentOutgoingCallsConnectedDuration>00:00:00</agentOutgoingCallsConnectedDuration>
<agentOutgoingCallsConnectedAvgDuration>00:00:00</agentOutgoingCallsConnectedAvgDuration>
<agentLoggedOffDuration>00:00:00</agentLoggedOffDuration>
<agentLoggedOffPercentage>0</agentLoggedOffPercentage>
<agentLoggedOnDuration>00:07:01</agentLoggedOnDuration>
<agentLoggedOnPercentage>1.0E2</agentLoggedOnPercentage>
<agentNotReadyDuration>00:00:00</agentNotReadyDuration>
<agentNotReadyPercentage>0</agentNotReadyPercentage>
<agentReadyDuration>00:07:01</agentReadyDuration>
<agentReadyPercentage>0</agentReadyPercentage>
<agentDirectCallDuration>00:00:00</agentDirectCallDuration>
<agentDirectCallPercentage>0</agentDirectCallPercentage>
<agentWorkingAfterCallDuration>00:00:00</agentWorkingAfterCallDuration>
<agentWorkingAfterCallPercentage>0</agentWorkingAfterCallPercentage>
<agentBusyDuration>00:00:00</agentBusyDuration>
<agentBusyPercentage>0</agentBusyPercentage>
</total>
</userStatistics>
</result>
|
| Description | Parameters |
|
This service requires an opened session. This will reconnect the call on hold while the active call is released. This requires that an active and an hold call exist. |
|
| Example |
|
Clear an existing call and then retrieve a previously held call at device number 1102. Optional field is not set. |
| XML encoding |
<TelServiceRequest>
<reconnectCall>
<deviceNumber>1102</deviceNumber>
</reconnectCall>
</TelServiceRequest>
|
| Description | Parameters |
|
This service requires an opened session. This will retrieve from hold the call previously set on hold. |
|
| Example |
|
Connect an existing held call at device number 1101. Optional field is not set. |
| XML encoding |
<TelServiceRequest>
<retrieveCall>
<deviceNumber>1101</deviceNumber>
</retrieveCall>
</TelServiceRequest>
|
| Description | Parameters |
|
This service does not require an opened session. This will retrieve information about a name from the local directory cache. |
The server ignores the case and is performing a smart research. Assuming %name% is the name given in the request, it first begins to search all the names starting by %name%, if no names is found then it searches the names containing ' %name%' ( a space followed by the provided name). If still no names is found, the server searches the %name% as a company name. The server always returns all the matching names ordered lexicographically. The returned information may contain the number, the name, type of number (work, home, mobile or ip) and the company. |
| Example |
|
The client may like to know all the names beginning with 'Mar'. |
| XML encoding |
<TelServiceRequest>
<searchName>
<name>Mar</name>
</searchName>
</TelServiceRequest>
If no name is found :
<TelServiceReturn>
<result>
<searchDirectory/>
</result>
</TelServiceReturn>
If names are found :
<TelServiceReturn>
<result>
<searchDirectory>
<party>
<number>+801</number>
<name>Marcel Jagger</name>
<numberType>
<work/>
</numberType>
<company>uniGone</company>
</party>
<party>
<number>+33160127764</number>
<name>Martin Jagger</name>
<numberType>
<home/>
</numberType>
<company>uniGone</company>
</party>
</searchDirectory>
</result>
</TelServiceReturn>
|
| Description | Parameters |
|
This service does not require an opened session. This will retrieve information about a phone number from the local directory cache. |
The server expects the phone number to be provided as it would have been recorded in its local directory cache. A normal behavior is to make the number normalized. |
| Example |
|
The client may like to know to whom belongs the number '+33160127764'. |
| XML encoding |
<TelServiceRequest>
<searchNumber>
<number>+33130127764</number>
</searchNumber>
</TelServiceRequest>
If the number does not exist :
<TelServiceReturn>
<result>
<searchDirectory/>
</result>
</TelServiceReturn>
If the number is found:
<TelServiceReturn>
<result>
<searchDirectory>
<party>
<number>+33160127764</number>
<name>Martin Jagger</name>
<numberType>
<home/>
</numberType>
<company>uniGone</company>
</party>
</searchDirectory>
</result>
</TelServiceReturn>
|
| Request description | Parameters |
|
This service requires an opened session. It requests information about existing calls if any, activated forwards, state of device features ("message waiting", "do not disturb"), agent information. |
|
| Response description | Parameters |
|
The response provides information about calls, forwards and features. |
|
| Example 1 |
|
Request information on device 1102 while device 1101 is calling device 1102. Call is ringing. There is no activated forward. |
| XML encoding |
<TelServiceRequest>
<snapshot>
<deviceNumber>1102</deviceNumber>
</snapshot>
</TelServiceRequest>
<TelServiceReturn>
<result>
<snapshot>
<calls>
<call>
<id>1</id>
<primCall>
<state>
<alerting/>
</state>
<otherParty>
<number>1101</number>
</otherParty>
<duration>0</duration>
<isOutgoing>
<false/>
</isOutgoing>
<isConference>
<false/>
</isConference>
</primCall>
<permittedServices>
<answerCall/>
<divertCall/>
</permittedServices>
</call>
</calls>
<forwards/>
<msgWaiting>
<off/>
</msgWaiting>
<doNotDisturb>
<off/>
</doNotDisturb>
</snapshot>
</result>
</TelServiceReturn>
|
| Example 2 |
|
Request information on device 1101 while there is no call. "immediate" forwarding is on and calls are forwarded to device number 1102. Agent state is not managed. |
| XML encoding |
<TelServiceRequest>
<snapshot>
<deviceNumber>1101</deviceNumber>
</snapshot>
</TelServiceRequest>
<TelServiceReturn>
<result>
<snapshot>
<calls/>
<forwards>
<forward>
<number>1102</number>
<type>
<immediate/>
</type>
<state>
<on/>
</state>
</forward>
</forwards>
<msgWaiting>
<off/>
</msgWaiting>
<doNotDisturb>
<off/>
</doNotDisturb>
</snapshot>
</result>
</TelServiceReturn>
|
| Description | Parameters |
|
This service requires an opened session. This will transfer an existing call. This requires that an active and an hold call exist. The result is that the call on hold and the active call are now in direct relation. |
|
| Example |
|
Transfer a held call to an active call at device number 1102. Optional fields are not set. |
| XML encoding |
<TelServiceRequest>
<transferCall>
<deviceNumber>1102</deviceNumber>
</transferCall>
</TelServiceRequest>
|
| Description | Parameters |
|
This service does not require the session to be opened. This will update a user directory. The existing directory entries are deleted and the new entries are added. An update must then contain the whole directory. This request can be used to synchronize user application phone books and make them visible within TelServer for the user. For example, synchronizing Outlook contacts enables the user to see a contact calling by its name or to call him by its name. |
|
| Example |
|
Updates the user directory of user 'user'. |
| XML encoding |
<TelServiceRequest>
<updateUserDirectory>
<userID>user</userID>
<directoryName>outlook</directoryName>
<parties>
<party>
<number>0160121314</number>
<name>Bob Blake</name>
<numberType>
<work/>
</numberType>
<company>TheCompany</company>
</party>
<party>
<number>0160121315</number>
<name>Bob Blake</name>
<numberType>
<ip/>
</numberType>
<company>TheCompany</company>
</party>
</parties>
</updateUserDirectory>
</TelServiceRequest>
|
The supervisor is an application that invokes specific TelServices services. It is generally for managing routing points such as those used by outbound campaigns.
| Request description | Parameters |
|
This service doesn't require the session is open. This requests state of a routing point. |
|
| Response description | Parameters |
|
The response indicates the state of the routing point. |
The state can be:
|
| Example |
|
Query routing point state feature for service 'service1'. |
| XML encoding |
<TelServiceRequest>
<queryRoutingPointState>
<service>service1</service>
</queryRoutingPointState>
</TelServiceRequest>
<TelServiceReturn>
<result>
<routingPointState>
<started-running/>
</routingPointState>
</result>
</TelServiceReturn>
|
| Request description | Parameters |
|
This service doesn't require the session is open. This requests the routing point statistics. |
|
| Response description | Parameters |
|
The response provides the 'snapshot' or 'total' statistics. |
| Example 1 |
|
Query snapshot routing point statistics feature at service 'service1'. |
| XML encoding |
<TelServiceRequest>
<queryRoutingPointStatistics>
<service>service1</service>
<type>
<snapshot/>
</type>
</queryRoutingPointStatistics>
</TelServiceRequest>
<TelServiceReturn>
<result>
<routingPointStatistics>
<snapshot>
<queuedCallsCount>0</queuedCallsCount>
<queuedCallsDuration>00:00:00</queuedCallsDuration>
<readyAvailableAgentsCount>2</readyAvailableAgentsCount>
<busyOrWorkingAfterCallAgentsCount>0</busyOrWorkingAfterCallAgentsCount>
<notReadyOrDirectCallAgentsCount>0</notReadyOrDirectCallAgentsCount>
<agentsInCallCount>0</agentsInCallCount>
<loggedOffOrClosedAgentsCount>3</loggedOffOrClosedAgentsCount>
<agents>
<agent>
<deviceNumber>8001</deviceNumber>
<userID>agent8001</userID>
<agentState>
<ready/>
</agentState>
<inboundServices>
<service>service1</service>
</inboundServices>
</agent>
<agent>
<deviceNumber>8002</deviceNumber>
<agentState>
<loggedOff/>
</agentState>
</agent>
<agent>
<deviceNumber>8003</deviceNumber>
<userID>agent8003</userID>
<agentState>
<ready/>
</agentState>
<inboundServices>
<service>service1</service>
</inboundServices>
</agent>
<agent>
<deviceNumber>8004</deviceNumber>
<agentState>
<loggedOff/>
</agentState>
</agent>
<agent>
<deviceNumber>8005</deviceNumber>
<agentState>
<loggedOff/>
</agentState>
</agent>
</agents>
</snapshot>
</routingPointStatistics>
</result>
</TelServiceReturn>
|
| Example 2 |
|
Query total routing point statistics feature at service 'service1'. |
| XML encoding |
<TelServiceRequest>
<queryRoutingPointStatistics>
<service>service1</service>
<type>
<total/>
</type>
</queryRoutingPointStatistics>
</TelServiceRequest>
<TelServiceReturn>
<result>
<routingPointStatistics>
<total>
<start>2009-11-09T11:12:23</start>
<workDuration>04:10:23</workDuration>
<routedToAssignedAgentCallsCount>0</routedToAssignedAgentCallsCount>
<routedToDistributionCallsCount>0</routedToDistributionCallsCount>
<routedToFailureRouteCallsCount>0</routedToFailureRouteCallsCount>
<queuedCallsCount>0</queuedCallsCount>
<queuedCallsDuration>00:00:00</queuedCallsDuration>
<queuedCallsAvgDuration>00:00:00</queuedCallsAvgDuration>
<queuedCallsMaxDuration>00:00:00</queuedCallsMaxDuration>
<incomingCallsCount>0</incomingCallsCount>
<incomingCallsAbandoneddImmediatelCount>0</incomingCallsAbandoneddImmediatelCount>
<incomingCallsAbandonedOnAgentCount>0</incomingCallsAbandonedOnAgentCount>
<incomingCallsAbandonedOnQueueCount>0</incomingCallsAbandonedOnQueueCount>
<incomingCallsConnectedCount>0</incomingCallsConnectedCount>
<incomingCallsAlertingDuration>00:00:00</incomingCallsAlertingDuration>
<incomingCallsAlertingAvgDuration>00:00:00</incomingCallsAlertingAvgDuration>
<incomingCallsConnectedDuration>00:00:00</incomingCallsConnectedDuration>
<incomingCallsConnectedAvgDuration>00:00:00</incomingCallsConnectedAvgDuration>
<outgoingCallsOriginatedCount>0</outgoingCallsOriginatedCount>
<outgoingCallsConnectedCount>0</outgoingCallsConnectedCount>
<outgoingCallsIntendedCount>0</outgoingCallsIntendedCount>
<outgoingCallsPerformedCount>0</outgoingCallsPerformedCount>
<outgoingCallsRetriedCount>0</outgoingCallsRetriedCount>
<outgoingCallsFailedCount>0</outgoingCallsFailedCount>
<outgoingCallsConnectedDuration>00:00:00</outgoingCallsConnectedDuration>
<outgoingCallsConnectedAvgDuration>00:00:00</outgoingCallsConnectedAvgDuration>
<agents>
<agent>
<deviceNumber>8001</deviceNumber>
<start>2009-11-09T11:13:23</start>
<userID>agent8001</userID>
<inboundServices>
<service>service1</service>
</inboundServices>
<incomingCallsFailedCount>0</incomingCallsFailedCount>
<incomingCallsAlertingCount>0</incomingCallsAlertingCount>
<agentIncomingCallsAlertingCount>0</agentIncomingCallsAlertingCount>
<incomingCallsConnectedCount>0</incomingCallsConnectedCount>
<agentIncomingCallsConnectedCount>0</agentIncomingCallsConnectedCount>
<incomingCallsAbandonedCount>0</incomingCallsAbandonedCount>
<agentIncomingCallsAbandonedCount>0</agentIncomingCallsAbandonedCount>
<incomingCallsAlertingDuration>00:00:00</incomingCallsAlertingDuration>
<incomingCallsAlertingAvgDuration>00:00:00</incomingCallsAlertingAvgDuration>
<incomingCallsAlertingMaxDuration>00:00:00</incomingCallsAlertingMaxDuration>
<agentIncomingCallsAlertingDuration>00:00:00</agentIncomingCallsAlertingDuration>
<agentIncomingCallsAlertingAvgDuration>00:00:00</agentIncomingCallsAlertingAvgDuration>
<incomingCallsConnectedDuration>00:00:00</incomingCallsConnectedDuration>
<incomingCallsConnectedAvgDuration>00:00:00</incomingCallsConnectedAvgDuration>
<incomingCallsConnectedMaxDuration>00:00:00</incomingCallsConnectedMaxDuration>
<agentIncomingCallsConnectedDuration>00:00:00</agentIncomingCallsConnectedDuration>
<agentIncomingCallsConnectedAvgDuration>00:00:00</agentIncomingCallsConnectedAvgDuration>
<outgoingCallsOriginatedCount>0</outgoingCallsOriginatedCount>
<agentOutgoingCallsOriginatedCount>0</agentOutgoingCallsOriginatedCount>
<outgoingCallsConnectedCount>0</outgoingCallsConnectedCount>
<agentOutgoingCallsConnectedCount>0</agentOutgoingCallsConnectedCount>
<outgoingCallsConnectedDuration>00:00:00</outgoingCallsConnectedDuration>
<outgoingCallsConnectedAvgDuration>00:00:00</outgoingCallsConnectedAvgDuration>
<outgoingCallsConnectedMaxDuration>00:00:00</outgoingCallsConnectedMaxDuration>
<agentOutgoingCallsConnectedDuration>00:00:00</agentOutgoingCallsConnectedDuration>
<agentOutgoingCallsConnectedAvgDuration>00:00:00</agentOutgoingCallsConnectedAvgDuration>
<agentLoggedOffDuration>00:00:00</agentLoggedOffDuration>
<agentLoggedOffPercentage>0</agentLoggedOffPercentage>
<agentLoggedOnDuration>00:17:35</agentLoggedOnDuration>
<agentLoggedOnPercentage>1.0E2</agentLoggedOnPercentage>
<agentNotReadyDuration>00:00:00</agentNotReadyDuration>
<agentNotReadyPercentage>0</agentNotReadyPercentage>
<agentReadyDuration>00:17:35</agentReadyDuration>
<agentReadyPercentage>0</agentReadyPercentage>
<agentDirectCallDuration>00:00:00</agentDirectCallDuration>
<agentDirectCallPercentage>0</agentDirectCallPercentage>
<agentWorkingAfterCallDuration>00:00:00</agentWorkingAfterCallDuration>
<agentWorkingAfterCallPercentage>0</agentWorkingAfterCallPercentage>
<agentBusyDuration>00:00:00</agentBusyDuration>
<agentBusyPercentage>0</agentBusyPercentage>
</agent>
<agent>
<deviceNumber>8002</deviceNumber>
<userID>agent8002</userID>
</agent>
<agent>
<deviceNumber>8003</deviceNumber>
<start>2009-11-09T11:12:25</start>
<userID>agent8003</userID>
<inboundServices>
<service>service1</service>
</inboundServices>
<incomingCallsFailedCount>0</incomingCallsFailedCount>
<incomingCallsAlertingCount>0</incomingCallsAlertingCount>
<agentIncomingCallsAlertingCount>0</agentIncomingCallsAlertingCount>
<incomingCallsConnectedCount>0</incomingCallsConnectedCount>
<agentIncomingCallsConnectedCount>0</agentIncomingCallsConnectedCount>
<incomingCallsAbandonedCount>0</incomingCallsAbandonedCount>
<agentIncomingCallsAbandonedCount>0</agentIncomingCallsAbandonedCount>
<incomingCallsAlertingDuration>00:00:00</incomingCallsAlertingDuration>
<incomingCallsAlertingAvgDuration>00:00:00</incomingCallsAlertingAvgDuration>
<incomingCallsAlertingMaxDuration>00:00:00</incomingCallsAlertingMaxDuration>
<agentIncomingCallsAlertingDuration>00:00:00</agentIncomingCallsAlertingDuration>
<agentIncomingCallsAlertingAvgDuration>00:00:00</agentIncomingCallsAlertingAvgDuration>
<incomingCallsConnectedDuration>00:00:00</incomingCallsConnectedDuration>
<incomingCallsConnectedAvgDuration>00:00:00</incomingCallsConnectedAvgDuration>
<incomingCallsConnectedMaxDuration>00:00:00</incomingCallsConnectedMaxDuration>
<agentIncomingCallsConnectedDuration>00:00:00</agentIncomingCallsConnectedDuration>
<agentIncomingCallsConnectedAvgDuration>00:00:00</agentIncomingCallsConnectedAvgDuration>
<outgoingCallsOriginatedCount>0</outgoingCallsOriginatedCount>
<agentOutgoingCallsOriginatedCount>0</agentOutgoingCallsOriginatedCount>
<outgoingCallsConnectedCount>0</outgoingCallsConnectedCount>
<agentOutgoingCallsConnectedCount>0</agentOutgoingCallsConnectedCount>
<outgoingCallsConnectedDuration>00:00:00</outgoingCallsConnectedDuration>
<outgoingCallsConnectedAvgDuration>00:00:00</outgoingCallsConnectedAvgDuration>
<outgoingCallsConnectedMaxDuration>00:00:00</outgoingCallsConnectedMaxDuration>
<agentOutgoingCallsConnectedDuration>00:00:00</agentOutgoingCallsConnectedDuration>
<agentOutgoingCallsConnectedAvgDuration>00:00:00</agentOutgoingCallsConnectedAvgDuration>
<agentLoggedOffDuration>00:00:00</agentLoggedOffDuration>
<agentLoggedOffPercentage>0</agentLoggedOffPercentage>
<agentLoggedOnDuration>00:18:33</agentLoggedOnDuration>
<agentLoggedOnPercentage>1.0E2</agentLoggedOnPercentage>
<agentNotReadyDuration>00:00:00</agentNotReadyDuration>
<agentNotReadyPercentage>0</agentNotReadyPercentage>
<agentReadyDuration>00:18:33</agentReadyDuration>
<agentReadyPercentage>0</agentReadyPercentage>
<agentDirectCallDuration>00:00:00</agentDirectCallDuration>
<agentDirectCallPercentage>0</agentDirectCallPercentage>
<agentWorkingAfterCallDuration>00:00:00</agentWorkingAfterCallDuration>
<agentWorkingAfterCallPercentage>0</agentWorkingAfterCallPercentage>
<agentBusyDuration>00:00:00</agentBusyDuration>
<agentBusyPercentage>0</agentBusyPercentage>
</agent>
<agent>
<deviceNumber>8004</deviceNumber>
<userID>agent8004</userID>
</agent>
<agent>
<deviceNumber>8005</deviceNumber>
<userID>agent8005</userID>
</agent>
</agents>
</total>
</routingPointStatistics>
</result>
</TelServiceReturn>
|
| Request description | Parameters |
|
This service doesn't require the session is open. This requests the resume of a routing point that has been suspended.
|
|
| Response description | Parameters |
|
The response indicates if the routing point can be resume as a standard result or an error. |
| Example |
|
Resume routing point feature for campaign 'camp1'. |
| XML encoding |
<TelServiceRequest>
<resumeRoutingPoint>
<service>camp1</service>
</resumeRoutingPoint>
</TelServiceRequest>
|
| Example |
|
Start routing point feature for campaign 'camp1'. |
| XML encoding |
<TelServiceRequest>
<startRoutingPoint>
<service>camp1</service>
</startRoutingPoint>
</TelServiceRequest>
|
| Request description | Parameters |
|
This service doesn't require the session is open. This requests the stop of a routing point.
|
|
| Response description | Parameters |
|
The response indicates if the routing point can be stopped as a standard result or an error. |
| Example |
|
Stop routing point feature for campaign 'camp1'. |
| XML encoding |
<TelServiceRequest>
<stopRoutingPoint>
<service>camp1</service>
</stopRoutingPoint>
</TelServiceRequest>
|
| Request description | Parameters |
|
This service doesn't require the session is open. This requests a routing point suspends its work. The routing point will be moved in the 'started-suspended' state.
|
|
| Response description | Parameters |
|
The response indicates if the routing point can be suspended as a standard result or an error. |
| Example |
|
Suspend routing point feature for campaign 'camp1'. |
| XML encoding |
<TelServiceRequest>
<suspendRoutingPoint>
<service>camp1</service>
</suspendRoutingPoint>
</TelServiceRequest>
|
| Request description | Parameters |
|
This service doesn't require the session is open. This requests a routing point is updated.
|
|
| Response description | Parameters |
|
The response indicates if the routing point can be updated as a standard result or an error. |
| Example |
|
Update routing point feature for campaign 'camp1'. |
| XML encoding |
<TelServiceRequest>
<updateRoutingPoint>
<service>camp1</service>
</updateRoutingPoint>
</TelServiceRequest>
|
| Description | Parameters |
|
This service does not require a session to be opened. This will invoke a synchronization on an existing directory defined within the configuration. |
|
| Example |
|
Updates the directory 'ldap'. |
| XML encoding |
<TelServiceRequest>
<updateDirectory>
<directoryName>ldap</directoryName>
</updateDirectory>
</TelServiceRequest>
|
| Example |
|
The agent is no longer connected to a call but is still occupied with work related to that call. Its state is "working after call". |
| XML encoding |
<TelServiceEvent>
<event>
<agent>
<state><workingAfterCall/></state>
<timeout>30</timeout>
<inboundServices><service>service1</service></inboundServices>
<permittedStates><ready/><notReady/><workingAfterCall/></permittedStates>
</agent>
</event>
</TelServiceEvent>
|
| Description | Parameters |
|
A call event is sent when the state of a call changes. It provides information about the primary call (the first existing call) and optionnally the information about the secondary call. Permitted services are listed according to device state. Note that the "makeCall" service for a new call is considered as a de facto permitted service. Assume device A transfers a call from device B to device C. Devices B and C receive a call event with the field cause set to "transfer". The duration provided in this event is the duration of the call with device A. Then the duration is restarted for device B (its call state is already "connected"). The duration is also restarted for device C if its call state is "connected" (it could be "alerting"). |
|
| Example 1 |
|
Device 1101 calls device 1102. Call is successfully delivered to device 1102 which answers the call. A client monitoring device 1101 receives the following events. |
| XML encoding |
<TelServiceEvent>
<deviceNumber>1101</deviceNumber>
<event>
<call>
<id>1</id>
<primCall>
<state>
<initiated/>
</state>
<otherParty>
<number/>
</otherParty>
<duration>0</duration>
<isOutgoing>
<true/>
</isOutgoing>
<isConference>
<false/>
</isConference>
</primCall>
<permittedServices>
<dropCall/>
</permittedServices>
</call>
</event>
</TelServiceEvent>
<TelServiceEvent>
<deviceNumber>1101</deviceNumber>
<event>
<call>
<id>1</id>
<primCall>
<state>
<originated/>
</state>
<otherParty>
<number>1102</number>
</otherParty>
<duration>0</duration>
<isOutgoing>
<true/>
</isOutgoing>
<isConference>
<false/>
</isConference>
</primCall>
<permittedServices>
<dropCall/>
</permittedServices>
</call>
</event>
</TelServiceEvent>
<TelServiceEvent>
<deviceNumber>1101</deviceNumber>
<event>
<call>
<id>1</id>
<primCall>
<state>
<delivered/>
</state>
<otherParty>
<number>1102</number>
</otherParty>
<duration>0</duration>
<isOutgoing>
<true/>
</isOutgoing>
<isConference>
<false/>
</isConference>
</primCall>
<permittedServices>
<dropCall/>
</permittedServices>
</call>
</event>
</TelServiceEvent>
<TelServiceEvent>
<deviceNumber>1101</deviceNumber>
<event>
<call>
<id>1</id>
<primCall>
<state>
<connected/>
</state>
<otherParty>
<number>1102</number>
</otherParty>
<duration>0</duration>
<isOutgoing>
<true/>
</isOutgoing>
<isConference>
<false/>
</isConference>
</primCall>
<permittedServices>
<holdCall/>
<dropCall/>
<divertCall/>
<consultationCall/>
</permittedServices>
</call>
</event>
</TelServiceEvent>
|
| Example 2 |
|
Device 1101 calls device 1102. Call is successfully delivered to device 1102 which answers the call. A client monitoring device 1102 receives the following events. |
| XML encoding |
<TelServiceEvent>
<deviceNumber>1102</deviceNumber>
<event>
<call>
<id>1</id>
<primCall>
<state>
<alerting/>
</state>
<otherParty>
<number>1101</number>
</otherParty>
<duration>0</duration>
<isOutgoing>
<false/>
</isOutgoing>
<isConference>
<false/>
</isConference>
</primCall>
<permittedServices>
<answerCall/>
<divertCall/>
</permittedServices>
</call>
</event>
</TelServiceEvent>
<TelServiceEvent>
<deviceNumber>1102</deviceNumber>
<event>
<call>
<id>1</id>
<primCall>
<state>
<connected/>
</state>
<otherParty>
<number>1101</number>
</otherParty>
<duration>0</duration>
<isOutgoing>
<false/>
</isOutgoing>
<isConference>
<false/>
</isConference>
</primCall>
<permittedServices>
<holdCall/>
<dropCall/>
<divertCall/>
<consultationCall/>
</permittedServices>
</call>
</event>
</TelServiceEvent>
|
| Example 3 |
|
While device 1101 is connected to device 1102 it places a consultation call to device 1103 which answers the call. A client monitoring device 1101 receives the following events. |
| XML encoding |
<TelServiceEvent>
<deviceNumber>1101</deviceNumber>
<event>
<call>
<id>1</id>
<primCall>
<state>
<hold/>
</state>
<otherParty>
<number>1102</number>
</otherParty>
<duration>118</duration>
<isOutgoing>
<true/>
</isOutgoing>
<isConference>
<false/>
</isConference>
</primCall>
<secCall>
<state>
<initiated/>
</state>
<otherParty>
<number/>
</otherParty>
<duration>0</duration>
<isOutgoing>
<true/>
</isOutgoing>
<isConference>
<false/>
</isConference>
</secCall>
<permittedServices>
<dropCall/>
<reconnectCall/>
</permittedServices>
</call>
</event>
</TelServiceEvent>
<TelServiceEvent>
<deviceNumber>1101</deviceNumber>
<event>
<call>
<id>1</id>
<primCall>
<state>
<hold/>
</state>
<otherParty>
<number>1102</number>
</otherParty>
<duration>118</duration>
<isOutgoing>
<true/>
</isOutgoing>
<isConference>
<false/>
</isConference>
</primCall>
<secCall>
<state>
<originated/>
</state>
<otherParty>
<number>1103</number>
</otherParty>
<duration>0</duration>
<isOutgoing>
<true/>
</isOutgoing>
<isConference>
<false/>
</isConference>
</secCall>
<permittedServices>
<dropCall/>
<reconnectCall/>
</permittedServices>
</call>
</event>
</TelServiceEvent>
<TelServiceEvent>
<deviceNumber>1101</deviceNumber>
<event>
<call>
<id>1</id>
<primCall>
<state>
<hold/>
</state>
<otherParty>
<number>1102</number>
</otherParty>
<duration>119</duration>
<isOutgoing>
<true/>
</isOutgoing>
<isConference>
<false/>
</isConference>
</primCall>
<secCall>
<state>
<delivered/>
</state>
<otherParty>
<number>1103</number>
</otherParty>
<duration>0</duration>
<isOutgoing>
<true/>
</isOutgoing>
<isConference>
<false/>
</isConference>
</secCall>
<permittedServices>
<dropCall/>
<reconnectCall/>
<transferCall/>
</permittedServices>
</call>
</event>
</TelServiceEvent>
<TelServiceEvent>
<deviceNumber>1101</deviceNumber>
<event>
<call>
<id>1</id>
<primCall>
<state>
<hold/>
</state>
<otherParty>
<number>1102</number>
</otherParty>
<duration>124</duration>
<isOutgoing>
<true/>
</isOutgoing>
<isConference>
<false/>
</isConference>
</primCall>
<secCall>
<state>
<connected/>
</state>
<otherParty>
<number>1103</number>
</otherParty>
<duration>0</duration>
<isOutgoing>
<true/>
</isOutgoing>
<isConference>
<false/>
</isConference>
</secCall>
<permittedServices>
<dropCall/>
<holdCall/>
<reconnectCall/>
<alternateCall/>
<transferCall/>
<conferenceCall/>
</permittedServices>
</call>
</event>
</TelServiceEvent>
|
| Example 4 |
|
Device 1101 is connected to device 1102. Device 1102 places a consultation call to device 1103 which answers the call. Device 1103 places a consultation call to device 1104 which answers the call. Device 1103 transfers. Then device 1102 transfers. A client monitoring device 1104 receives the two following events with the cause equals to transfer. |
| XML encoding |
<TelServiceEvent>
<deviceNumber>1104</deviceNumber>
<event>
<call>
<id>1</id>
<primCall>
<state>
<connected/>
</state>
<otherParty>
<number>1102</number>
</otherParty>
<lastRedirectionParty>
<number>1103</number>
</lastRedirectionParty>
<duration>11</duration>
<isOutgoing>
<false/>
</isOutgoing>
<isConference>
<false/>
</isConference>
<cause>
<transfer/>
</cause>
</primCall>
<permittedServices>
<holdCall/>
<dropCall/>
<divertCall/>
<consultationCall/>
</permittedServices>
</call>
</event>
</TelServiceEvent>
<TelServiceEvent>
<deviceNumber>1104</deviceNumber>
<event>
<call>
<id>1</id>
<primCall>
<state>
<connected/>
</state>
<otherParty>
<number>1101</number>
</otherParty>
<lastRedirectionParty>
<number>1102</number>
</lastRedirectionParty>
<duration>44</duration>
<isOutgoing>
<false/>
</isOutgoing>
<isConference>
<false/>
</isConference>
<cause>
<transfer/>
</cause>
</primCall>
<permittedServices>
<holdCall/>
<dropCall/>
<divertCall/>
<consultationCall/>
</permittedServices>
</call>
</event>
</TelServiceEvent>
|
| Example 5 |
|
Device 1101 calls device 1102. Device 1102 diverts to device 1103. A client monitoring device 1103 receives the following alerting event. |
| XML encoding |
<TelServiceEvent>
<deviceNumber>1103</deviceNumber>
<event>
<call>
<id>1</id>
<primCall>
<state>
<alerting/>
</state>
<otherParty>
<number>1101</number>
</otherParty>
<firstCalledParty>
<number>1102</number>
</firstCalledParty>
<lastRedirectionParty>
<number>1102</number>
</lastRedirectionParty>
<duration>0</duration>
<isOutgoing>
<false/>
</isOutgoing>
<isConference>
<false/>
</isConference>
</primCall>
<permittedServices>
<answerCall/>
<divertCall/>
</permittedServices>
</call>
</event>
</TelServiceEvent>
|
| Example 6 |
|
Device 1101 calls device 1102. Device 1102 diverts to device 1103. Device 1103 diverts to device 1104. A client monitoring device 1104 receives the following alerting event. |
| XML encoding |
<TelServiceEvent>
<deviceNumber>1104</deviceNumber>
<event>
<call>
<id>1</id>
<primCall>
<state>
<alerting/>
</state>
<otherParty>
<number>1101</number>
</otherParty>
<firstCalledParty>
<number>1102</number>
</firstCalledParty>
<lastRedirectionParty>
<number>1103</number>
</lastRedirectionParty>
<duration>0</duration>
<isOutgoing>
<false/>
</isOutgoing>
<isConference>
<false/>
</isConference>
</primCall>
<permittedServices>
<answerCall/>
<divertCall/>
</permittedServices>
</call>
</event>
</TelServiceEvent>
|
| Description | Parameters |
|
The forward event indicates that the forwarding feature has been invoked for a device. |
|
| Example 1 |
|
Invoke forward feature at device number 1101. "immediate" forwarding type is turned on. Calls are forwarded to the device number 1102. |
| XML encoding |
<TelServiceEvent>
<event>
<forward>
<number>1102</number>
<type>
<immediate/>
</type>
<state>
<on/>
</state>
</forward>
</event>
</TelServiceEvent>
|
| Example 2 |
|
Invoke forward feature at device number 1101. "immediate" forwarding type is turned off. Calls were forwarded to the device number 1102. |
| XML encoding |
<TelServiceEvent>
<event>
<forward>
<number>1102</number>
<type>
<immediate/>
</type>
<state>
<off/>
</state>
</forward>
</event>
</TelServiceEvent>
|
| Description | Parameters |
|
The forward event indicates that the "do not disturb" feature has been invoked for a device.
|
|
| Example |
|
Invoke "do not disturb" feature at device number 1101. State is turned on. |
| XML encoding |
<TelServiceEvent>
<event>
<doNotDisturb>
<on/>
</doNotDisturb>
</event>
</TelServiceEvent>
|
| Description | Parameters |
|
The messageWaiting event indicates that the "message waiting" feature has been invoked for a device.
|
|
| Example |
|
Invoke "message waiting" feature at device number 1101 |
| XML encoding |
<TelServiceEvent>
<event>
<msgWaiting>
<on/>
</msgWaiting>
</event>
</TelServiceEvent>
|
| Description | Parameters |
|
The session event indicates that a session event should be reported to the client. For example, if the Adminsitrator closes a session. |
|
| Example |
|
The Administrator has requested a close session for device number 1101. |
| XML encoding |
<TelServiceEvent>
<event>
<session>
<pbxlinkOutOfService/>
</session>
</event>
</TelServiceEvent>
|