switch (msg->message_id) {
case SWITCH_MESSAGE_INDICATE_RINGING:
- if (!switch_channel_test_flag(channel, CF_OUTBOUND)) {
- zap_set_state_locked(tech_pvt->zchan, ZAP_CHANNEL_STATE_PROGRESS);
+ {
+ if (!switch_channel_test_flag(channel, CF_OUTBOUND)) {
+ zap_set_state_locked(tech_pvt->zchan, ZAP_CHANNEL_STATE_PROGRESS);
+ }
}
+ break;
case SWITCH_MESSAGE_INDICATE_PROGRESS:
- if (!switch_channel_test_flag(channel, CF_OUTBOUND)) {
- zap_set_state_locked(tech_pvt->zchan, ZAP_CHANNEL_STATE_EARLY_MEDIA);
+ {
+ if (!switch_channel_test_flag(channel, CF_OUTBOUND)) {
+ zap_set_state_locked(tech_pvt->zchan, ZAP_CHANNEL_STATE_PROGRESS_MEDIA);
+ }
}
+ break;
case SWITCH_MESSAGE_INDICATE_ANSWER:
- if (!switch_channel_test_flag(channel, CF_OUTBOUND)) {
- zap_set_state_locked(tech_pvt->zchan, ZAP_CHANNEL_STATE_UP);
+ {
+ if (!switch_channel_test_flag(channel, CF_OUTBOUND)) {
+ zap_set_state_locked(tech_pvt->zchan, ZAP_CHANNEL_STATE_UP);
+ }
}
break;
default:
switch_channel_t *channel = NULL;
zap_status_t status;
- zap_log(ZAP_LOG_DEBUG, "got fxo sig [%s]\n", zap_signal_event2str(sigmsg->event_id));
+ zap_log(ZAP_LOG_DEBUG, "got FXO sig [%s]\n", zap_signal_event2str(sigmsg->event_id));
switch(sigmsg->event_id) {
case ZAP_SIGEVENT_UP:
private_t *tech_pvt = NULL;
zap_status_t status = ZAP_SUCCESS;
- zap_log(ZAP_LOG_DEBUG, "got fxs sig [%s]\n", zap_signal_event2str(sigmsg->event_id));
+ zap_log(ZAP_LOG_DEBUG, "got FXS sig [%s]\n", zap_signal_event2str(sigmsg->event_id));
switch(sigmsg->event_id) {
case ZAP_SIGEVENT_UP:
ZAP_CHANNEL_STATE_CALLWAITING,
ZAP_CHANNEL_STATE_TERMINATING,
ZAP_CHANNEL_STATE_RESTART,
- ZAP_CHANNEL_STATE_EARLY_MEDIA,
+ ZAP_CHANNEL_STATE_PROGRESS_MEDIA,
ZAP_CHANNEL_STATE_PROGRESS,
ZAP_CHANNEL_STATE_INVALID
} zap_channel_state_t;
#define CHANNEL_STATE_STRINGS "DOWN", "UP", "HANGUP", "HOLD", "DIALTONE", "COLLECT", \
"RING", "BUSY", "ATTN", "IDLE", "GENRING", "DIALING", "GET_CALLERID", "CALLWAITING", \
- "TERMINATING", "RESTART", "EARLY_MEDIA", "PROGRESS", "INVALID"
+ "TERMINATING", "RESTART", "PROGRESS_MEDIA", "PROGRESS", "INVALID"
ZAP_STR2ENUM_P(zap_str2zap_channel_state, zap_channel_state2str, zap_channel_state_t)
typedef enum {
}
switch(zchan->state) {
+ case ZAP_CHANNEL_STATE_UP:
+ {
+ switch(state) {
+ case ZAP_CHANNEL_STATE_PROGRESS:
+ case ZAP_CHANNEL_STATE_PROGRESS_MEDIA:
+ ok = 0;
+ break;
+ default:
+ break;
+ }
+ }
+ break;
case ZAP_CHANNEL_STATE_DOWN:
{
switch(state) {
break;
}
}
+ break;
case ZAP_CHANNEL_STATE_BUSY:
{
switch(state) {
break;
}
}
+ break;
default:
break;
}
assert(zchan != NULL);
memset(&zchan->caller_data, 0, sizeof(zchan->caller_data));
+
zap_clear_flag_locked(zchan, ZAP_CHANNEL_INUSE);
zap_clear_flag_locked(zchan, ZAP_CHANNEL_OUTBOUND);
+
for (i = 0; i < 2; i++) {
if (zchan->fds[i] > -1) {
close(zchan->fds[i]);
break;
case Q931mes_ALERTING:
{
- zap_set_state_locked(zchan, ZAP_CHANNEL_STATE_EARLY_MEDIA);
+ zap_set_state_locked(zchan, ZAP_CHANNEL_STATE_PROGRESS_MEDIA);
}
break;
case Q931mes_PROGRESS:
zap_channel_close(&zchan);
}
break;
- case ZAP_CHANNEL_STATE_EARLY_MEDIA:
+ case ZAP_CHANNEL_STATE_PROGRESS_MEDIA:
{
if (zap_test_flag(zchan, ZAP_CHANNEL_OUTBOUND)) {
sig.event_id = ZAP_SIGEVENT_PROGRESS_MEDIA;