diff options
author | kpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b> | 2005-09-14 02:18:45 +0000 |
---|---|---|
committer | kpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b> | 2005-09-14 02:18:45 +0000 |
commit | e9d6e39066b80ab24349592829822a1f05303132 (patch) | |
tree | 01934fc5d29ca0cb16ad0d964c40580302346adb /channels/chan_iax2.c | |
parent | 65fadeecb14fad6818c832d3b5abfadf9687babb (diff) |
ensure that Manager hold/unhold events are generated even for non-bridged channels (issue #4594)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@6585 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels/chan_iax2.c')
-rwxr-xr-x | channels/chan_iax2.c | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c index 1649d663a..22ae30b11 100755 --- a/channels/chan_iax2.c +++ b/channels/chan_iax2.c @@ -6592,6 +6592,15 @@ retryowner: break; case IAX_COMMAND_QUELCH: if (iaxs[fr.callno]->state & IAX_STATE_STARTED) { + /* Generate Manager Hold event, if necessary*/ + if (iaxs[fr.callno]->owner) { + manager_event(EVENT_FLAG_CALL, "Hold", + "Channel: %s\r\n" + "Uniqueid: %s\r\n", + iaxs[fr.callno]->owner->name, + iaxs[fr.callno]->owner->uniqueid); + } + ast_set_flag(iaxs[fr.callno], IAX_QUELCH); if (ies.musiconhold) { if (iaxs[fr.callno]->owner && @@ -6600,8 +6609,17 @@ retryowner: } } break; - case IAX_COMMAND_UNQUELCH: + case IAX_COMMAND_UNQUELCH: if (iaxs[fr.callno]->state & IAX_STATE_STARTED) { + /* Generate Manager Unhold event, if necessary*/ + if (iaxs[fr.callno]->owner && ast_test_flag(iaxs[fr.callno], IAX_QUELCH)) { + manager_event(EVENT_FLAG_CALL, "Unhold", + "Channel: %s\r\n" + "Uniqueid: %s\r\n", + iaxs[fr.callno]->owner->name, + iaxs[fr.callno]->owner->uniqueid); + } + ast_clear_flag(iaxs[fr.callno], IAX_QUELCH); if (iaxs[fr.callno]->owner && ast_bridged_channel(iaxs[fr.callno]->owner)) |