CompleteTransfer
This operation is part of the Voice API section of the Web Services API.
Overview
Completes a previously initiated two-step transfer.
| Request URL | /api/v2/me/calls/{id} | 
|---|---|
| HTTP method | POST | 
| Required features | api-voice | 
Parameters
| Parameter | Value | 
|---|---|
| operationName | CompleteTransfer | 
| consultCallUri | You can use this optional parameter to specify the consult call that should be used to complete the transfer. If not provided, Web Services determines the related call. | 
Sample 1
Request
POST api/v2/me/calls/01RCC3N118B1V0SL8O7GK2LAES00000N
{
  "operationName": "CompleteTransfer"
}HTTP response
{
  "statusCode": 0
}CometD notification
After completing the transfer the agent receives notification that the original call is released:
{  
   "data":{  
      "notificationType":"StatusChange",
      "call":{  
         "id":"01RCC3N118B1V0SL8O7GK2LAES00000M",
         "state":"Released",
         "callUuid":"01RCC3N118B1V0SL8O7GK2LAES00000M",
         "connId":"0071027198180016",
         "deviceUri":"http://127.0.0.1:8080/api/v2/devices/631608b3-ceb1-472b-ba05-2ae39555b0d1",
         "participants":[  
            {  
               "e164Number":"",
               "formattedPhoneNumber":"15001",
               "phoneNumber":"15001",
               "digits":"15001"
            }
         ],
         "dnis":"15001",
         "callType":"Internal",
         "capabilities":[  
         ],
         "duration":"280",
         "mute":"Off",
         "supervisorListeningIn":false,
         "monitoredUserMuted":false,
         "monitoring":false,
         "uri":"http://127.0.0.1:8080/api/v2/me/calls/01RCC3N118B1V0SL8O7GK2LAES00000M",
         "path":"/calls/01RCC3N118B1V0SL8O7GK2LAES00000M"
      },
      "phoneNumber":"15000",
      "extensions":{  
         "BusinessCall":0
      },
      "messageType":"CallStateChangeMessage"
   },
   "channel":"/v2/me/calls"
}and that the consult call is released as well:
{  
   "data":{  
      "notificationType":"StatusChange",
      "call":{  
         "id":"01RCC3N118B1V0SL8O7GK2LAES00000N",
         "state":"Released",
         "callUuid":"01RCC3N118B1V0SL8O7GK2LAES00000N",
         "connId":"0071027198180017",
         "deviceUri":"http://127.0.0.1:8080/api/v2/devices/631608b3-ceb1-472b-ba05-2ae39555b0d1",
         "participants":[  
            {  
               "e164Number":"",
               "formattedPhoneNumber":"15002",
               "phoneNumber":"15002",
               "digits":"15002"
            }
         ],
         "dnis":"15002",
         "callType":"Consult",
         "capabilities":[  
         ],
         "duration":"237",
         "mute":"Off",
         "supervisorListeningIn":false,
         "monitoredUserMuted":false,
         "monitoring":false,
         "uri":"http://127.0.0.1:8080/api/v2/me/calls/01RCC3N118B1V0SL8O7GK2LAES00000N",
         "path":"/calls/01RCC3N118B1V0SL8O7GK2LAES00000N"
      },
      "phoneNumber":"15000",
      "extensions":{  
         "BusinessCall":0
      },
      "messageType":"CallStateChangeMessage"
   },
   "channel":"/v2/me/calls"
}Sample 2
The following examples describe a full two-step transfer scenario from start to finish.
First, the agent receives a notification of the inbound call:
{  
   "data":{  
      "notificationType":"StatusChange",
      "call":{  
         "id":"011DJV5JI898NB2L04000VTAES000005",
         "state":"Ringing",
         "callUuid":"011DJV5JI898NB2L04000VTAES000005",
         "connId":"007102385535e005",
         "deviceUri":"http://127.0.0.1:8080/api/v2/devices/efe1ab32-53f9-43ce-b65e-5768c61f7d4a",
         "participants":[  
            {  
               "e164Number":"",
               "formattedPhoneNumber":"5000",
               "phoneNumber":"5000",
               "digits":"5000"
            }
         ],
         "dnis":"5005",
         "callType":"Internal",
         "capabilities":[  
            "UpdateUserData",
            "DeleteUserData",
            "AttachUserData",
            "DeleteUserDataPair",
            "Answer"
         ],
         "duration":"0",
         "mute":"Off",
         "supervisorListeningIn":false,
         "monitoredUserMuted":false,
         "uri":"http://127.0.0.1:8080/api/v2/me/calls/011DJV5JI898NB2L04000VTAES000005",
         "path":"/calls/011DJV5JI898NB2L04000VTAES000005"
      },
      "phoneNumber":"5005",
      "extensions":{  
         "WrapUpTime":0,
         "BusinessCall":0
      },
      "messageType":"CallStateChangeMessage"
   },
   "channel":"/v2/me/calls"
}The agent sends a request to answer the call:
POST api/v2/me/calls/011DJV5JI898NB2L04000VTAES000005
{
  "operationName": "Answer"
}The agent receives a notification that the call has been established:
{  
   "data":{  
      "notificationType":"StatusChange",
      "call":{  
         "id":"011DJV5JI898NB2L04000VTAES000005",
         "state":"Established",
         "callUuid":"011DJV5JI898NB2L04000VTAES000005",
         "connId":"007102385535e005",
         "deviceUri":"http://127.0.0.1:8080/api/v2/devices/efe1ab32-53f9-43ce-b65e-5768c61f7d4a",
         "participants":[  
            {  
               "e164Number":"",
               "formattedPhoneNumber":"5000",
               "phoneNumber":"5000",
               "digits":"5000"
            }
         ],
         "dnis":"5005",
         "callType":"Internal",
         "capabilities":[  
            "UpdateUserData",
            "SingleStepConference",
            "DeleteUserData",
            "Hangup",
            "SendDtmf",
            "Hold",
            "AttachUserData",
            "SingleStepTransfer",
            "InitiateConference",
            "DeleteUserDataPair",
            "InitiateTransfer"
         ],
         "duration":"10",
         "mute":"Off",
         "supervisorListeningIn":false,
         "monitoredUserMuted":false,
         "uri":"http://127.0.0.1:8080/api/v2/me/calls/011DJV5JI898NB2L04000VTAES000005",
         "path":"/calls/011DJV5JI898NB2L04000VTAES000005"
      },
      "phoneNumber":"5005",
      "extensions":{  
         "WrapUpTime":0,
         "BusinessCall":0
      },
      "messageType":"CallStateChangeMessage"
   },
   "channel":"/v2/me/calls"
}The agent initiates the two-step transfer:
POST api/v2/me/calls/011DJV5JI898NB2L04000VTAES000005
{
  "operationName": "InitiateTransfer",
  "destination": {
    "phoneNumber": "5001"
  }
}The agent receives notification that the first call has been held:
{  
   "data":{  
      "notificationType":"StatusChange",
      "call":{  
         "id":"011DJV5JI898NB2L04000VTAES000005",
         "state":"Held",
         "callUuid":"011DJV5JI898NB2L04000VTAES000005",
         "connId":"007102385535e005",
         "deviceUri":"http://127.0.0.1:8080/api/v2/devices/efe1ab32-53f9-43ce-b65e-5768c61f7d4a",
         "participants":[  
            {  
               "e164Number":"",
               "formattedPhoneNumber":"5000",
               "phoneNumber":"5000",
               "digits":"5000"
            }
         ],
         "dnis":"5005",
         "callType":"Internal",
         "capabilities":[  
            "UpdateUserData",
            "SingleStepConference",
            "DeleteUserData",
            "Hangup",
            "Retrieve",
            "AttachUserData",
            "SingleStepTransfer",
            "InitiateConference",
            "DeleteUserDataPair",
            "InitiateTransfer"
         ],
         "duration":"36",
         "mute":"Off",
         "supervisorListeningIn":false,
         "monitoredUserMuted":false,
         "uri":"http://127.0.0.1:8080/api/v2/me/calls/011DJV5JI898NB2L04000VTAES000005",
         "path":"/calls/011DJV5JI898NB2L04000VTAES000005"
      },
      "phoneNumber":"5005",
      "extensions":{  
         "WrapUpTime":0,
         "BusinessCall":0
      },
      "messageType":"CallStateChangeMessage"
   },
   "channel":"/v2/me/calls"
}and that the consult call is now dialing:
{  
   "data":{  
      "notificationType":"StatusChange",
      "call":{  
         "id":"011DJV5JI898NB2L04000VTAES000006",
         "state":"Dialing",
         "callUuid":"011DJV5JI898NB2L04000VTAES000006",
         "connId":"007102385535e006",
         "deviceUri":"http://127.0.0.1:8080/api/v2/devices/efe1ab32-53f9-43ce-b65e-5768c61f7d4a",
         "participants":[  
            {  
               "e164Number":"",
               "formattedPhoneNumber":"5001",
               "phoneNumber":"5001",
               "digits":"5001"
            }
         ],
         "dnis":"5001",
         "callType":"Consult",
         "capabilities":[  
            "UpdateUserData",
            "DeleteUserData",
            "Hangup",
            "SwapCalls",
            "CompleteTransfer",
            "SendDtmf",
            "AttachUserData",
            "DeleteUserDataPair"
         ],
         "parentCallUri":"http://127.0.0.1:8080/api/v2/me/calls/011DJV5JI898NB2L04000VTAES000005",
         "duration":"0",
         "mute":"Off",
         "supervisorListeningIn":false,
         "monitoredUserMuted":false,
         "uri":"http://127.0.0.1:8080/api/v2/me/calls/011DJV5JI898NB2L04000VTAES000006",
         "path":"/calls/011DJV5JI898NB2L04000VTAES000006"
      },
      "phoneNumber":"5005",
      "extensions":{  
         "WrapUpTime":0,
         "BusinessCall":0
      },
      "messageType":"CallStateChangeMessage"
   },
   "channel":"/v2/me/calls"
}To complete, the agent requests completion of the transfer:
POST api/v2/me/calls/011DJV5JI898NB2L04000VTAES000006
{
  "operationName": "CompleteTransfer"
}The agent then receives notification that original call has been released:
{  
   "data":{  
      "notificationType":"StatusChange",
      "call":{  
         "id":"011DJV5JI898NB2L04000VTAES000005",
         "state":"Released",
         "callUuid":"011DJV5JI898NB2L04000VTAES000005",
         "connId":"007102385535e005",
         "deviceUri":"http://127.0.0.1:8080/api/v2/devices/efe1ab32-53f9-43ce-b65e-5768c61f7d4a",
         "participants":[  
            {  
               "e164Number":"",
               "formattedPhoneNumber":"5000",
               "phoneNumber":"5000",
               "digits":"5000"
            }
         ],
         "dnis":"5005",
         "callType":"Internal",
         "capabilities":[  
         ],
         "duration":"48",
         "mute":"Off",
         "supervisorListeningIn":false,
         "monitoredUserMuted":false,
         "uri":"http://127.0.0.1:8080/api/v2/me/calls/011DJV5JI898NB2L04000VTAES000005",
         "path":"/calls/011DJV5JI898NB2L04000VTAES000005"
      },
      "phoneNumber":"5005",
      "extensions":{  
         "WrapUpTime":0,
         "BusinessCall":0
      },
      "messageType":"CallStateChangeMessage"
   },
   "channel":"/v2/me/calls"
}and the consult call has been released:
{  
   "data":{  
      "notificationType":"StatusChange",
      "call":{  
         "id":"011DJV5JI898NB2L04000VTAES000006",
         "state":"Released",
         "callUuid":"011DJV5JI898NB2L04000VTAES000006",
         "connId":"007102385535e006",
         "deviceUri":"http://127.0.0.1:8080/api/v2/devices/efe1ab32-53f9-43ce-b65e-5768c61f7d4a",
         "participants":[  
            {  
               "e164Number":"",
               "formattedPhoneNumber":"5001",
               "phoneNumber":"5001",
               "digits":"5001"
            }
         ],
         "dnis":"5001",
         "callType":"Consult",
         "capabilities":[  
         ],
         "parentCallUri":"http://127.0.0.1:8080/api/v2/me/calls/011DJV5JI898NB2L04000VTAES000005",
         "duration":"12",
         "mute":"Off",
         "supervisorListeningIn":false,
         "monitoredUserMuted":false,
         "uri":"http://127.0.0.1:8080/api/v2/me/calls/011DJV5JI898NB2L04000VTAES000006",
         "path":"/calls/011DJV5JI898NB2L04000VTAES000006"
      },
      "phoneNumber":"5005",
      "extensions":{  
         "WrapUpTime":0,
         "BusinessCall":0
      },
      "messageType":"CallStateChangeMessage"
   },
   "channel":"/v2/me/calls"
}