diff options
author | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2003-09-30 14:11:17 +0000 |
---|---|---|
committer | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2003-09-30 14:11:17 +0000 |
commit | 0ff38e8c0320cafc703eaf36509951dc454e6cec (patch) | |
tree | 12ab2c1adad84b9d6002e7ad16a630928d8762bd /channels | |
parent | b1df3b23bf9ffb7e4c19d0c6aac94b230ef559dc (diff) |
Minor IAX enhancments to support MusicOnHold
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@1588 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels')
-rwxr-xr-x | channels/chan_iax2.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c index 76957798d..4de1bbfbb 100755 --- a/channels/chan_iax2.c +++ b/channels/chan_iax2.c @@ -32,6 +32,7 @@ #include <asterisk/callerid.h> #include <asterisk/app.h> #include <asterisk/astdb.h> +#include <asterisk/musiconhold.h> #include <arpa/inet.h> #include <sys/socket.h> #include <netinet/in.h> @@ -3989,12 +3990,22 @@ retryowner: /* Do nothing */ break; case IAX_COMMAND_QUELCH: - if (iaxs[fr.callno]->state & IAX_STATE_STARTED) + if (iaxs[fr.callno]->state & IAX_STATE_STARTED) { iaxs[fr.callno]->quelch = 1; + if (ies.musiconhold) { + if (iaxs[fr.callno]->owner && + iaxs[fr.callno]->owner->bridge) + ast_moh_start(iaxs[fr.callno]->owner->bridge, NULL); + } + } break; case IAX_COMMAND_UNQUELCH: - if (iaxs[fr.callno]->state & IAX_STATE_STARTED) + if (iaxs[fr.callno]->state & IAX_STATE_STARTED) { iaxs[fr.callno]->quelch = 0; + if (iaxs[fr.callno]->owner && + iaxs[fr.callno]->owner->bridge) + ast_moh_stop(iaxs[fr.callno]->owner->bridge); + } break; case IAX_COMMAND_TXACC: if (iaxs[fr.callno]->transferring == TRANSFER_BEGIN) { |