]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
freetdm: fio->configure_span moved inside ftdm_configure_span_channels function
authorDavid Yat Sin <dyatsin@sangoma.com>
Tue, 27 Apr 2010 20:12:22 +0000 (16:12 -0400)
committerDavid Yat Sin <dyatsin@sangoma.com>
Tue, 27 Apr 2010 20:12:22 +0000 (16:12 -0400)
libs/freetdm/src/ftdm_io.c
libs/freetdm/src/include/freetdm.h

index ae4385c0a32f812f8946aa2c72c198db2f69041f..88a3462fba94999b7e1c955fbc78478e30b61b17 100644 (file)
@@ -2902,8 +2902,11 @@ 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, int currindex, ftdm_channel_config_t *chan_config)
+FT_DECLARE(ftdm_status_t) ftdm_configure_span_channels(ftdm_span_t *span, const char* str, ftdm_channel_config_t *chan_config, ftdm_chan_type_t type, unsigned *configured)
 {
+       int currindex = span->chan_count;
+       *configured += span->fio->configure_span(span, str, type, chan_config->name, chan_config->number);
+
        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);
                return FTDM_FAIL;
@@ -2927,11 +2930,8 @@ static ftdm_status_t load_config(void)
        char *var, *val;
        int catno = -1;
        int intparam = 0;
-       int currindex = 0;
        ftdm_span_t *span = NULL;
        unsigned configured = 0, d = 0;
-       char name[FTDM_MAX_NAME_STR_SZ] = "";
-       char number[25] = "";
        ftdm_io_interface_t *fio = NULL;
        ftdm_analog_start_type_t tmp;
        ftdm_size_t len = 0;
@@ -3017,15 +3017,15 @@ static ftdm_status_t load_config(void)
                                ftdm_log(FTDM_LOG_DEBUG, "setting trunk type to '%s'\n", ftdm_trunk_type2str(span->trunk_type)); 
                        } else if (!strcasecmp(var, "name")) {
                                if (!strcasecmp(val, "undef")) {
-                                       *name = '\0';
+                                       chan_config.name[0] = '\0';
                                } else {
-                                       ftdm_copy_string(name, val, sizeof(name));
+                                       ftdm_copy_string(chan_config.name, val, FTDM_MAX_NAME_STR_SZ);
                                }
                        } else if (!strcasecmp(var, "number")) {
                                if (!strcasecmp(val, "undef")) {
-                                       *number = '\0';
+                                       chan_config.number[0] = '\0';
                                } else {
-                                       ftdm_copy_string(number, val, sizeof(number));
+                                       ftdm_copy_string(chan_config.number, val, FTDM_MAX_NUMBER_STR_SZ);
                                }
                        } else if (!strcasecmp(var, "analog-start-type")) {
                                if (span->trunk_type == FTDM_TRUNK_FXS || span->trunk_type == FTDM_TRUNK_FXO || span->trunk_type == FTDM_TRUNK_EM) {
@@ -3043,9 +3043,7 @@ static ftdm_status_t load_config(void)
                                                        ftdm_analog_start_type2str(span->start_type));
                                }
                                if (span->trunk_type == FTDM_TRUNK_FXO) {
-                                       currindex = span->chan_count;
-                                       configured += fio->configure_span(span, val, FTDM_CHAN_TYPE_FXO, name, number);
-                                       ftdm_configure_span_channels(span, currindex, &chan_config);
+                                       ftdm_configure_span_channels(span, val, &chan_config, FTDM_CHAN_TYPE_FXO, &configured);
                                } else {
                                        ftdm_log(FTDM_LOG_WARNING, "Cannot add FXO channels to an FXS trunk!\n");
                                }
@@ -3056,9 +3054,7 @@ static ftdm_status_t load_config(void)
                                                        ftdm_analog_start_type2str(span->start_type));
                                }
                                if (span->trunk_type == FTDM_TRUNK_FXS) {
-                                       currindex = span->chan_count;
-                                       configured += fio->configure_span(span, val, FTDM_CHAN_TYPE_FXS, name, number);
-                                       ftdm_configure_span_channels(span, currindex, &chan_config);
+                                       ftdm_configure_span_channels(span, val, &chan_config, FTDM_CHAN_TYPE_FXS, &configured);
                                } else {
                                        ftdm_log(FTDM_LOG_WARNING, "Cannot add FXS channels to an FXO trunk!\n");
                                }
@@ -3069,16 +3065,12 @@ static ftdm_status_t load_config(void)
                                                        ftdm_analog_start_type2str(span->start_type));
                                }
                                if (span->trunk_type == FTDM_TRUNK_EM) {
-                                       currindex = span->chan_count;
-                                       configured += fio->configure_span(span, val, FTDM_CHAN_TYPE_EM, name, number);
-                                       ftdm_configure_span_channels(span, currindex, &chan_config);
+                                       ftdm_configure_span_channels(span, val, &chan_config, FTDM_CHAN_TYPE_EM, &configured);
                                } else {
                                        ftdm_log(FTDM_LOG_WARNING, "Cannot add EM channels to a non-EM trunk!\n");
                                }
                        } else if (!strcasecmp(var, "b-channel")) {
-                               currindex = span->chan_count;
-                               configured += fio->configure_span(span, val, FTDM_CHAN_TYPE_B, name, number);
-                               ftdm_configure_span_channels(span, currindex, &chan_config);
+                               ftdm_configure_span_channels(span, val, &chan_config, FTDM_CHAN_TYPE_B, &configured);
                        } else if (!strcasecmp(var, "d-channel")) {
                                if (d) {
                                        ftdm_log(FTDM_LOG_WARNING, "ignoring extra d-channel\n");
@@ -3090,13 +3082,11 @@ static ftdm_status_t load_config(void)
                                        } else {
                                                qtype = FTDM_CHAN_TYPE_DQ921;
                                        }
-                                       configured += fio->configure_span(span, val, qtype, name, number);
+                                       ftdm_configure_span_channels(span, val, &chan_config, qtype, &configured);
                                        d++;
                                }
                        } else if (!strcasecmp(var, "cas-channel")) {
-                               currindex = span->chan_count;
-                               configured += fio->configure_span(span, val, FTDM_CHAN_TYPE_CAS, name, number);
-                               ftdm_configure_span_channels(span, currindex, &chan_config);
+                               ftdm_configure_span_channels(span, val, &chan_config, FTDM_CHAN_TYPE_CAS, &configured);
                        } else if (!strcasecmp(var, "dtmf_hangup")) {
                                span->dtmf_hangup = ftdm_strdup(val);
                                span->dtmf_hangup_len = strlen(val);
index 870d9bce112b39ecf089a4bd9b5bdab1dbbc86d9..53d8e13fb146a0742ee8d21e530e1a7b5ababe16 100644 (file)
@@ -199,6 +199,7 @@ extern "C" {
 #define FTDM_MAX_GROUPS_INTERFACE FTDM_MAX_SPANS_INTERFACE
 
 #define FTDM_MAX_NAME_STR_SZ 80
+#define FTDM_MAX_NUMBER_STR_SZ 20
 
 #define GOTO_STATUS(label,st) status = st; goto label ;
 
@@ -614,6 +615,8 @@ struct ftdm_channel {
 };
 
 struct ftdm_channel_config {
+       char name[FTDM_MAX_NAME_STR_SZ];
+       char number[FTDM_MAX_NUMBER_STR_SZ];
        char group_name[FTDM_MAX_NAME_STR_SZ];
        float rxgain;
        float txgain;
@@ -840,7 +843,7 @@ FT_DECLARE(ftdm_status_t) ftdm_conf_node_add_param(ftdm_conf_node_t *node, const
 FT_DECLARE(ftdm_status_t) ftdm_conf_node_destroy(ftdm_conf_node_t *node);
 
 
-FT_DECLARE(ftdm_status_t) ftdm_configure_span_channels(ftdm_span_t *span, int currindex, ftdm_channel_config_t *chan_config);
+FT_DECLARE(ftdm_status_t) ftdm_configure_span_channels(ftdm_span_t *span, const char *str, ftdm_channel_config_t *chan_config, ftdm_chan_type_t type, unsigned *configured);
 
 FIO_CODEC_FUNCTION(fio_slin2ulaw);
 FIO_CODEC_FUNCTION(fio_ulaw2slin);