]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
Removed use of ftdmchan->flags from mod_freetdm.c as they will be hidden from user...
authorDavid Yat Sin <dyatsin@sangoma.com>
Tue, 27 Apr 2010 22:20:25 +0000 (18:20 -0400)
committerDavid Yat Sin <dyatsin@sangoma.com>
Tue, 27 Apr 2010 22:20:25 +0000 (18:20 -0400)
libs/freetdm/mod_freetdm/mod_freetdm.c
libs/freetdm/src/ftdm_io.c

index 2f8e4260f6dd22ea0c2565cc42f2275fe235234b..a4aa659f5c5a3a6a5ee688a76021d9e815c2279e 100644 (file)
@@ -1955,10 +1955,8 @@ static FIO_SIGNAL_CB_FUNCTION(on_clear_channel_signal)
        case FTDM_SIGEVENT_SIGSTATUS_CHANGED:
                {
                        ftdm_signaling_status_t *sigstatus = (ftdm_signaling_status_t*)(sigmsg->raw_data);
-                       if (*((ftdm_signaling_status_t*)(sigmsg->raw_data)) == FTDM_SIG_STATE_UP) {
-                               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "%d:%d signalling changed to :%s\n",
-                                               sigmsg->channel->span_id, sigmsg->channel->chan_id, ftdm_signaling_status2str(*sigstatus));
-                       }
+                       switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "%d:%d signalling changed to :%s\n",
+                                       sigmsg->channel->span_id, sigmsg->channel->chan_id, ftdm_signaling_status2str(*sigstatus));
                }
                break;
        default:
@@ -2994,10 +2992,12 @@ static switch_status_t load_config(void)
 
 void dump_chan(ftdm_span_t *span, uint32_t chan_id, switch_stream_handle_t *stream)
 {
+       ftdm_signaling_status_t sigstatus = FTDM_SIG_STATE_DOWN;
        if (chan_id > span->chan_count) {
                return;
        }
-
+       
+       ftdm_channel_get_sig_status(span->channels[chan_id], &sigstatus);
        stream->write_function(stream,
                                                   "span_id: %u\n"
                                                   "chan_id: %u\n"
@@ -3023,7 +3023,7 @@ void dump_chan(ftdm_span_t *span, uint32_t chan_id, switch_stream_handle_t *stre
                                                   span->channels[chan_id]->physical_span_id,
                                                   span->channels[chan_id]->physical_chan_id,
                                                 (span->channels[chan_id]->alarm_flags) ? "DOWN" : "UP",
-                                            ftdm_test_flag(span->channels[chan_id], FTDM_CHANNEL_SIG_UP) ? "UP" : "DOWN",
+                                            ftdm_signaling_status2str(sigstatus),
                                                   ftdm_chan_type2str(span->channels[chan_id]->type),
                                                   ftdm_channel_state2str(span->channels[chan_id]->state),
                                                   ftdm_channel_state2str(span->channels[chan_id]->last_state),
@@ -3042,10 +3042,11 @@ void dump_chan(ftdm_span_t *span, uint32_t chan_id, switch_stream_handle_t *stre
 
 void dump_chan_xml(ftdm_span_t *span, uint32_t chan_id, switch_stream_handle_t *stream)
 {
+       ftdm_signaling_status_t sigstatus = FTDM_SIG_STATE_DOWN;
        if (chan_id > span->chan_count) {
                return;
        }
-
+       ftdm_channel_get_sig_status(span->channels[chan_id], &sigstatus);
        stream->write_function(stream,
                                                   " <channel>\n"
                                                   "  <span-id>%u</span-id>\n"
@@ -3073,7 +3074,7 @@ void dump_chan_xml(ftdm_span_t *span, uint32_t chan_id, switch_stream_handle_t *
                                                   span->channels[chan_id]->physical_span_id,
                                                   span->channels[chan_id]->physical_chan_id,
                                                   (span->channels[chan_id]->alarm_flags) ? "DOWN" : "UP",
-                                            ftdm_test_flag(span->channels[chan_id], FTDM_CHANNEL_SIG_UP) ? "UP" : "DOWN",
+                                            ftdm_signaling_status2str(sigstatus),
                                                   ftdm_chan_type2str(span->channels[chan_id]->type),
                                                   ftdm_channel_state2str(span->channels[chan_id]->state),
                                                   ftdm_channel_state2str(span->channels[chan_id]->last_state),
index 8cdeafd323cf81a77351aadd2ad9cc2bf9f13b93..cac4f15f16fead1da5605b3613c482283f814f1b 100644 (file)
@@ -2905,7 +2905,12 @@ static ftdm_status_t ftdm_set_channels_alarms(ftdm_span_t *span, int currindex)
 FT_DECLARE(ftdm_status_t) ftdm_configure_span_channels(ftdm_span_t *span, const char* str, ftdm_channel_config_t *chan_config, unsigned *configured)
 {
        int currindex = span->chan_count;
-       *configured += span->fio->configure_span(span, str, chan_config->type, chan_config->name, chan_config->number);
+       *configured = 0;
+       *configured = span->fio->configure_span(span, str, chan_config->type, chan_config->name, chan_config->number);
+       if (!*configured) {
+               ftdm_log(FTDM_LOG_ERROR, "%d:Failed to configure span", span->span_id);
+               return FTDM_FAIL;
+       }
 
        if (ftdm_group_add_channels(span, currindex, chan_config->group_name) != FTDM_SUCCESS) {
                ftdm_log(FTDM_LOG_ERROR, "%d:Failed to add channels to group %s\n", span->span_id, chan_config->group_name);
@@ -3043,8 +3048,11 @@ static ftdm_status_t load_config(void)
                                                        ftdm_analog_start_type2str(span->start_type));
                                }
                                if (span->trunk_type == FTDM_TRUNK_FXO) {
+                       unsigned chans_configured = 0;
                                        chan_config.type = FTDM_CHAN_TYPE_FXO;
-                                       ftdm_configure_span_channels(span, val, &chan_config, &configured);
+                                       if (ftdm_configure_span_channels(span, val, &chan_config, &chans_configured) == FTDM_SUCCESS) {
+                                               configured += chans_configured;
+                                       }
                                } else {
                                        ftdm_log(FTDM_LOG_WARNING, "Cannot add FXO channels to an FXS trunk!\n");
                                }
@@ -3055,8 +3063,11 @@ static ftdm_status_t load_config(void)
                                                        ftdm_analog_start_type2str(span->start_type));
                                }
                                if (span->trunk_type == FTDM_TRUNK_FXS) {
+                                       unsigned chans_configured = 0;
                                        chan_config.type = FTDM_CHAN_TYPE_FXS;
-                                       ftdm_configure_span_channels(span, val, &chan_config, &configured);
+                                       if (ftdm_configure_span_channels(span, val, &chan_config, &chans_configured) == FTDM_SUCCESS) {
+                                               configured += chans_configured;
+                                       }
                                } else {
                                        ftdm_log(FTDM_LOG_WARNING, "Cannot add FXS channels to an FXO trunk!\n");
                                }
@@ -3067,30 +3078,43 @@ static ftdm_status_t load_config(void)
                                                        ftdm_analog_start_type2str(span->start_type));
                                }
                                if (span->trunk_type == FTDM_TRUNK_EM) {
+                                       unsigned chans_configured = 0;
                                        chan_config.type = FTDM_CHAN_TYPE_EM;
-                                       ftdm_configure_span_channels(span, val, &chan_config, &configured);
+                                       if (ftdm_configure_span_channels(span, val, &chan_config, &chans_configured) == FTDM_SUCCESS) {
+                                               configured += chans_configured;
+                                       }
                                } else {
                                        ftdm_log(FTDM_LOG_WARNING, "Cannot add EM channels to a non-EM trunk!\n");
                                }
                        } else if (!strcasecmp(var, "b-channel")) {
+                               unsigned chans_configured = 0;
                                chan_config.type = FTDM_CHAN_TYPE_B;
-                               ftdm_configure_span_channels(span, val, &chan_config, &configured);
+                               if (ftdm_configure_span_channels(span, val, &chan_config, &chans_configured) == FTDM_SUCCESS) {
+                                       configured += chans_configured;
+                               }
                        } else if (!strcasecmp(var, "d-channel")) {
                                if (d) {
                                        ftdm_log(FTDM_LOG_WARNING, "ignoring extra d-channel\n");
                                } else {
+                                       unsigned chans_configured = 0;
                                        if (!strncasecmp(val, "lapd:", 5)) {
                                                chan_config.type = FTDM_CHAN_TYPE_DQ931;
                                                val += 5;
                                        } else {
                                                chan_config.type = FTDM_CHAN_TYPE_DQ921;
                                        }
-                                       ftdm_configure_span_channels(span, val, &chan_config, &configured);
+                                       if (ftdm_configure_span_channels(span, val, &chan_config, &chans_configured) == FTDM_SUCCESS) {
+                                               configured += chans_configured;
+                                       }
                                        d++;
                                }
                        } else if (!strcasecmp(var, "cas-channel")) {
+                               unsigned chans_configured = 0;
                                chan_config.type = FTDM_CHAN_TYPE_CAS;
-                               ftdm_configure_span_channels(span, val, &chan_config, &configured);
+                               
+                               if (ftdm_configure_span_channels(span, val, &chan_config, &chans_configured) == FTDM_SUCCESS) {
+                                       configured += chans_configured;
+                               }
                        } else if (!strcasecmp(var, "dtmf_hangup")) {
                                span->dtmf_hangup = ftdm_strdup(val);
                                span->dtmf_hangup_len = strlen(val);