}
}
-static uint8_t check_channel_status(originate_global_t *oglobals, originate_status_t *originate_status, uint32_t len)
+static uint8_t check_channel_status(originate_global_t *oglobals, originate_status_t *originate_status, uint32_t len, switch_call_cause_t *force_reason)
{
uint32_t i;
end:
if (rval == 0 && pickups) {
+ *force_reason = SWITCH_CAUSE_NO_ANSWER;
for (i = 0; i < len; i++) {
if (originate_status[i].peer_channel && switch_channel_test_flag(originate_status[i].peer_channel, CF_PICKUP) &&
switch_channel_up(originate_status[i].peer_channel)) {
}
while ((!caller_channel || switch_channel_ready(caller_channel) || switch_channel_test_flag(caller_channel, CF_XFER_ZOMBIE)) &&
- check_channel_status(&oglobals, originate_status, and_argc)) {
+ check_channel_status(&oglobals, originate_status, and_argc, &force_reason)) {
time_t elapsed = switch_epoch_time_now(NULL) - start;
read_packet = 0;