mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-04-29 13:43:07 +00:00
pita bypass media transfer fiasco fix
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@14983 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
parent
b447cfab0e
commit
94e7412db6
@ -1938,7 +1938,13 @@ static void *SWITCH_THREAD_FUNC bcast_thread(switch_thread_t *thread, void *obj)
|
|||||||
{
|
{
|
||||||
bch_t *bch = (bch_t *) obj;
|
bch_t *bch = (bch_t *) obj;
|
||||||
|
|
||||||
|
if (!bch->session) {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch_core_session_read_lock(bch->session);
|
||||||
switch_ivr_broadcast(switch_core_session_get_uuid(bch->session), bch->app, bch->flags);
|
switch_ivr_broadcast(switch_core_session_get_uuid(bch->session), bch->app, bch->flags);
|
||||||
|
switch_core_session_rwunlock(bch->session);
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
@ -2031,8 +2037,6 @@ static switch_status_t meta_on_dtmf(switch_core_session_t *session, const switch
|
|||||||
} else {
|
} else {
|
||||||
flags |= SMF_ECHO_ALEG;
|
flags |= SMF_ECHO_ALEG;
|
||||||
}
|
}
|
||||||
} else if ((md->sr[direction].map[dval].bind_flags & SBF_EXEC_INLINE)) {
|
|
||||||
flags |= SMF_EXEC_INLINE;
|
|
||||||
} else if ((md->sr[direction].map[dval].bind_flags & SBF_EXEC_ALEG)) {
|
} else if ((md->sr[direction].map[dval].bind_flags & SBF_EXEC_ALEG)) {
|
||||||
flags |= SMF_ECHO_ALEG;
|
flags |= SMF_ECHO_ALEG;
|
||||||
} else if ((md->sr[direction].map[dval].bind_flags & SBF_EXEC_BLEG)) {
|
} else if ((md->sr[direction].map[dval].bind_flags & SBF_EXEC_BLEG)) {
|
||||||
@ -2041,6 +2045,10 @@ static switch_status_t meta_on_dtmf(switch_core_session_t *session, const switch
|
|||||||
flags |= SMF_ECHO_ALEG;
|
flags |= SMF_ECHO_ALEG;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ((md->sr[direction].map[dval].bind_flags & SBF_EXEC_INLINE)) {
|
||||||
|
flags |= SMF_EXEC_INLINE;
|
||||||
|
}
|
||||||
|
|
||||||
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, "%s Processing meta digit '%c' [%s]\n",
|
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, "%s Processing meta digit '%c' [%s]\n",
|
||||||
switch_channel_get_name(channel), dtmf->digit, md->sr[direction].map[dval].app);
|
switch_channel_get_name(channel), dtmf->digit, md->sr[direction].map[dval].app);
|
||||||
|
|
||||||
@ -2673,6 +2681,10 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_broadcast(const char *uuid, const cha
|
|||||||
|
|
||||||
if ((flags & SMF_ECHO_BLEG) && (other_uuid = switch_channel_get_variable(channel, SWITCH_SIGNAL_BOND_VARIABLE))
|
if ((flags & SMF_ECHO_BLEG) && (other_uuid = switch_channel_get_variable(channel, SWITCH_SIGNAL_BOND_VARIABLE))
|
||||||
&& (other_session = switch_core_session_locate(other_uuid))) {
|
&& (other_session = switch_core_session_locate(other_uuid))) {
|
||||||
|
if ((flags & SMF_EXEC_INLINE)) {
|
||||||
|
switch_core_session_execute_application(other_session, app, path);
|
||||||
|
nomedia = 0;
|
||||||
|
} else {
|
||||||
if (switch_event_create(&event, SWITCH_EVENT_COMMAND) == SWITCH_STATUS_SUCCESS) {
|
if (switch_event_create(&event, SWITCH_EVENT_COMMAND) == SWITCH_STATUS_SUCCESS) {
|
||||||
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "call-command", "execute");
|
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "call-command", "execute");
|
||||||
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "execute-app-name", app);
|
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "execute-app-name", app);
|
||||||
@ -2682,13 +2694,11 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_broadcast(const char *uuid, const cha
|
|||||||
if ((flags & SMF_LOOP)) {
|
if ((flags & SMF_LOOP)) {
|
||||||
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "loops", "%d", -1);
|
switch_event_add_header(event, SWITCH_STACK_BOTTOM, "loops", "%d", -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((flags & SMF_HOLD_BLEG)) {
|
if ((flags & SMF_HOLD_BLEG)) {
|
||||||
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "hold-bleg", "true");
|
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "hold-bleg", "true");
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((flags & SMF_EXEC_INLINE)) {
|
|
||||||
switch_core_session_execute_application(other_session, app, path);
|
|
||||||
} else {
|
|
||||||
switch_core_session_queue_private_event(other_session, &event);
|
switch_core_session_queue_private_event(other_session, &event);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2702,7 +2712,12 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_broadcast(const char *uuid, const cha
|
|||||||
nomedia = 0;
|
nomedia = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if ((flags & SMF_ECHO_ALEG)) {
|
if ((flags & SMF_ECHO_ALEG)) {
|
||||||
|
if ((flags & SMF_EXEC_INLINE)) {
|
||||||
|
switch_core_session_execute_application(session, app, path);
|
||||||
|
nomedia = 0;
|
||||||
|
} else {
|
||||||
if (switch_event_create(&event, SWITCH_EVENT_COMMAND) == SWITCH_STATUS_SUCCESS) {
|
if (switch_event_create(&event, SWITCH_EVENT_COMMAND) == SWITCH_STATUS_SUCCESS) {
|
||||||
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "call-command", "execute");
|
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "call-command", "execute");
|
||||||
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "execute-app-name", app);
|
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "execute-app-name", app);
|
||||||
@ -2715,8 +2730,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_broadcast(const char *uuid, const cha
|
|||||||
if ((flags & SMF_HOLD_BLEG)) {
|
if ((flags & SMF_HOLD_BLEG)) {
|
||||||
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "hold-bleg", "true");
|
switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "hold-bleg", "true");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
switch_core_session_queue_private_event(session, &event);
|
|
||||||
}
|
}
|
||||||
master = session;
|
master = session;
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
;(setq cperl-hairy t)
|
;(setq cperl-hairy t)
|
||||||
(global-unset-key "\C-h")
|
(global-unset-key "\C-h")
|
||||||
(global-set-key "\C-h" 'delete-backward-char)
|
(global-set-key "\C-h" 'delete-backward-char)
|
||||||
(load "/usr/share/emacs/site-lisp/rng-auto.el")
|
;(load "/usr/share/emacs/site-lisp/rng-auto.el")
|
||||||
|
|
||||||
(require 'cc-mode)
|
(require 'cc-mode)
|
||||||
(defun my-build-tab-stop-list (width)
|
(defun my-build-tab-stop-list (width)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user