}
}
case nua_r_ack:
- if (channel) {
+ if (channel)
switch_channel_set_flag(channel, CF_MEDIA_ACK);
- }
break;
case nua_r_shutdown:
if (status >= 200) {
sofia_clear_flag(tech_pvt, TFLAG_RECOVERING);
}
- if ((status == 180 || status == 183) && switch_channel_direction(channel) == SWITCH_CALL_DIRECTION_OUTBOUND) {
- const char *val;
- if ((val = switch_channel_get_variable(channel, "sip_auto_answer")) && switch_true(val)) {
- nua_notify(nh, NUTAG_NEWSUB(1), NUTAG_SUBSTATE(nua_substate_active), SIPTAG_EVENT_STR("talk"), TAG_END());
- }
- }
}
end:
status = 183;
}
+ if (channel && (status == 180 || status == 183) && switch_channel_direction(channel) == SWITCH_CALL_DIRECTION_OUTBOUND) {
+ const char *val;
+ if ((val = switch_channel_get_variable(channel, "sip_auto_answer")) && switch_true(val)) {
+ nua_notify(nh, NUTAG_NEWSUB(1), NUTAG_SUBSTATE(nua_substate_active), SIPTAG_EVENT_STR("talk"), TAG_END());
+ }
+ }
+
+
state_process: