From 058739eed9596266a1589c4daacaf275d4272c4a Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Sat, 16 Jun 2007 13:46:32 +0000 Subject: [PATCH] cleanup git-svn-id: http://svn.openzap.org/svn/openzap/trunk@265 a93c3328-9c30-0410-af19-c9cd2b2d52af --- libs/freetdm/mod_openzap/mod_openzap.c | 24 ++++++++++++++++-------- libs/freetdm/src/include/zap_types.h | 4 ++-- libs/freetdm/src/zap_io.c | 16 ++++++++++++++++ libs/freetdm/src/zap_isdn.c | 4 ++-- 4 files changed, 36 insertions(+), 12 deletions(-) diff --git a/libs/freetdm/mod_openzap/mod_openzap.c b/libs/freetdm/mod_openzap/mod_openzap.c index ef755a4772..0b07afbe2c 100644 --- a/libs/freetdm/mod_openzap/mod_openzap.c +++ b/libs/freetdm/mod_openzap/mod_openzap.c @@ -555,16 +555,24 @@ static switch_status_t channel_receive_message_b(switch_core_session_t *session, 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: @@ -877,7 +885,7 @@ static ZIO_SIGNAL_CB_FUNCTION(on_fxo_signal) 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: @@ -909,7 +917,7 @@ static ZIO_SIGNAL_CB_FUNCTION(on_fxs_signal) 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: diff --git a/libs/freetdm/src/include/zap_types.h b/libs/freetdm/src/include/zap_types.h index 900c29c9b5..613e1f6e98 100644 --- a/libs/freetdm/src/include/zap_types.h +++ b/libs/freetdm/src/include/zap_types.h @@ -263,13 +263,13 @@ typedef enum { 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 { diff --git a/libs/freetdm/src/zap_io.c b/libs/freetdm/src/zap_io.c index d5b525bcdd..2ba9f8e2fc 100644 --- a/libs/freetdm/src/zap_io.c +++ b/libs/freetdm/src/zap_io.c @@ -516,6 +516,18 @@ zap_status_t zap_channel_set_state(zap_channel_t *zchan, zap_channel_state_t sta } 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) { @@ -528,6 +540,7 @@ zap_status_t zap_channel_set_state(zap_channel_t *zchan, zap_channel_state_t sta break; } } + break; case ZAP_CHANNEL_STATE_BUSY: { switch(state) { @@ -538,6 +551,7 @@ zap_status_t zap_channel_set_state(zap_channel_t *zchan, zap_channel_state_t sta break; } } + break; default: break; } @@ -771,8 +785,10 @@ zap_status_t zap_channel_done(zap_channel_t *zchan) 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]); diff --git a/libs/freetdm/src/zap_isdn.c b/libs/freetdm/src/zap_isdn.c index ec42c2e43f..dd870087d1 100644 --- a/libs/freetdm/src/zap_isdn.c +++ b/libs/freetdm/src/zap_isdn.c @@ -110,7 +110,7 @@ static L3INT zap_isdn_931_34(void *pvt, L2UCHAR *msg, L2INT mlen) 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: @@ -248,7 +248,7 @@ static __inline__ void state_advance(zap_channel_t *zchan) 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;