diff options
author | Jason Parker <jparker@digium.com> | 2013-07-01 18:56:21 +0000 |
---|---|---|
committer | Jason Parker <jparker@digium.com> | 2013-07-01 18:56:21 +0000 |
commit | f820d24db14e657a4c0fc7c6d4c1c73ef4c8f86a (patch) | |
tree | ec2cdb3992f9101c02bfa56b6f4edd9555e6ab98 /res/stasis | |
parent | f41faf0b7dc4c7bb683f9a81b4c09dcfeeef2119 (diff) |
ARI: Implement channel hold/unhold.
This puts the channel on hold (rather than queueing a frame from the channel).
(closes issue ASTERISK-21619)
Review: https://reviewboard.asterisk.org/r/2647/
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393332 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'res/stasis')
-rw-r--r-- | res/stasis/control.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/res/stasis/control.c b/res/stasis/control.c index e05084b88..2bba842ed 100644 --- a/res/stasis/control.c +++ b/res/stasis/control.c @@ -207,6 +207,32 @@ int stasis_app_control_continue(struct stasis_app_control *control, const char * return 0; } +static void *app_control_hold(struct stasis_app_control *control, + struct ast_channel *chan, void *data) +{ + ast_indicate(control->channel, AST_CONTROL_HOLD); + + return NULL; +} + +void stasis_app_control_hold(struct stasis_app_control *control) +{ + stasis_app_send_command_async(control, app_control_hold, NULL); +} + +static void *app_control_unhold(struct stasis_app_control *control, + struct ast_channel *chan, void *data) +{ + ast_indicate(control->channel, AST_CONTROL_UNHOLD); + + return NULL; +} + +void stasis_app_control_unhold(struct stasis_app_control *control) +{ + stasis_app_send_command_async(control, app_control_unhold, NULL); +} + struct ast_channel_snapshot *stasis_app_control_get_snapshot( const struct stasis_app_control *control) { |