Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

The Subscribe method The Subscribe method allows you to monitor extension for events such as:

...

To guarentee that you don't miss any events between calls to subscribe you use the 'seq' data returned by a call to subscribe as the value of lastSequenceNumber in the next call to subscribe. 

...

Code Block
linenumberstrue
httphttps://<server host>/servicemanager/rest/CallManagementAPI/subscribe

...

Code Block
linenumberstrue
exten - a comma-separated list of extensions to monitor for calls.

instanceId - Not used.

lastSequenceNumber - The client should retrieve this number from the CallData.seq value in the API response.
 
timeOut - the poll timeout in seconds - default is 10 if this parameter is omitted.

timeStampapiKey - theapi authenticationkey timestamp.provided by 
hash - the authentication signature or hash.Noojee Support
 
This API call returns a CallData resource containing the information needed to correctly handle any call.
 

Sample response when two calls are received from 400 at extension 410. The first call arrives and the API returns, then the second call arrives and the API returns the information about the second call only. Both of the calls are rejected simultaneously and the final reponse contains a Data resource with a collection of Extension resources (e.g. 400 in the sampe below). Each Extension resource contains an array of CallData resources.  The associated uniqueCallId is used to asnwer a call (see below).


Code Block
linenumberstrue
  
Code Block
linenumberstrue
  
Code Block
linenumberstrue
http:https://127.0.0.1:8080/servicemanager/rest/CallManagementAPI/subscribe?timeOut=60&timeStamp=1412749504522&hash=10e371546ab11a5910cb762837060a21c7086cb5087aa69bc79b7093a645ef14&
apiKey=f863246a-973e-11e6-8784-08002718f5b5&lastSequenceNumber=28&instanceId=1&exten=400,410,410
Code Block
linenumberstrue
 
Code Block
linenumberstrue
{"Data":{ 
"410":[{"CallData":{     
    "canAnswer":true,     
    "callerId":"400",     
    "uniqueCallId":"1412750652.496",     
    "callStartTime":"",     
    "isQueueCall":false,     
    "isClickToDialCall":false,     
    "inbound":true,     
    "status":"Ringing"},"CallID":10,"Code":0}], 
"400":[{"CallData":{     
    "canAnswer":false,     
    "callerId":"",     
    "uniqueCallId":"1412750656.497",     
    "callStartTime":"",     
    "isQueueCall":false,     
    "isClickToDialCall":false,     
    "inbound":false,     
    "status":"Dialing Out"},"CallID":9,"Code":0}]},"seq":32,"Code":0}
Code Block
linenumberstrue
http://127.0.0.1:8080/servicemanager/rest/CallManagementAPI/subscribe?timeOut=60
&timeStamp=1412749504522&hash=10e371546ab11a5910cb762837060a21c7086cb5087aa69bc79b7093a645ef14apiKey=f863246a-973e-11e6-8784-08002718f5b5&lastSequenceNumber=32&instanceId=1&exten=400,410,410
Code Block
linenumberstrue
 
Code Block
linenumberstrue
{"Data{"Data":{ 
"410":[{"CallData":{     
    "canAnswer":true,     
    "callerId":"400",     
    "uniqueCallId":"1412750658.498",     
    "callStartTime":"",     
    "isQueueCall":false,         
    "isClickToDialCall":false,     
    "inbound":true,     
    "status":"Ringing"},"CallID":12,"Code":0}], 
"400":[{"CallData":{     
    "canAnswer":false,     
    "callerId":"",     
    "uniqueCallId":"1412750661.499",     
    "callStartTime":"",     
    "isQueueCall":false,     
    "isClickToDialCall":false,     
    "inbound":false,     
    "status":"Dialing Out"},"CallID":11,"Code":0}]},"seq":36,"Code":0}
Code Block
linenumberstrue
http://127.0.0.1:8080/servicemanager/rest/CallManagementAPI/subscribe?timeOut=60&timeStamp=1412749504522&hash=10e371546ab11a5910cb762837060a21c7086cb5087aa69bc79b7093a645ef14
apiKey=f863246a-973e-11e6-8784-08002718f5b5&lastSequenceNumber=36&instanceId=1&exten=400,410,410
true
Code Block
linenumberstrue
 
Code Block
linenumbers
true
{"Data":{ 
"410":[{"CallData":{     
    "canAnswer":false,     
    "callerId":"400",     
    "uniqueCallId":"1412750652.496",     
    "callStartTime":"",     
    "isQueueCall":false,     
    "isClickToDialCall":false,     
    "inbound":true,     
    "status":"Hungup",     
    "hangupCause":"NO_ANSWER"},"CallID":10,"Code":0}, 
{"CallData":{     
    "canAnswer":false,     
    "callerId":"400",     
    "uniqueCallId":"1412750658.498",     
    "callStartTime":"",     
    "isQueueCall":false,     
    "isClickToDialCall":false,     
    "inbound":true,     
    "status":"Hungup",     
    "hangupCause":"NO_ANSWER"},"CallID":12,"Code":0}], 
"400":[{"CallData":{     
    "canAnswer":false,     
    "callerId":"410",     
    "uniqueCallId":"1412750656.497",     
    "callStartTime":"",     
    "isQueueCall":false,     
    "isClickToDialCall":false,     
    "inbound":false,     
    "status":"Hungup",     
    "hangupCause":"NO_ANSWER"},"CallID":9,"Code":0}, 
{"CallData":{     
    "canAnswer":false,     
    "callerId":"410",     
    "uniqueCallId":"1412750661.499",     
    "callStartTime":"",     
    "isQueueCall":false,     
    "isClickToDialCall":false,     
    "inbound":false,     
    "status":"Hungup",     
    "hangupCause":"NO_ANSWER"},"CallID":11,"Code":0}]},"seq":40,"Code":0}
Code Block
linenumbers

 

...

 

    

...

  

To answer the first call listed in the sample above use the uniqueCallId and pass it in as the uniqueId to the answer method: 

Code Block
linenumberstrue
answer?answerString=...&timeStamp=...&hashapiKey=....&exten=101&uniqueId=1403148776.566

...

The CallData values are defined as follows:
canAnswertrue if an incoming call has been detected, is not yet answered and is not from a queue, false otherwise.
callerIdthe caller ID incoming or outgoing call
seqthe sequence number of the subscribe call. This number is used to determine which calls should be shown in the response. To get the current state of all calls always use 0, other wise only calls where the status has changed since "seq" will be retrieved.
uniqueCallIdan internal unique ID for the call. Use this ID in the call to 06.0 Answer.
isQueueCalltrue if the call is received through a queue, false otherwise
isClickToDialCalltrue if the call was initaited by Click-to-Dial; false otherwise.
inboundtrue if an inbound call is detected; false otherwise.
statusthe status of the monitored handset - one of: Dialing Out, Connected, Ringing or Hungup
hangupCauseIf the call didn't connect and is Hungup, the cause will be one of DISCONNECTED, NO_ANSWER, CONGESTION or BUSY

Sample API call sequence - one extension answered multiple times:

Call 1: Extension 400 dials extension 410, then the call is answered and finally hungup.
 

...

...

 
Code Block
linenumberstrue
http://127.0.0.1:8080/servicemanager/rest/CallManagementAPI/subscribe?timeOut=60&timeStamp=1412749504522&hash=10e371546ab11a5910cb762837060a21c7086cb5087aa69bc79b7093a645ef14
apiKey=f863246a-973e-11e6-8784-08002718f5b5&lastSequenceNumber=0&instanceId=1&exten=400,410,410 {"Data":{

...

Code Block
linenumberstrue
http://127.0.0.1:8080/servicemanager/rest/CallManagementAPI/subscribe?timeOut=60&timeStamp=1412749504522&hash=10e371546ab11a5910cb762837060a21c7086cb5087aa69bc79b7093a645ef14&lastSequenceNumber=
apiKey=f863246a-973e-11e6-8784-08002718f5b5lastSequenceNumber=4&instanceId=1&exten=400,410,410
Code Block
linenumberstrue
 
Code Block
linenumberstrue
{"Data":{ 
"410": [{"CallData":{
     "canAnswer":false,     
     "callerId":"400",     
     "uniqueCallId":"1412749510.488",     
     "callStartTime":"2014/10/08 17:25:18",     
     "isQueueCall":false,     
     "isClickToDialCall":false,     
     "inbound":true,     
     "status":"Connected"},"CallID":2,"Code":0}], 
"400": [{"CallData":{     
    "canAnswer":false,     
    "callerId":"410",     
    "uniqueCallId":"1412749517.489",     
    "callStartTime":"2014/10/08 17:25:18",     
    "isQueueCall":false,     
    "isClickToDialCall":false,     
    "inbound":false,     
    "status":"Connected"},"CallID":1,"Code":0}]},"seq":6,"Code":0}
Code Block
linenumberstrue
http://127.0.0.1:8080/servicemanager/rest/CallManagementAPI/subscribe?timeOut=60&timeStamp=1412749504522&hash=10e371546ab11a5910cb762837060a21c7086cb5087aa69bc79b7093a645ef14
apiKey=f863246a-973e-11e6-8784-08002718f5b5&lastSequenceNumber=6&instanceId=1&exten=400,410,410
Code Block
linenumberstrue
 
Code Block
linenumberstrue
{"Data{"Data":{ 
"410": [{"CallData":{     
    "canAnswer":false,     
    "callerId":"400",     
    "uniqueCallId":"1412749510.488",     
    "callStartTime":"2014/10/08 17:25:18",     
    "isQueueCall":false,     
    "isClickToDialCall":false,     
    "inbound":true,     
    "status":"Hungup"},"CallID":2,"Code":0}], 
"400": [{"CallData":{     
    "canAnswer":false,     
    "callerId":"410",     
    "uniqueCallId":"1412749517.489",     
    "callStartTime":"2014/10/08 17:25:18",     
    "isQueueCall":false,     
    "isClickToDialCall":false,     
    "inbound":false,     
    "status":"Hungup"},"CallID":1,"Code":0}]},"seq":10,"Code":0}
Code Block
linenumberstrue
 

 


Call 2: Extension 400 dials extension 410, 410 is busy.


Code Block
linenumberstrue
http://127.0.0.1:8080/servicemanager/rest/CallManagementAPI/subscribe?timeOut=60&timeStamp=1412749504522&hash=10e371546ab11a5910cb762837060a21c7086cb5087aa69bc79b7093a645ef14&
apiKey=f863246a-973e-11e6-8784-08002718f5b5&lastSequenceNumber=10&instanceId=1&exten=400,410,410

Code Block
linenumberstrue
{"Data":{
"410":[{"CallData":{
        "canAnswer":true,
        "callerId":"400",
        "uniqueCallId":"1412749905.490",
        "callStartTime":"",
        "isQueueCall":false,
        "isClickToDialCall":false,
        "inbound":true,
        "status":"Ringing"},"CallID":4,"Code":0}],
"400":[{"CallData":{
        "canAnswer":false,
        "callerId":"",
        "uniqueCallId":"1412749908.491",
        "callStartTime":"",
        "isQueueCall":false,
        "isClickToDialCall":false,
        "inbound":false,
        "status":"Dialing Out"},"CallID":3,"Code":0}]},"seq":14,"Code":0}


Code Block
linenumberstrue
http://127.0.0.1:8080/servicemanager/rest/CallManagementAPI/subscribe?timeOut=60&timeStamp=1412749504522&hash=10e371546ab11a5910cb762837060a21c7086cb5087aa69bc79b7093a645ef14&
apiKey=f863246a-973e-11e6-8784-08002718f5b5&lastSequenceNumber=14&instanceId=1&exten=400,410,410

Code Block
linenumberstrue
{"Data":{
"410":[{"CallData":{
        "canAnswer":false,
        "callerId":"400",
        "uniqueCallId":"1412749905.490",
        "callStartTime":"",
        "isQueueCall":false,,
        "isClickToDialCall":false,
        "inbound":true,
        "status":"Hungup",
        "hangupCause":"BUSY"},"CallID":4,"Code":0}],
"400":[{"CallData":{
        "canAnswer":false,
        "callerId":"410",
        "uniqueCallId":"1412749908.491",
        "callStartTime":"",
        "isQueueCall":false,
        "isClickToDialCall":false,
        "inbound":false,
        "status":"Hungup",
        "hangupCause":"BUSY"},"CallID":3,"Code":0}]},"seq":16,"Code":0}