summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorDavid M. Lee <dlee@digium.com>2013-08-23 17:19:02 +0000
committerDavid M. Lee <dlee@digium.com>2013-08-23 17:19:02 +0000
commit7a581537e8baaff143254415d782a492dec97a62 (patch)
treebe5296efe1ee7f85581b3e0c69c8ad6be252eb00 /include
parent9f4849724fce1a780771e11bd5273eac2b4f61b8 (diff)
ARI: Correct error codes for bridge operations
This patch adds error checking to ARI bridge operations, when adding/removing channels to/from bridges. In general, the error codes fall out as follows: * Bridge not found - 404 Not Found * Bridge not in Stasis - 409 Conflict * Channel not found - 400 Bad Request * Channel not in Stasis - 422 Unprocessable Entity * Channel not in this bridge (on remove) - 422 Unprocessable Entity (closes issue ASTERISK-22036) Review: https://reviewboard.asterisk.org/r/2769/ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@397565 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'include')
-rw-r--r--include/asterisk/stasis_app.h18
-rw-r--r--include/asterisk/stasis_app_impl.h10
2 files changed, 16 insertions, 12 deletions
diff --git a/include/asterisk/stasis_app.h b/include/asterisk/stasis_app.h
index 33e5c2632..528c48030 100644
--- a/include/asterisk/stasis_app.h
+++ b/include/asterisk/stasis_app.h
@@ -361,8 +361,10 @@ int stasis_app_bridge_moh_stop(
*
* \param control Control whose channel should be added to the bridge
* \param bridge Pointer to the bridge
+ * \return non-zero on failure
+ * \return zero on success
*/
-void stasis_app_control_add_channel_to_bridge(
+int stasis_app_control_add_channel_to_bridge(
struct stasis_app_control *control, struct ast_bridge *bridge);
/*!
@@ -370,11 +372,23 @@ void stasis_app_control_add_channel_to_bridge(
*
* \param control Control whose channel should be removed from the bridge
* \param bridge Pointer to the bridge
+ * \return non-zero on failure
+ * \return zero on success
*/
-void stasis_app_control_remove_channel_from_bridge(
+int stasis_app_control_remove_channel_from_bridge(
struct stasis_app_control *control, struct ast_bridge *bridge);
/*!
+ * \since 12
+ * \brief Gets the bridge currently associated with a control object.
+ *
+ * \param control Control object for the channel to query.
+ * \return Associated \ref ast_bridge.
+ * \return \c NULL if not associated with a bridge.
+ */
+struct ast_bridge *stasis_app_get_bridge(struct stasis_app_control *control);
+
+/*!
* \brief Destroy the bridge.
*
* \param bridge_id Uniqueid of bridge to be destroyed
diff --git a/include/asterisk/stasis_app_impl.h b/include/asterisk/stasis_app_impl.h
index e9b93a84a..d4b467756 100644
--- a/include/asterisk/stasis_app_impl.h
+++ b/include/asterisk/stasis_app_impl.h
@@ -85,14 +85,4 @@ void *stasis_app_send_command(struct stasis_app_control *control,
int stasis_app_send_command_async(struct stasis_app_control *control,
stasis_app_command_cb command, void *data);
-/*!
- * \since 12
- * \brief Gets the bridge currently associated with a control object.
- *
- * \param control Control object for the channel to query.
- * \return Associated \ref ast_bridge.
- * \return \c NULL if not associated with a bridge.
- */
-struct ast_bridge *stasis_app_get_bridge(struct stasis_app_control *control);
-
#endif /* _ASTERISK_RES_STASIS_H */