From 097d4a66f0a1cfbcb1588c90c3cc4014ac1a1363 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Tue, 21 Nov 2006 00:29:51 +0000 Subject: [PATCH] send 180 when there is no ringback specified on forked calls git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3428 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- src/switch_ivr.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/switch_ivr.c b/src/switch_ivr.c index 58eb40ec63..0987219ef9 100644 --- a/src/switch_ivr.c +++ b/src/switch_ivr.c @@ -2260,6 +2260,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_originate(switch_core_session_t *sess uint8_t to = 0; char *ringback_data = NULL; switch_codec_t *read_codec = NULL; + uint8_t sent_ring = 0; write_frame.data = fdata; @@ -2310,6 +2311,11 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_originate(switch_core_session_t *sess or_argc = switch_separate_string(data, '|', pipe_names, (sizeof(pipe_names) / sizeof(pipe_names[0]))); + if (caller_channel && or_argc > 1 && !ringback_data) { + switch_channel_ringback(caller_channel); + sent_ring = 1; + } + for (r = 0; r < or_argc; r++) { memset(peer_names, 0, sizeof(peer_names)); peer_session = NULL; @@ -2330,6 +2336,11 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_originate(switch_core_session_t *sess and_argc = switch_separate_string(pipe_names[r], '&', peer_names, (sizeof(peer_names) / sizeof(peer_names[0]))); + if (caller_channel && !sent_ring && and_argc > 1 && !ringback_data) { + switch_channel_ringback(caller_channel); + sent_ring = 1; + } + for (i = 0; i < and_argc; i++) { chan_type = peer_names[i];