FS-3675 --resolve incorrect fix in 5dd463532c
This commit is contained in:
parent
6fc559effa
commit
3a121a1bff
|
@ -3452,45 +3452,42 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_originate(switch_core_session_t *sess
|
||||||
if (status == SWITCH_STATUS_SUCCESS) {
|
if (status == SWITCH_STATUS_SUCCESS) {
|
||||||
goto outer_for;
|
goto outer_for;
|
||||||
} else {
|
} else {
|
||||||
int ok = 0;
|
int ok = 1;
|
||||||
|
|
||||||
if (fail_on_single_reject && check_reject) {
|
if (fail_on_single_reject && check_reject && !switch_true(fail_on_single_reject_var)) {
|
||||||
|
for (i = 0; i < and_argc; i++) {
|
||||||
if (!switch_true(fail_on_single_reject_var)) {
|
switch_channel_t *pchannel;
|
||||||
ok = 1;
|
const char *cause_str;
|
||||||
|
|
||||||
for (i = 0; i < and_argc; i++) {
|
|
||||||
switch_channel_t *pchannel;
|
|
||||||
const char *cause_str;
|
|
||||||
|
|
||||||
if (!originate_status[i].peer_session) {
|
if (!originate_status[i].peer_session) {
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
pchannel = switch_core_session_get_channel(originate_status[i].peer_session);
|
||||||
|
wait_for_cause(pchannel);
|
||||||
|
|
||||||
|
if (switch_channel_down(pchannel)) {
|
||||||
|
int neg, pos;
|
||||||
|
|
||||||
|
cause_str = switch_channel_cause2str(switch_channel_get_cause(pchannel));
|
||||||
|
|
||||||
|
neg = *fail_on_single_reject_var == '!';
|
||||||
|
pos = !!switch_stristr(cause_str, fail_on_single_reject_var);
|
||||||
|
|
||||||
|
if (neg) {
|
||||||
|
pos = !pos;
|
||||||
}
|
}
|
||||||
pchannel = switch_core_session_get_channel(originate_status[i].peer_session);
|
|
||||||
wait_for_cause(pchannel);
|
|
||||||
if (switch_channel_down(pchannel)) {
|
|
||||||
int neg, pos;
|
|
||||||
|
|
||||||
cause_str = switch_channel_cause2str(switch_channel_get_cause(pchannel));
|
|
||||||
|
|
||||||
neg = *fail_on_single_reject_var == '!';
|
|
||||||
pos = !!switch_stristr(cause_str, fail_on_single_reject_var);
|
|
||||||
|
|
||||||
if (neg) {
|
|
||||||
pos = !pos;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (pos) {
|
if (pos) {
|
||||||
ok = 0;
|
ok = 0;
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ok) {
|
if (!ok) {
|
||||||
goto outer_for;
|
goto outer_for;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue