ARI: Add subscription support

This patch adds an /applications API to ARI, allowing explicit management of
Stasis applications.

 * GET /applications - list current applications
 * GET /applications/{applicationName} - get details of a specific application
 * POST /applications/{applicationName}/subscription - explicitly subscribe to
   a channel, bridge or endpoint
 * DELETE /applications/{applicationName}/subscription - explicitly unsubscribe
   from a channel, bridge or endpoint

Subscriptions work by a reference counting mechanism: if you subscript to an
event source X number of times, you must unsubscribe X number of times to stop
receiveing events for that event source.

Review: https://reviewboard.asterisk.org/r/2862

(issue ASTERISK-22451)
Reported by: Matt Jordan
........

Merged revisions 400522 from http://svn.asterisk.org/svn/asterisk/branches/12


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@400523 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Matthew Jordan
2013-10-04 16:01:48 +00:00
parent b52c972b17
commit 8d7873b836
21 changed files with 1722 additions and 15 deletions

View File

@@ -13,7 +13,7 @@
"operations": [
{
"httpMethod": "GET",
"summary": "List all endoints.",
"summary": "List all endpoints.",
"nickname": "getEndpoints",
"responseClass": "List[Endpoint]"
}

View File

@@ -293,6 +293,11 @@
"required": true,
"type": "Channel",
"description": "The channel that signaled the user event."
},
"userevent": {
"required": true,
"type": "object",
"description": "Custom Userevent data"
}
}
},
@@ -338,6 +343,17 @@
}
}
},
"EndpointStateChange": {
"id": "EndpointStateChange",
"extends": "Event",
"description": "Endpoint state changed.",
"properties": {
"endpoint": {
"required": true,
"type": "Endpoint"
}
}
},
"StasisEnd": {
"id": "StasisEnd",
"extends": "Event",