diff options
author | Mark Michelson <mmichelson@digium.com> | 2015-07-28 17:05:49 -0500 |
---|---|---|
committer | Gerrit Code Review <gerrit2@gerrit.digium.api> | 2015-07-28 17:05:49 -0500 |
commit | c9099d06cceb6934c731a56e7e8f57759c43aaca (patch) | |
tree | 25302fb8035966606bf25fd9ab56995bf3ec1ee7 | |
parent | f78a4b52b8ed7b5b367c3465652a7ce98fe9175d (diff) | |
parent | 8458b8d441c2f4143ff135163ff3da4f88fe14c8 (diff) |
Merge "holding_bridge: ensure moh participants get frames" into 13
-rw-r--r-- | bridges/bridge_holding.c | 6 | ||||
-rw-r--r-- | main/channel.c | 2 |
2 files changed, 6 insertions, 2 deletions
diff --git a/bridges/bridge_holding.c b/bridges/bridge_holding.c index 2fd79d09a..0ef5601c1 100644 --- a/bridges/bridge_holding.c +++ b/bridges/bridge_holding.c @@ -205,7 +205,11 @@ static void participant_entertainment_start(struct ast_bridge_channel *bridge_ch switch(hc->idle_mode) { case IDLE_MODE_MOH: moh_class = ast_bridge_channel_get_role_option(bridge_channel, "holding_participant", "moh_class"); - ast_moh_start(bridge_channel->chan, moh_class, NULL); + if (ast_moh_start(bridge_channel->chan, moh_class, NULL)) { + ast_log(LOG_WARNING, "Failed to start moh, starting silence generator instead\n"); + hc->idle_mode = IDLE_MODE_SILENCE; + hc->silence_generator = ast_channel_start_silence_generator(bridge_channel->chan); + } break; case IDLE_MODE_RINGING: ast_indicate(bridge_channel->chan, AST_CONTROL_RINGING); diff --git a/main/channel.c b/main/channel.c index 57523d71a..3f6e0eef2 100644 --- a/main/channel.c +++ b/main/channel.c @@ -7404,7 +7404,7 @@ int ast_moh_start(struct ast_channel *chan, const char *mclass, const char *inte ast_verb(3, "Music class %s requested but no musiconhold loaded.\n", mclass ? mclass : (interpclass ? interpclass : "default")); - return 0; + return -1; } void ast_moh_stop(struct ast_channel *chan) |