DataFlex / Plivo REST API / Transfer a call
Back to Collection Items
Use ChilkatAx-win32.pkg
Procedure Test
Handle hoHttp
Boolean iSuccess
Variant vJson
Handle hoJson
Variant vResp
Handle hoResp
String sTemp1
Integer iTemp1
Boolean bTemp1
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
Get Create (RefClass(cComChilkatHttp)) To hoHttp
If (Not(IsComObjectCreated(hoHttp))) Begin
Send CreateComObject of hoHttp
End
Set ComBasicAuth Of hoHttp To True
Set ComLogin Of hoHttp To "{{auth_id}}"
Set ComPassword Of hoHttp To "password"
// Use this online tool to generate code from sample JSON: Generate Code to Create JSON
// The following JSON is sent in the request body.
// {
// "legs": "both",
// "aleg_url": "http://aleg.url",
// "aleg_method": "GET",
// "bleg_url": "http://bleg.url",
// "bleg_method": "GET"
// }
Get Create (RefClass(cComChilkatJsonObject)) To hoJson
If (Not(IsComObjectCreated(hoJson))) Begin
Send CreateComObject of hoJson
End
Get ComUpdateString Of hoJson "legs" "both" To iSuccess
Get ComUpdateString Of hoJson "aleg_url" "http://aleg.url" To iSuccess
Get ComUpdateString Of hoJson "aleg_method" "GET" To iSuccess
Get ComUpdateString Of hoJson "bleg_url" "http://bleg.url" To iSuccess
Get ComUpdateString Of hoJson "bleg_method" "GET" To iSuccess
Get pvComObject of hoJson to vJson
Get ComPostJson3 Of hoHttp "https://api.plivo.com/v1/Account/<auth_id>/Call/{call_uuid}/" "application/json" vJson To vResp
If (IsComObject(vResp)) Begin
Get Create (RefClass(cComChilkatHttpResponse)) To hoResp
Set pvComObject Of hoResp To vResp
End
Get ComLastMethodSuccess Of hoHttp To bTemp1
If (bTemp1 = False) Begin
Get ComLastErrorText Of hoHttp To sTemp1
Showln sTemp1
Procedure_Return
End
Get ComStatusCode Of hoResp To iTemp1
Showln iTemp1
Get ComBodyStr Of hoResp To sTemp1
Showln sTemp1
Send Destroy of hoResp
End_Procedure
Curl Command
curl -X POST
-u '{{auth_id}}:password'
-d '{
"legs":"both",
"aleg_url":"http://aleg.url",
"aleg_method":"GET",
"bleg_url":"http://bleg.url",
"bleg_method":"GET"
}'
https://api.plivo.com/v1/Account/<auth_id>/Call/{call_uuid}/
Postman Collection Item JSON
{
"name": "Transfer a call",
"request": {
"method": "POST",
"header": [
],
"body": {
"mode": "raw",
"raw": "{\n \"legs\":\"both\",\n \"aleg_url\":\"http://aleg.url\",\n \"aleg_method\":\"GET\",\n \"bleg_url\":\"http://bleg.url\",\n \"bleg_method\":\"GET\"\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "https://api.plivo.com/v1/Account/{{auth_id}}/Call/{call_uuid}/",
"protocol": "https",
"host": [
"api",
"plivo",
"com"
],
"path": [
"v1",
"Account",
"{{auth_id}}",
"Call",
"{call_uuid}",
""
]
},
"description": "This API enables an in-progress or ongoing call to fetch and execute a XML from a different URL. If the call (the A leg) is in a Dial, you can also transfer the other party (the B leg) at the same time or only transfer the B leg to an URL. This is useful for many applications where you want to asynchronously change the behavior of a live call. For example, you can play music while the call is on hold, queue calls, transfer calls etc.\n\nBelow is the list of arguments that can be passed in this API request, more information can be found [here](https://www.plivo.com/docs/voice/api/call#transfer-a-call)\n\n| Arguments | Description | Required/Conditional/Optional |\n| :--- | :----: | ---: |\n| legs | Valid values are aleg, bleg or both. aleg will transfer calluuid. bleg will transfer the bridged leg of calluuid. both will transfer both aleg and bleg.| Optional |\n| aleg_url | The URL to fetch XML from for the aleg. This need to be specified in case the legs parameter is either aleg or both. | Optional |\n| aleg_method | The HTTP verb to invoke the aleg_url. This defaults to POST. | Optional |\n| bleg_url | The HTTP verb to The URL to fetch XML from for the bleg. This need to be specified in case the legs parameter is either bleg or both the aleg_url. This defaults to POST. | Optional |\n| bleg_method | The HTTP verb to invoke the bleg_url. This defaults to POST.| Optional |"
},
"response": [
{
"name": "Transfer a call",
"originalRequest": {
"method": "GET",
"header": [
],
"url": {
"raw": "https://api.plivo.com/v1/Account/{{auth_id}}/Call/{call_uuid}/",
"protocol": "https",
"host": [
"api",
"plivo",
"com"
],
"path": [
"v1",
"Account",
"{{auth_id}}",
"Call",
"{call_uuid}",
""
]
}
},
"code": 200,
"_postman_previewlanguage": "json",
"header": [
],
"cookie": [
],
"body": "{\n \"message\": \"call transfered\",\n \"api_id\": \"08c94608-58bd-11e1-86da-adf28403fe48\"\n}"
}
]
}