Merge "res_stasis: Add ability to switch applications." into 16

This commit is contained in:
Friendly Automation
2019-03-08 11:40:49 -06:00
committed by Gerrit Code Review
12 changed files with 703 additions and 14 deletions

View File

@@ -515,6 +515,54 @@
}
]
},
{
"path": "/channels/{channelId}/move",
"description": "Move the channel from one Stasis application to another.",
"operations": [
{
"httpMethod": "POST",
"summary": "Move the channel from one Stasis application to another.",
"nickname": "move",
"responseClass": "void",
"parameters": [
{
"name": "channelId",
"description": "Channel's id",
"paramType": "path",
"required": true,
"allowMultiple": false,
"dataType": "string"
},
{
"name": "app",
"description": "The channel will be passed to this Stasis application.",
"paramType": "query",
"required": true,
"allowMultiple": false,
"dataType": "string"
},
{
"name": "appArgs",
"description": "The application arguments to pass to the Stasis application provided by 'app'.",
"paramType": "query",
"required": false,
"allowMultiple": false,
"dataType": "string"
}
],
"errorResponses": [
{
"code": "404",
"reason": "Channel not found"
},
{
"code": "409",
"reason": "Channel not in a Stasis application"
}
]
}
]
},
{
"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.",

View File

@@ -159,6 +159,7 @@
"RecordingStarted",
"RecordingFinished",
"RecordingFailed",
"ApplicationMoveFailed",
"ApplicationReplaced",
"BridgeCreated",
"BridgeDestroyed",
@@ -335,6 +336,25 @@
}
}
},
"ApplicationMoveFailed": {
"id": "ApplicationMoveFailed",
"description": "Notification that trying to move a channel to another Stasis application failed.",
"properties": {
"channel": {
"required": true,
"type": "Channel"
},
"destination": {
"required": true,
"type": "string"
},
"args": {
"required": true,
"type": "List[string]",
"description": "Arguments to the application"
}
}
},
"ApplicationReplaced": {
"id": "ApplicationReplaced",
"description": "Notification that another WebSocket has taken over for an application.\n\nAn application may only be subscribed to by a single WebSocket at a time. If multiple WebSockets attempt to subscribe to the same application, the newer WebSocket wins, and the older one receives this event.",