freetdm: fio->configure_span moved inside ftdm_configure_span_channels function

This commit is contained in:
David Yat Sin 2010-04-27 16:12:22 -04:00
parent 75190b4dff
commit 72a8517d71
2 changed files with 18 additions and 25 deletions

View 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);

View 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);