Merge branch 'nsg-4.3' of git.sangoma.com:smg_freeswitch into nsg-4.3
This commit is contained in:
commit
f7e94c45d3
|
@ -1470,13 +1470,23 @@ FT_DECLARE(ftdm_status_t) ftdm_group_channel_use_count(ftdm_group_t *group, uint
|
||||||
|
|
||||||
static __inline__ int chan_is_avail(ftdm_channel_t *check)
|
static __inline__ int chan_is_avail(ftdm_channel_t *check)
|
||||||
{
|
{
|
||||||
if (!ftdm_test_flag(check, FTDM_CHANNEL_READY) ||
|
if (check->type == FTDM_CHAN_TYPE_CLEAR) {
|
||||||
!ftdm_test_flag(check, FTDM_CHANNEL_SIG_UP) ||
|
if (!ftdm_test_flag(check, FTDM_CHANNEL_READY) ||
|
||||||
ftdm_test_flag(check, FTDM_CHANNEL_INUSE) ||
|
ftdm_test_flag(check, FTDM_CHANNEL_INUSE) ||
|
||||||
ftdm_test_flag(check, FTDM_CHANNEL_SUSPENDED) ||
|
ftdm_test_flag(check, FTDM_CHANNEL_SUSPENDED) ||
|
||||||
ftdm_test_flag(check, FTDM_CHANNEL_IN_ALARM) ||
|
ftdm_test_flag(check, FTDM_CHANNEL_IN_ALARM) ||
|
||||||
check->state != FTDM_CHANNEL_STATE_DOWN) {
|
check->state != FTDM_CHANNEL_STATE_DOWN) {
|
||||||
return 0;
|
return 0;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (!ftdm_test_flag(check, FTDM_CHANNEL_READY) ||
|
||||||
|
!ftdm_test_flag(check, FTDM_CHANNEL_SIG_UP) ||
|
||||||
|
ftdm_test_flag(check, FTDM_CHANNEL_INUSE) ||
|
||||||
|
ftdm_test_flag(check, FTDM_CHANNEL_SUSPENDED) ||
|
||||||
|
ftdm_test_flag(check, FTDM_CHANNEL_IN_ALARM) ||
|
||||||
|
check->state != FTDM_CHANNEL_STATE_DOWN) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -5129,6 +5139,12 @@ static ftdm_status_t load_config(void)
|
||||||
} else {
|
} else {
|
||||||
ftdm_log(FTDM_LOG_WARNING, "Cannot add EM channels to a non-EM trunk!\n");
|
ftdm_log(FTDM_LOG_WARNING, "Cannot add EM channels to a non-EM trunk!\n");
|
||||||
}
|
}
|
||||||
|
} else if (!strcasecmp(var, "clear-channel")) {
|
||||||
|
unsigned chans_configured = 0;
|
||||||
|
chan_config.type = FTDM_CHAN_TYPE_CLEAR;
|
||||||
|
if (ftdm_configure_span_channels(span, val, &chan_config, &chans_configured) == FTDM_SUCCESS) {
|
||||||
|
configured += chans_configured;
|
||||||
|
}
|
||||||
} else if (!strcasecmp(var, "b-channel")) {
|
} else if (!strcasecmp(var, "b-channel")) {
|
||||||
unsigned chans_configured = 0;
|
unsigned chans_configured = 0;
|
||||||
chan_config.type = FTDM_CHAN_TYPE_B;
|
chan_config.type = FTDM_CHAN_TYPE_B;
|
||||||
|
|
|
@ -306,7 +306,8 @@ static unsigned wp_open_range(ftdm_span_t *span, unsigned spanno, unsigned start
|
||||||
if (type == FTDM_CHAN_TYPE_FXS
|
if (type == FTDM_CHAN_TYPE_FXS
|
||||||
|| type == FTDM_CHAN_TYPE_FXO
|
|| type == FTDM_CHAN_TYPE_FXO
|
||||||
|| type == FTDM_CHAN_TYPE_CAS
|
|| type == FTDM_CHAN_TYPE_CAS
|
||||||
|| type == FTDM_CHAN_TYPE_B) {
|
|| type == FTDM_CHAN_TYPE_B
|
||||||
|
|| type == FTDM_CHAN_TYPE_CLEAR) {
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
hwec_str = "unavailable";
|
hwec_str = "unavailable";
|
||||||
|
|
|
@ -181,9 +181,10 @@ typedef enum {
|
||||||
FTDM_CHAN_TYPE_FXO, /*!< FXO analog channel */
|
FTDM_CHAN_TYPE_FXO, /*!< FXO analog channel */
|
||||||
FTDM_CHAN_TYPE_EM, /*!< E & M channel */
|
FTDM_CHAN_TYPE_EM, /*!< E & M channel */
|
||||||
FTDM_CHAN_TYPE_CAS, /*!< CAS channel */
|
FTDM_CHAN_TYPE_CAS, /*!< CAS channel */
|
||||||
|
FTDM_CHAN_TYPE_CLEAR, /* Clear channnel - no signalling module */
|
||||||
FTDM_CHAN_TYPE_COUNT /*!< Count of channel types */
|
FTDM_CHAN_TYPE_COUNT /*!< Count of channel types */
|
||||||
} ftdm_chan_type_t;
|
} ftdm_chan_type_t;
|
||||||
#define CHAN_TYPE_STRINGS "B", "DQ921", "DQ931", "FXS", "FXO", "EM", "CAS", "INVALID"
|
#define CHAN_TYPE_STRINGS "B", "DQ921", "DQ931", "FXS", "FXO", "EM", "CAS", "CLEAR", "INVALID"
|
||||||
/*! \brief transform from channel type to string and from string to channel type
|
/*! \brief transform from channel type to string and from string to channel type
|
||||||
* ftdm_str2ftdm_chan_type transforms a channel string (ie: "FXO" to FTDM_CHAN_TYPE_FXO)
|
* ftdm_str2ftdm_chan_type transforms a channel string (ie: "FXO" to FTDM_CHAN_TYPE_FXO)
|
||||||
* ftdm_chan_type2str transforms a channel type to string (ie: FTDM_CHAN_TYPE_B to "B")
|
* ftdm_chan_type2str transforms a channel type to string (ie: FTDM_CHAN_TYPE_B to "B")
|
||||||
|
|
Loading…
Reference in New Issue