summaryrefslogtreecommitdiff
path: root/res/ari/ari_model_validators.h
diff options
context:
space:
mode:
authorMatthew Jordan <mjordan@digium.com>2015-04-07 15:22:42 +0000
committerMatthew Jordan <mjordan@digium.com>2015-04-07 15:22:42 +0000
commitc2f50ba6f47e04c0457baa0bb5bf84b22a26d20b (patch)
treebef776975d16755afde6f2809bd5fae43fd7075a /res/ari/ari_model_validators.h
parentaf4d8027730fff35dba65eb2d7ade73ade4a4a8e (diff)
ARI: Add the ability to intercept hold and raise an event
For some applications - such as SLA - a phone pressing hold should not behave in the fashion that the Asterisk core would like it to. Instead, the hold action has some application specific behaviour associated with it - such as disconnecting the channel that initiated the hold; only playing MoH to channels in the bridge if the channels are of a particular type, etc. One way of accomplishing this is to use a framehook to intercept the hold/unhold frames, raise an event, and eat the frame. Tasty. This patch accomplishes that using a new dialplan function, HOLD_INTERCEPT. In addition, some general cleanup of raising hold/unhold Stasis messages was done, including removing some RAII_VAR usage. Review: https://reviewboard.asterisk.org/r/4549/ ASTERISK-24922 #close ........ Merged revisions 434216 from http://svn.asterisk.org/svn/asterisk/branches/13 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@434217 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'res/ari/ari_model_validators.h')
-rw-r--r--res/ari/ari_model_validators.h46
1 files changed, 46 insertions, 0 deletions
diff --git a/res/ari/ari_model_validators.h b/res/ari/ari_model_validators.h
index 947e28852..9cb1bc32c 100644
--- a/res/ari/ari_model_validators.h
+++ b/res/ari/ari_model_validators.h
@@ -809,6 +809,24 @@ int ast_ari_validate_channel_hangup_request(struct ast_json *json);
ari_validator ast_ari_validate_channel_hangup_request_fn(void);
/*!
+ * \brief Validator for ChannelHold.
+ *
+ * A channel initiated a media hold.
+ *
+ * \param json JSON object to validate.
+ * \returns True (non-zero) if valid.
+ * \returns False (zero) if invalid.
+ */
+int ast_ari_validate_channel_hold(struct ast_json *json);
+
+/*!
+ * \brief Function pointer to ast_ari_validate_channel_hold().
+ *
+ * See \ref ast_ari_model_validators.h for more details.
+ */
+ari_validator ast_ari_validate_channel_hold_fn(void);
+
+/*!
* \brief Validator for ChannelLeftBridge.
*
* Notification that a channel has left a bridge.
@@ -881,6 +899,24 @@ int ast_ari_validate_channel_talking_started(struct ast_json *json);
ari_validator ast_ari_validate_channel_talking_started_fn(void);
/*!
+ * \brief Validator for ChannelUnhold.
+ *
+ * A channel initiated a media unhold.
+ *
+ * \param json JSON object to validate.
+ * \returns True (non-zero) if valid.
+ * \returns False (zero) if invalid.
+ */
+int ast_ari_validate_channel_unhold(struct ast_json *json);
+
+/*!
+ * \brief Function pointer to ast_ari_validate_channel_unhold().
+ *
+ * See \ref ast_ari_model_validators.h for more details.
+ */
+ari_validator ast_ari_validate_channel_unhold_fn(void);
+
+/*!
* \brief Validator for ChannelUserevent.
*
* User-generated event with additional user-defined fields in the object.
@@ -1393,6 +1429,11 @@ ari_validator ast_ari_validate_application_fn(void);
* - cause: int
* - channel: Channel (required)
* - soft: boolean
+ * ChannelHold
+ * - type: string (required)
+ * - application: string (required)
+ * - timestamp: Date
+ * - channel: Channel (required)
* ChannelLeftBridge
* - type: string (required)
* - application: string (required)
@@ -1415,6 +1456,11 @@ ari_validator ast_ari_validate_application_fn(void);
* - application: string (required)
* - timestamp: Date
* - channel: Channel (required)
+ * ChannelUnhold
+ * - type: string (required)
+ * - application: string (required)
+ * - timestamp: Date
+ * - channel: Channel (required)
* ChannelUserevent
* - type: string (required)
* - application: string (required)