summaryrefslogtreecommitdiff
path: root/include/asterisk
diff options
context:
space:
mode:
Diffstat (limited to 'include/asterisk')
-rw-r--r--include/asterisk/channel.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/include/asterisk/channel.h b/include/asterisk/channel.h
index 78fda54b9..c9156daf1 100644
--- a/include/asterisk/channel.h
+++ b/include/asterisk/channel.h
@@ -1015,6 +1015,15 @@ enum {
* instead of actually hanging up.
*/
AST_SOFTHANGUP_UNBRIDGE = (1 << 6),
+
+
+ /*!
+ * \brief All softhangup flags.
+ *
+ * This can be used as an argument to ast_channel_softhangup_clear
+ * to clear all softhangup flags from a channel.
+ */
+ AST_SOFTHANGUP_ALL = (0xFFFFFFFF)
};
@@ -1396,6 +1405,20 @@ int ast_softhangup(struct ast_channel *chan, int reason);
int ast_softhangup_nolock(struct ast_channel *chan, int reason);
/*!
+ * \brief Clear a set of softhangup flags from a channel
+ *
+ * Never clear a softhangup flag from a channel directly. Instead,
+ * use this function. This ensures that all aspects of the softhangup
+ * process are aborted.
+ *
+ * \param chan the channel to clear the flag on
+ * \param flag the flag or flags to clear
+ *
+ * \return Nothing.
+ */
+void ast_channel_clear_softhangup(struct ast_channel *chan, int flag);
+
+/*!
* \brief Set the source of the hangup in this channel and it's bridge
*
* \param chan channel to set the field on