channel = switch_core_session_get_channel(session);
assert(channel != NULL);
- if (!tech_pvt->zchan) {
+ if (switch_test_flag(tech_pvt, TFLAG_DEAD)) {
switch_channel_hangup(channel, SWITCH_CAUSE_LOSE_RACE);
return SWITCH_STATUS_SUCCESS;
}
tech_pvt = switch_core_session_get_private(session);
assert(tech_pvt != NULL);
- if (!tech_pvt->zchan) {
+ if (switch_test_flag(tech_pvt, TFLAG_DEAD)) {
switch_channel_hangup(switch_core_session_get_channel(session), SWITCH_CAUSE_LOSE_RACE);
return SWITCH_STATUS_FALSE;
}
channel = switch_core_session_get_channel(session);
assert(channel != NULL);
-
+
tech_pvt = switch_core_session_get_private(session);
assert(tech_pvt != NULL);
- if (!tech_pvt->zchan) {
+ if (switch_test_flag(tech_pvt, TFLAG_DEAD)) {
return SWITCH_STATUS_FALSE;
}
chunk = tech_pvt->zchan->effective_interval * 2;
total_to = chunk * 6;
- if (switch_test_flag(tech_pvt, TFLAG_DEAD)) {
- return SWITCH_STATUS_FALSE;
- }
-
top:
if (switch_channel_test_flag(channel, CF_SUSPEND)) {
tech_pvt = (private_t *) switch_core_session_get_private(session);
assert(tech_pvt != NULL);
- if (!tech_pvt->zchan) {
+ if (switch_test_flag(tech_pvt, TFLAG_DEAD)) {
switch_channel_hangup(channel, SWITCH_CAUSE_LOSE_RACE);
return SWITCH_STATUS_FALSE;
}
tech_pvt = (private_t *) switch_core_session_get_private(session);
assert(tech_pvt != NULL);
- if (!tech_pvt->zchan) {
+ if (switch_test_flag(tech_pvt, TFLAG_DEAD)) {
switch_channel_hangup(channel, SWITCH_CAUSE_LOSE_RACE);
return SWITCH_STATUS_FALSE;
}
tech_pvt = (private_t *) switch_core_session_get_private(session);
assert(tech_pvt != NULL);
- if (!tech_pvt->zchan) {
+ if (switch_test_flag(tech_pvt, TFLAG_DEAD)) {
switch_channel_hangup(channel, SWITCH_CAUSE_LOSE_RACE);
return SWITCH_STATUS_FALSE;
}
tech_pvt = (private_t *) switch_core_session_get_private(session);
assert(tech_pvt != NULL);
- if (!tech_pvt->zchan) {
+ if (switch_test_flag(tech_pvt, TFLAG_DEAD)) {
switch_channel_hangup(channel, SWITCH_CAUSE_LOSE_RACE);
return SWITCH_STATUS_FALSE;
}
channel = switch_core_session_get_channel(session);
+ if (switch_test_flag(tech_pvt, TFLAG_DEAD)) {
+ switch_channel_hangup(channel, SWITCH_CAUSE_LOSE_RACE);
+ return SWITCH_STATUS_FALSE;
+ }
+
if (!(zchan = tech_pvt->zchan)) {
switch_channel_hangup(channel, SWITCH_CAUSE_LOSE_RACE);
return SWITCH_STATUS_FALSE;
private_t *tech_pvt = NULL;
while((session = zap_channel_get_session(sigmsg->channel, 0))) {
tech_pvt = switch_core_session_get_private(session);
- tech_pvt->zchan = NULL;
+ switch_set_flag_locked(tech_pvt, TFLAG_DEAD);
zap_channel_clear_token(sigmsg->channel, 0);
channel = switch_core_session_get_channel(session);
switch_channel_hangup(channel, sigmsg->channel->caller_data.hangup_cause);
while((session = zap_channel_get_session(sigmsg->channel, 0))) {
tech_pvt = switch_core_session_get_private(session);
- tech_pvt->zchan = NULL;
+ switch_set_flag_locked(tech_pvt, TFLAG_DEAD);
channel = switch_core_session_get_channel(session);
switch_channel_hangup(channel, cause);
zap_channel_clear_token(sigmsg->channel, switch_core_session_get_uuid(session));
private_t *tech_pvt = NULL;
while((session = zap_channel_get_session(sigmsg->channel, 0))) {
tech_pvt = switch_core_session_get_private(session);
- tech_pvt->zchan = NULL;
+ switch_set_flag_locked(tech_pvt, TFLAG_DEAD);
channel = switch_core_session_get_channel(session);
switch_channel_hangup(channel, sigmsg->channel->caller_data.hangup_cause);
zap_channel_clear_token(sigmsg->channel, switch_core_session_get_uuid(session));
private_t *tech_pvt = NULL;
while((session = zap_channel_get_session(sigmsg->channel, 0))) {
tech_pvt = switch_core_session_get_private(session);
- tech_pvt->zchan = NULL;
+ switch_set_flag_locked(tech_pvt, TFLAG_DEAD);
channel = switch_core_session_get_channel(session);
switch_channel_hangup(channel, sigmsg->channel->caller_data.hangup_cause);
zap_channel_clear_token(sigmsg->channel, switch_core_session_get_uuid(session));
tech_pvt = switch_core_session_get_private(session);
- if (!tech_pvt->zchan) {
+ if (switch_test_flag(tech_pvt, TFLAG_DEAD)) {
switch_channel_hangup(switch_core_session_get_channel(session), SWITCH_CAUSE_LOSE_RACE);
return;
}