channel = switch_core_session_get_channel(session);
assert(channel != NULL);
+ if (!tech_pvt->zchan) {
+ switch_channel_hangup(channel, SWITCH_CAUSE_LOSE_RACE);
+ return SWITCH_STATUS_SUCCESS;
+ }
/* Move channel's state machine to ROUTING */
switch_channel_set_state(channel, CS_ROUTING);
tech_pvt = switch_core_session_get_private(session);
assert(tech_pvt != NULL);
+ if (!tech_pvt->zchan) {
+ switch_channel_hangup(switch_core_session_get_channel(session), SWITCH_CAUSE_LOSE_RACE);
+ return SWITCH_STATUS_FALSE;
+ }
+
tmp[0] = dtmf->digit;
zap_channel_command(tech_pvt->zchan, ZAP_COMMAND_SEND_DTMF, tmp);
tech_pvt = switch_core_session_get_private(session);
assert(tech_pvt != NULL);
- assert(tech_pvt->zchan != NULL);
+ if (!tech_pvt->zchan) {
+ return SWITCH_STATUS_FALSE;
+ }
/* Digium Cards sometimes timeout several times in a row here.
Yes, we support digium cards, ain't we nice.......
tech_pvt = switch_core_session_get_private(session);
assert(tech_pvt != NULL);
- assert(tech_pvt->zchan != NULL);
+ if (!tech_pvt->zchan) {
+ return SWITCH_STATUS_FALSE;
+ }
if (switch_test_flag(tech_pvt, TFLAG_DEAD)) {
return SWITCH_STATUS_FALSE;
tech_pvt = (private_t *) switch_core_session_get_private(session);
assert(tech_pvt != NULL);
+ if (!tech_pvt->zchan) {
+ switch_channel_hangup(channel, SWITCH_CAUSE_LOSE_RACE);
+ return SWITCH_STATUS_FALSE;
+ }
+
zap_log(ZAP_LOG_DEBUG, "Got Freeswitch message in R2 channel %d [%d]\n", tech_pvt->zchan->physical_chan_id,
msg->message_id);
tech_pvt = (private_t *) switch_core_session_get_private(session);
assert(tech_pvt != NULL);
- assert(tech_pvt->zchan != NULL);
+
+ if (!tech_pvt->zchan) {
+ switch_channel_hangup(channel, SWITCH_CAUSE_LOSE_RACE);
+ return SWITCH_STATUS_FALSE;
+ }
zap_mutex_lock(tech_pvt->zchan->mutex);
if (tech_pvt->zchan->state == ZAP_CHANNEL_STATE_TERMINATING) {
tech_pvt = (private_t *) switch_core_session_get_private(session);
assert(tech_pvt != NULL);
+ if (!tech_pvt->zchan) {
+ switch_channel_hangup(channel, SWITCH_CAUSE_LOSE_RACE);
+ return SWITCH_STATUS_FALSE;
+ }
+
switch (msg->message_id) {
case SWITCH_MESSAGE_INDICATE_PROGRESS:
case SWITCH_MESSAGE_INDICATE_ANSWER:
tech_pvt = (private_t *) switch_core_session_get_private(session);
assert(tech_pvt != NULL);
+ if (!tech_pvt->zchan) {
+ switch_channel_hangup(channel, SWITCH_CAUSE_LOSE_RACE);
+ return SWITCH_STATUS_FALSE;
+ }
+
switch (msg->message_id) {
case SWITCH_MESSAGE_INDICATE_PROGRESS:
case SWITCH_MESSAGE_INDICATE_ANSWER:
}
tech_pvt = switch_core_session_get_private(session);
+
+ if (!tech_pvt->zchan) {
+ switch_channel_hangup(switch_core_session_get_channel(session), SWITCH_CAUSE_LOSE_RACE);
+ return;
+ }
+
zap_channel_command(tech_pvt->zchan, ZAP_COMMAND_DISABLE_ECHOCANCEL, &x);
zap_channel_command(tech_pvt->zchan, ZAP_COMMAND_DISABLE_ECHOTRAIN, &x);
zap_log(ZAP_LOG_INFO, "Echo Canceller Disabled\n");