[Home]

Summary:ASTERISK-24703: ARI: Add the ability to "transfer" (redirect) a channel
Reporter:Matt Jordan (mjordan)Labels:
Date Opened:2015-01-18 21:05:07.000-0600Date Closed:2015-02-12 14:34:44.000-0600
Priority:MajorRegression?
Status:Closed/CompleteComponents:Resources/res_ari_channels
Versions:13.1.0 Frequency of
Occurrence
Related
Issues:
is related toASTERISK-24015 app_transfer fails with PJSIP channels
Environment:Attachments:( 0) ASTERISK-24703-13.diff
Description:The attached patch adds the ability to "transfer" (if answered) or forward (if not answered) a channel to another destination. This is identical to the {{Transfer}} dialplan application.

The Swagger JSON for the new operation is shown below:

{code}
{
"path": "/channels/{channelId}/redirect",
"description": "Inform the channel that it should redirect itself to a different location. Note that this will almost certainly cause the channel to exit the application.",
"operations": [
{
"httpMethod": "POST",
"summary": "Redirect the channel to a different location.",
"nickname": "redirect",
"responseClass": "void",
"parameters": [
{
"name": "channelId",
"description": "Channel's id",
"paramType": "path",
"required": true,
"allowMultiple": false,
"dataType": "string"
},
{
"name": "endpoint",
"description": "The endpoint to redirect the channel to",
"paramType": "query",
"required": true,
"allowMultiple": false,
"dataType": "string"
}
],
"errorResponses": [
{
"code": 400,
"reason": "Endpoint parameter not provided"
},
{
"code": 404,
"reason": "Channel or endpoint not found"
},
{
"code": 409,
"reason": "Channel not in a Stasis application"
},
{
"code": 422,
"reason": "Endpoint is not the same type as the channel"
}
]
}
]
},
{code}

Note that in the attached patch, some bugs in the PJSIP handling of the channel transfer callback were fixed, along with some better debug. A related bug is linked to this issue as a result.
Comments: