TelServer v1.7

TelServices gateway

Introduction

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.

Protocol

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 :

Transport protocol

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 :

Configuration

See TelServices gateway configuration chapter in TelServer User Guide to configure the TCP port of TelServer for the TelServices gateway.

Session

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.

Examples

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

Result

Standard result

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>

Specific result

Please refer to requests to check if a specific result is returned.

Error

PBX link out of sercice

Description

TelServer can not fulfil user request because the PBX link is out of service.

XML encoding
<TelServiceReturn>
  <error>
    <pbxlinkOutOfService/>
  </error>
</TelServiceReturn>

PBX reject

Description

A request is rejected because the PBX does not accept it.

XML encoding
<TelServiceReturn>
  <error>
    <pbxReject/>
  </error>
</TelServiceReturn>

PBX timeout

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>

No call

Description

A request is rejected because there is no call in the expected state.

XML encoding
<TelServiceReturn>
  <error>
    <noCall/>
  </error>
</TelServiceReturn>

No open session

Description

A request is rejected because it requires a session to be open previously.

XML encoding
<TelServiceReturn>
  <error>
    <noOpenSession/>
  </error>
</TelServiceReturn>

Session limit exceeded

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>

Reject

Description

A request is rejected because the TelServer does not accept it.

XML encoding
<TelServiceReturn>
  <error>
    <reject/>
  </error>
</TelServiceReturn>

Invalid credentials

Description

A request is rejected because the given userID/password cannot be authenticated.

XML encoding
<TelServiceReturn>
  <error>
    <invalidCredentials/>
  </error>
</TelServiceReturn>

Resource error

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>

Session

OpenSession

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:

  • if the configuration defines telserver.sessions.user_authentication.administrator.userid or telserver.sessions.user_authentication_by_administrator.enabled, a correct authentication will be requested on the first session opening on a device number while subsequent openSession while succeed even without userID/password. This allows the administrator to set the device number associated to a session once and forbids the unauthorized user to change this number (this assumes that the client saves the device number which is the case for TSWidget for example).
  • the userID/userPassword are passed to the PBX if the session concerns a PBX agent. The responsibility to control the agent login with proper Id and password is left to the PBX. If the credentials are not correct agent features will not be efficient.
  • deviceNumber : internal phone number of the associated PBX device.
  • eventUDPPort (OPTIONAL) : the UDP port the client will listen to receive notifications of events.
  • eventUpdate (OPTIONAL) : the level of notification the client wants to get. It can be "full" or "restricted" for receiving only alerting events. Default is "full".
  • userID (OPTIONAL) : the identifier of the user.
  • userPassword (OPTIONAL) : the password of the user.
  • sessionTimeout (OPTIONAL) : the timeout after which the session is closed by TelServer. It is in seconds and must be positive otherwise ignored. If not present or ignored, the session will last until closed by the client. The session timeout is reset after each action requested by the client.
  • startPbxMonitor (OPTIONAL) : it indicates whether a monitor request is immediately sent to the PBX. By default, it is true.
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>

CloseSession

Description Parameters

This service closes the session and thus all service requests that require an open session will not work any more.

  • deviceNumber : phone number of the associated PBX device.
  • actualCloseSessionTimeout (OPTIONAL): allows the user to indicate a timeout in seconds before the actual close is done. The default value is '0' for an immediate close session. This is useful when using TelServices over HTTP in case a refresh of the page should not close the session while the onunload event handler does a closeSession. In such a case, setting a value of 3 seconds for example, allows TelServer to keep the session opened during 3 seconds before actually closing it.
  • clientOnly (OPTIONAL) : it specifies whether the close session will apply to the requesting client only or to all clients of the sessions. By default, it applies to the requesting client only.
Example

Immediate close session for device number 1101.

XML encoding
<TelServiceRequest>
  <closeSession>
    <deviceNumber>1101</deviceNumber>
  </closeSession>
</TelServiceRequest>

User services

AddPartyToCall

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

  • deviceNumber : phone number of the associated PBX device.
  • otherNumber (OPTIONAL) : the other party of the call to which a new party shall be added.
  • addedDeviceNumber : phone number of the device to be added to the call.
  • extraData (OPTIONAL) : data associated to the call (correlator data).
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>

AgentState

Description Parameters

This service requires an opened session.

This will change the state of the agent.

  • deviceNumber : phone number of the associated PBX device.
  • state : it can be among the possible agent states. The "null" state is however not possible, while the "busy" state is reported but cannot be requested because an agent is moved to busy by the server only.
Example

Set agent state to "not ready" for device number 1101.

XML encoding
<TelServiceRequest>
  <agentState>
    <deviceNumber>1101</deviceNumber>
    <state>
      <notReady/>
    </state>
  </agentState>
</TelServiceRequest>

AlternateCall

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.

  • deviceNumber : phone number of the associated PBX device.
  • primOtherNumber (OPTIONAL) : phone number of the first other party.
  • secOtherNumber (OPTIONAL) : phone number of the second other party.
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>

AnswerCall

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.

  • deviceNumber : phone number of the associated PBX device.
  • callingNumber (OPTIONAL) : phone number of the calling device. Default is none.
Example

Device number 1102 answers call received from device number 1101.

XML encoding
<TelServiceRequest>
  <answerCall>
    <deviceNumber>1102</deviceNumber>
    <callingNumber>1101</callingNumber>
  </answerCall>
</TelServiceRequest>

ConferenceCall

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.

  • deviceNumber : phone number of the associated PBX device.
  • primOtherNumber (OPTIONAL) : phone number of the first other party.
  • secOtherNumber (OPTIONAL) : phone number of the second other party.
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>

ConsultationCall

Description Parameters

This service requires an opened session.

This will dial a consultation call upon an existing call.

  • deviceNumber : phone number of the associated PBX device.
  • otherNumber (OPTIONAL) : the other party of the existing call.
  • consultedDeviceNumber phone number of the device to be consulted.
  • extraData (OPTIONAL) : data associated to the call (correlator data).
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>

DivertCall

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.

  • deviceNumber : phone number of the associated PBX device.
  • otherNumber (OPTIONAL) : the other party of the call to divert.
  • divertedDeviceNumber : phone number of the device to be diverted to.
  • extraData (OPTIONAL) : data associated to the call (correlator data).
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>

DoNotDisturb

Description Parameters

This service doesn't require the session is open.

This changes the "do not disturb" state of the device.

  • deviceNumber : phone number of the associated PBX device.
  • state : it must be either "on" or "off".
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>

DropCall

Description Parameters

This service requires an opened session.

This will drop the call currently connected.

  • deviceNumber : phone number of the associated PBX device.
  • otherNumber (OPTIONAL) : the other party of the call.
Example

Release an active call at device number 1101. Optional field is not set.

XML encoding
<TelServiceRequest>
  <dropCall>
    <deviceNumber>1101</deviceNumber>
  </dropCall>
</TelServiceRequest>   

Forward

Description Parameters

This service doesn't require the session is open. This will activate or deactivate a forward on the device.

  • deviceNumber : phone number of the associated PBX device.
  • forward :
    • number : the phone number to which calls are to be forwarded to.
    • type : the type of forward to activate or deactivate. It must be "immediate", "busy", "noAnswer", "immInt", "immExt", "busyInt", "busyExt", "noAnswerInt" or "noAnswerExt".
    • state : it must be either "on" to activate or "off" to deactivate the forward.
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>

HoldCall

Description Parameters

This service requires an opened session.

This will pass the the call currently connected on hold.

  • deviceNumber : phone number of the associated PBX device.
  • otherNumber (OPTIONAL) : the other party of the call.
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>

MakeCall

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.

  • deviceNumber : phone number of the associated PBX device.
  • calledDeviceNumber : phone number to be dialled.
  • extraData (OPTIONAL) : data associated to the call (correlator data).
Example

Make call from device 1101 to device 1102.

XML encoding
<TelServiceRequest>
  <makeCall>
    <deviceNumber>1101</deviceNumber>
    <calledDeviceNumber>1102</calledDeviceNumber>
  </makeCall>
</TelServiceRequest>

QualifyCall

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.

  • deviceNumber : phone number of the associated PBX device.
  • answerCall (OPTIONAL) : whether the server should automatically answer the call. It must be "true" or "false". Default is "true".
  • needName (OPTIONAL) : get also the user name associated to the calling phone number. It must be "true" or "false". Default is "true".
Response description Parameters

The response provides the calling phone number and name.

  • qualifyCall :
    • number : calling phone number.
    • name (OPTIONAL) : user name associated to the calling phone number.
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>

QueryAgentState

Request description Parameters

This service requires an opened session.

This queries the state of the agent.

  • deviceNumber : phone number of the associated PBX device.
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>

QueryDoNotDisturb

Request description Parameters

This service doesn't require the session is open.

This requests the "do not disturb" state of the device.

  • deviceNumber : phone number of the associated PBX device.
Response description Parameters

The response provides the "do not disturb" state of the device.

  • doNotDisturb : it must be either "on" or "off".
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>

QueryForward

Request description Parameters

This service doesn't require the session is open.

This requests the state of the forwards potentially activated on the device.

  • deviceNumber : phone number of the associated PBX device.
Response description Parameters

The response provides the state of the forwards potentially activated on the device.

  • forwards : it contains the activated forward records. A forward record contains :
    • number : the phone number to which calls are to be forwarded to.
    • type : the type of forward to activate or deactivate. It must be "immediate", "busy", "noAnswer", "immInt", "immExt", "busyInt", "busyExt", "noAnswerInt" or "noAnswerExt".
    • state : it must be either "on" to activate or "off" to deactivate the forward.
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>

QueryHistory

Request description Parameters

This service doesn't require the session is open.

This requests the "history" of calls for a user.

  • recordType (OPTIONAL) : the type of record queried. It may be 'call' (for call records only), 'agent' (for agent state change records only) or 'all' (for all records). By default it is 'call'.
  • deviceNumber (OPTIONAL) : phone number of the associated PBX device.
  • userID (OPTIONAL) : userID.
  • startDate (OPTIONAL) : the start date in the format "yyyy-MM-dd".
  • startHour (OPTIONAL) : the start hour of the day from 0 to 23, it is used only if there is a startDate.
  • endDate (OPTIONAL) : the end date in the format "yyyy-MM-dd".
  • search (OPTIONAL) : a text to be searched in the other party information. It may be a number or a name (or part of number or name).
  • limit (OPTIONAL) : the maximum count of records requested.
Response description Parameters

The response provides the call records of the user.

A call record contains:

  • deviceNumber (OPTIONAL) : phone number of the associated PBX device.
  • userID (OPTIONAL) : userID.
  • creationDate : the date of creation of the call in the format "yyyy-MM-dd".
  • creationTime : the time of the day of creation of the call in the format "HH:mm:ss".
  • otherParty (OPTIONAL) : the other party.
  • alertingDuration (OPTIONAL) : the alerting duration in seconds of the incoming call.
  • duration (OPTIONAL) : the duration in seconds of the communication (connected).
  • isOutgoing (OPTIONAL) : whether the call is an outgoing call.
  • isConnected (OPTIONAL) : whether the call has been connected (communication).
  • cause (OPTIONAL) : the cause of the end of the call,
  • agentState (OPTIONAL) : the state of the agent if it is an agent.
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>

QueryMsgWaiting

Request description Parameters

This service doesn't require the session is open.

This requests the "message waiting" state of the device.

  • deviceNumber : phone number of the associated PBX device.
Response description Parameters

The response provides the "message waiting" state of the device.

  • msgWaiting : it must be either "on" or "off".
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>

QueryUserStatistics

Request description Parameters

This service doesn't require the session is open.

This requests the user statistics.

  • deviceNumber : phone number of the associated PBX device.
  • userID (OPTIONAL) : the identifier of the user.
  • type: it can be:
    • 'snapshot' for a snapshot overview such as the calls running, the state of the agent or,
    • 'total' for a global overview of the user activity such as the times spent in conversion or in a specific agent state.
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>

ReconnectCall

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.

  • deviceNumber : phone number of the associated PBX device.
  • primOtherNumber (OPTIONAL) : phone number of the first other party.
  • secOtherNumber (OPTIONAL) : phone number of the second other party.
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>

RetrieveCall

Description Parameters

This service requires an opened session.

This will retrieve from hold the call previously set on hold.

  • deviceNumber : phone number of the associated PBX device.
  • otherNumber (OPTIONAL) : the other party of the call.
Example

Connect an existing held call at device number 1101. Optional field is not set.

XML encoding
<TelServiceRequest>
  <retrieveCall>
    <deviceNumber>1101</deviceNumber>
  </retrieveCall>
</TelServiceRequest>

SearchName

Description Parameters

This service does not require an opened session.

This will retrieve information about a name from the local directory cache.

  • userID (OPTIONAL) : userId requesting the search. If provided only directories accessible to the user will be searched, otherwise directories accessible to every user are searched.
  • deviceNumber (OPTIONAL) : the deviceNumber as a userID will be used if no userID is provided in the request.
  • name : a name or the start of a name.
  • limit (OPTIONAL) : the maximum count of records requested.

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>

SearchNumber

Description Parameters

This service does not require an opened session.

This will retrieve information about a phone number from the local directory cache.

  • userID (OPTIONAL) : userId requesting the search. If provided only directories accessible to the user will be searched, otherwise only directories accessible to every user are searched.
  • deviceNumber (OPTIONAL) : the deviceNumber as a userID will be used if no userID is provided in the request.
  • number : a phone number.

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>

Snapshot

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. 

  • deviceNumber : phone number of the associated PBX device.
  • resultOnEvent (OPTIONAL) : filling this part of the request implies that the client is interested to be notified of events through a TCP connection. It is possible only if the client is a HTTP (otherwiser it is better to use a UDP port).
    • timeout : the timeout after the request will be answered by TelServer. If the timeout is positive, TelServer will give an answer if there is a change (for example a new incoming call) or if the timeout expires.
    • snapshotSeq : the sequence number of the last snapshot result received. The client has to save the sequence number and just provide it at the next snapshot request. This is used internally by TelServer to provide the appropriate event to the client.
Response description Parameters

The response provides information about calls, forwards and features.

  • snapshot
    • snapshotSeq (OPTIONAL) : used by HTTP clients only. It is the sequence number to send back in the next snapshot request with a resultOnEvent specification.
    • calls (OPTIONAL) : list (may be empty) of call elements. See call element in call event.
    • forwards  (OPTIONAL) : see forwards element in response to the QueryForward request.
    • msgWaiting (OPTIONAL) : see msgWaiting element in response to the QueryMsgWaiting request.
    • doNotDisturb (OPTIONAL) : see doNotDisturb element in response to the QueryDoNotDisturb request.
    • agent (OPTIONAL) : see content of the agentState event.
    • session (OPTIONAL) : see content of the session event.
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>

TransferCall

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.

  • deviceNumber : phone number of the associated PBX device.
  • primOtherNumber (OPTIONAL) : phone number of the first other party.
  • secOtherNumber (OPTIONAL) : phone number of the second other party.
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>

UpdateUserDirectory

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.

  • userID (OPTIONAL) : the userID for whom the private directory will be updated.
  • deviceNumber (OPTIONAL) : the deviceNumber as a userID will be used if no userID is provided in the request.
  • directoryName: the name of the directory to update (it is a free name that should identify the directory and thus should be unique if there are several private directories for the user)
  • parties : the list of other party contained in the directory.
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>

Supervisor services

The supervisor is an application that invokes specific TelServices services. It is generally for managing routing points such as those used by outbound campaigns.

QueryRoutingPointState

Request description Parameters

This service doesn't require the session is open.

This requests state of a routing point.

  • service: the service of the routing point.
Response description Parameters

The response indicates the state of the routing point.

The state can be:

  • started: the routing point has been started but is not yet working (an inbound routing point is waiting for agents to be ready for example).
  • started-completed: the routing point has terminated its job (an outbound campaign has ended, which means no more calls to launch and no appointments scheduled).
  • started-failed: the routing point is not able to perform what it is built for (an inbound routing point cannot monitor the PBX device it relies on, or an outbound routing point does not find any defined agents for performing calls).
  • started-running: the routing is active (n inbound routing point is able to receives calls or an outbound routing point is able to performs calls pr schedule appointments).
  • started-suspended: the routing point has received a 'suspend' request (for an outbound routing point, it received 'suspendRoutingPoint').
  • stopped: the routing point is stopped or is in its original state after being started.

 

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>

QueryRoutingPointStatistics

Request description Parameters

This service doesn't require the session is open.

This requests the routing point statistics.

  • service: the service the routing is handling.
  • type: it can be:
    • 'snapshot' for a snapshot overview such as the agents states,
    • 'total' for a global overview of the routing point activity such as the times spent alerting or for each agent the time spent in a specific agent state.
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>

ResumeRoutingPoint

Request description Parameters

This service doesn't require the session is open.

This requests the resume of a routing point that has been suspended.

  • For an inbound routing point: all calls incoming on the routing point will be routed to the assigned agent or the default distribution.
  • For an outbound routing point: outgoing calls are launched again.

 

  • service: the name of the routing point.
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>

StartRoutingPoint

Request description Parameters

This service doesn't require the session is open.

This requests the start of a routing point.

  • For an outbound routing point: when this request is received, the routing point is created from the 'template' routing point. The 'template' should be defined as outbound (with PBX method 'MakeCall'). The service of the routing point will be the name of the campaign (the service has been defined as '%name%' in the configuration). Optionally, the configuration of timeout may be provided in the request or the default values will be those defined in the 'template' routing point.
  • service: the name of the service.
  • template (OPTIONAL): the template configuration defined in the configuration. It is optional
  • config : the configuration of the routing point used for the campaign:
    • serviceTimeout (OPTIONAL): the timeout after which the service is stopped by the server.
    • workingHours (OPTIONAL): a list of strings representing the start hour and the end hour of the work in the day separated by a '/'. Each hour intervals in the list is separated by a comma.
      For example, "8:30/12:00,12/17".
    • nonWorkingDaysOfWeek (OPTIONAL): a list of numbers, each number representing a day of the week which is not worked (1 is sunday, 2 is Monday...7 is Saturday). Each day in the list is separated by a comma. For example, "1,7".
    • nonWorkingDays (OPTIONAL): a list of days in the year which are not worked. Each non worked day is given as a month-day date. Each day in the list is separated by a comma.
      For example, 25-12 for the 25th of December.
    • noAnswerTimeout: the timeout after a call to a customer is cleared automatically if not answer.
    • failedCallRetryTimeout: the timeout between two attempts of a call (if not answered).
    • failedCallRetryLimit: the number of times a call will be retried until it is answered.
    • agentWorkingAfterCallTimeout: the time, after a call has been dropped at the agent, the agents is unavailable for launching the next call.
    • agentsDistribution: the distribution of the agents, which can be 'cyclic', 'sequential' or 'most-idle'.
    • queueLimit (OPTIONAL): the number of calls that the queue can accept. It is given as a percentage of the active agents. An active agent being an agent logged on. For example, 100 means that if 5 agents are busy treating a call, 5 calls may be queued at most.
    • agentLoggedOnOnOpenSession (OPTIONAL): true or false to indicate if the agent is turned logged on as soon as he opens the session.
    • agentReadyOnLoggedOn (OPTIONAL): true or false to indicate if the agent is turned 'ready' as soon as it logs on.
    • statisticsIncomingCallImmediateAbandonTimeout (OPTIONAL): the timeout for considering a fast abandoned call. Such calls will be ignored by statistics.
Response description Parameters

The response indicates if the routing point can be started as a standard result or an error.

 
Example

Start routing point feature for campaign 'camp1'.

XML encoding
<TelServiceRequest>
  <startRoutingPoint>
    <service>camp1</service>
  </startRoutingPoint>
</TelServiceRequest>

StopRoutingPoint

Request description Parameters

This service doesn't require the session is open.

This requests the stop of a routing point.

  • For an outbound routing point: when this request is received, the routing point used by the campaing is removed, the directories are also removed.
  • service: the name of the 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>

SuspendRoutingPoint

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.

  • For an inbound routing point: all calls incoming on the routing point will be diverted to the failure route.
  • For an outbound routing point: outgoing calls in progress are cleared and no call is tried during the suspension.
  • service: the name of the routing point.
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>

UpdateRoutingPoint

Request description Parameters

This service doesn't require the session is open.

This requests a routing point is updated.

  • For an inbound routing point: this allows to update part of the configuration.
  • For an outbound routing point: this allows to update part of the configuration but this can also be used whenever a change is made in the table containing the calls or the agents. Thus, this should be used when appointments are scheduled, calls are invalidated, agents should be removed or added agents.
  • service: the name of the routing point.
  • config : the configuration of the routing point used for the campaign (see the routing point config).
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>

UpdateDirectory

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.

  • directoryName: the name of the directory to update (it is the name of the directory defined within the configuration).
Example

Updates the directory 'ldap'.

XML encoding
<TelServiceRequest>
  <updateDirectory>
    <directoryName>ldap</directoryName>
  </updateDirectory>
</TelServiceRequest>

Events

Agent

Description Parameters

An agent event reports a change in the state of an agent.

An agent event reports an AgentInfo structure gathering the following information:

  • userID (OPTIONAL) : the agent ID.
  • state : it can be "null"(0), "loggedOff"(1), "loggedOn"(2), "busy"(3), "notReady"(4), "ready"(5), "workingAfterCall"(6).
  • timeout (OPTIONAL) : the timeout in seconds after which the state will be changed automatically by the server. This is useful for the 'workingAfterCall' state for example when this timeout represents the remaining time before the agent will be moved to the 'ready' state.
  • inboundServices (OPTIONAL) : the names of all inbound services the agent works for.
  • outboundServices (OPTIONAL) : the names of all outbound services the agent works for.
  • permittedStates (OPTIONAL) : the list of allowed agent states the agent is permitted to move on.
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>

Call

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

  • call
    • id : the identifier for this call.
    • primCall (OPTIONAL) :
      • state : it must be "initiated" (handset up), "originated" (call number processed), "delivered" (call has reached other party), "queued" (call is queued here), "alerting" (a new call has arrived and is ringing), "connected" (handset up answering the alerting call), "cleared", (call is cleared), "failed" (call has failed) or "hold" (call has been set on hold).
      • otherParty : the other party number of the call.
        • number : the number of this party. If the number is not present (either because the other party does not want to show his number, either because the network does not provide the number), TelServer generates a number in the form '*****'-%reference% where %reference% is the call reference. The client application may choose to display only the '*****' for example.
        • name (OPTIONAL) : the other party name. The element is absent if the name is not known.
        • company (OPTIONAL) : the other party company. The element is absent if the company is not known.
        • numberType (OPTIONAL) : the other party number type. The element is absent if the number type is not known. The number type can be 'work', 'home', 'mobile', 'ip'.
      • addedParties (OPTIONAL) : it is a list of otherParty used when in a conference.
      • firstOtherParty (OPTIONAL) : it is the original calling or called party of a call which will be presented on the consulted device after a ConsultationCall (see the setting). This allows the destination of a consultation call to be aware of the original party before transfer.
      • firstCalledParty (OPTIONAL) : it is the party that has first been called. It can contain for example the DID number on an incoming call.
      • lastRedirectionParty (OPTIONAL) : it is the party that has diverted the call (cause is 'redirect'), or transferred the call (cause is 'transfer'). The otherParty information contains the new other party.
      • duration : the duration in seconds since the call has been connected. It is stopped when the user drops or when the other party drops.
      • isOutgoing : value is "true" if the device has initiated the call otherwise value is "false".
      • isConference : value is "true" if the call is a conference otherwise the element is not present (meaning its value is "false").
      • callReference (OPTIONAL) : the call reference that can be used for correlation with the history.
      • cause (OPTIONAL) : cause of some state changes. Available causes are:
        • "busy"(1),
        • "conference"(2),
        • "destNotObtainable"(3),
        • "droppedByOtherParty"(4),
        • "heldByOtherParty"(5),
        • "redirect"(6),
        • "retrievedByOtherParty"(7),
        • "transfer"(8),
        • "route"(9) : this cause means that a routing point has applied a route by a DivertCall, equivalent to a "redirect" for a regular device.
    • secCall (OPTIONAL) : same contents than primCall.
    • permittedServices (OPTIONAL) : it is a list (may be empty) of items among "alternateCall", "answerCall", "conferenceCall", "consultationCall", "divertCall", "dropCall", "holdCall", "makeCall", "reconnectCall", "retrieveCall", "transferCall". This gives the lists of available services depending on the device state.
    • extraData (OPTIONAL) : data associated to the call (correlator data). It may be used to carry the 'called number' when the PBX provides it for Delivered and Queued events.
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>

Forward

Description Parameters

The forward event indicates that the forwarding feature has been invoked for a device.

  • forward :
    • number : the phone number to which calls are to be forwarded to.
    • type : the type of forward to activate or deactivate. It must be "immediate", "busy", "noAnswer", "immInt", "immExt", "busyInt", "busyExt", "noAnswerInt" or "noAnswerExt".
    • state : it must be either "on" to activate or "off" to deactivate the forward.
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>

Do not disturb

Description Parameters

The forward event indicates that the "do not disturb" feature has been invoked for a device.

 

  • doNotDisturb : it must be either "on" or "off".
Example

Invoke "do not disturb" feature at device number 1101. State is turned on.

XML encoding
<TelServiceEvent>
  <event>
    <doNotDisturb>
      <on/>
    </doNotDisturb>
  </event>
</TelServiceEvent>

Message waiting

Description Parameters

The messageWaiting event indicates that the "message waiting" feature has been invoked for a device.

 

  • msgWaiting : it must be either "on" or "off".
Example

Invoke "message waiting" feature at device number 1101

XML encoding
<TelServiceEvent>
  <event>
    <msgWaiting>
      <on/>
    </msgWaiting>
  </event>
</TelServiceEvent>

Session

Description Parameters

The session event indicates that a session event should be reported to the client. For example, if the Adminsitrator closes a session.

  • session : it must be "sessionClosedByAdmin", "sessionClosedByTimeout", "sessionClosedByMonitoringReject", "sessionClosedByClient", "pbxlinkOutOfService" or "pbxlinkInService".
Example

The Administrator has requested a close session for device number 1101.

XML encoding
<TelServiceEvent>
  <event>
    <session>
      <pbxlinkOutOfService/>
    </session>
  </event>
</TelServiceEvent>

 


CTI Solutions products are developed and licensed by uniGone.
For further information, email to unigone@unigone.com.
Copyright © uniGone 1999-2011. All Rights Reserved.
uniGone
4 Route de la Noue 91190 GIF SUR YVETTE France.