mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-08-13 09:36:46 +00:00
Merged latest FreeTDM code from Sangoma's repo
Merge remote branch 'smgfs/master' Conflicts: build/modules.conf.in configure.in libs/esl/fs_cli.c libs/freetdm/mod_freetdm/mod_freetdm.c libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn.h libs/freetdm/src/ftmod/ftmod_sangoma_isdn/ftmod_sangoma_isdn_cfg.c libs/freetdm/src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_logger.c libs/freetdm/src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_support.c src/include/switch_types.h src/mod/applications/mod_commands/mod_commands.c src/mod/applications/mod_spandsp/mod_spandsp.c src/mod/endpoints/mod_opal/mod_opal.cpp src/mod/endpoints/mod_opal/mod_opal.h src/mod/endpoints/mod_sofia/mod_sofia.h src/mod/endpoints/mod_sofia/rtp.c src/switch.c src/switch_core.c src/switch_rtp.c
This commit is contained in:
@@ -40,7 +40,6 @@
|
||||
#ifndef FREETDM_H
|
||||
#define FREETDM_H
|
||||
|
||||
|
||||
#include "ftdm_declare.h"
|
||||
#include "ftdm_call_utils.h"
|
||||
|
||||
@@ -368,6 +367,7 @@ typedef struct ftdm_caller_data {
|
||||
ftdm_number_t ani; /*!< ANI (Automatic Number Identification) */
|
||||
ftdm_number_t dnis; /*!< DNIS (Dialed Number Identification Service) */
|
||||
ftdm_number_t rdnis; /*!< RDNIS (Redirected Dialed Number Identification Service) */
|
||||
ftdm_number_t loc; /*!< LOC (Location Reference Code) */
|
||||
char aniII[FTDM_DIGITS_LIMIT]; /*! ANI II */
|
||||
uint8_t screen; /*!< Screening */
|
||||
uint8_t pres; /*!< Presentation*/
|
||||
@@ -754,6 +754,10 @@ typedef enum {
|
||||
/*!< Enable/disable IO stats in the channel */
|
||||
FTDM_COMMAND_SWITCH_IOSTATS = 60,
|
||||
|
||||
/*!< Enable/disable DTMF removal */
|
||||
FTDM_COMMAND_ENABLE_DTMF_REMOVAL = 61,
|
||||
FTDM_COMMAND_DISABLE_DTMF_REMOVAL = 62,
|
||||
|
||||
FTDM_COMMAND_COUNT,
|
||||
} ftdm_command_t;
|
||||
|
||||
@@ -1395,7 +1399,7 @@ FT_DECLARE(uint32_t) ftdm_group_get_id(const ftdm_group_t *group);
|
||||
* Only use ftdm_channel_close if there is no call (incoming or outgoing) in the channel
|
||||
*
|
||||
* \param span_id The span id the channel belongs to
|
||||
* \param chan_id Channel id of the channel you want to open
|
||||
* \param chan_id Logical channel id of the channel you want to open
|
||||
* \param ftdmchan Pointer to store the channel once is open
|
||||
*
|
||||
* \retval FTDM_SUCCESS success (the channel was found and is available)
|
||||
@@ -1403,6 +1407,23 @@ FT_DECLARE(uint32_t) ftdm_group_get_id(const ftdm_group_t *group);
|
||||
*/
|
||||
FT_DECLARE(ftdm_status_t) ftdm_channel_open(uint32_t span_id, uint32_t chan_id, ftdm_channel_t **ftdmchan);
|
||||
|
||||
/*!
|
||||
* \brief Open a channel specifying the span id and physical chan id (required before placing a call on the channel)
|
||||
*
|
||||
* \warning Try using ftdm_call_place instead if you plan to place a call after opening the channel
|
||||
*
|
||||
* \note You must call ftdm_channel_close() or ftdm_channel_call_hangup() to release the channel afterwards
|
||||
* Only use ftdm_channel_close if there is no call (incoming or outgoing) in the channel
|
||||
*
|
||||
* \param span_id The span id the channel belongs to
|
||||
* \param chan_id Physical channel id of the channel you want to open
|
||||
* \param ftdmchan Pointer to store the channel once is open
|
||||
*
|
||||
* \retval FTDM_SUCCESS success (the channel was found and is available)
|
||||
* \retval FTDM_FAIL failure (channel was not found or not available)
|
||||
*/
|
||||
FT_DECLARE(ftdm_status_t) ftdm_channel_open_ph(uint32_t span_id, uint32_t chan_id, ftdm_channel_t **ftdmchan);
|
||||
|
||||
/*!
|
||||
* \brief Hunts and opens a channel specifying the span id only
|
||||
*
|
||||
@@ -1640,6 +1661,17 @@ FT_DECLARE(ftdm_status_t) ftdm_configure_span(ftdm_span_t *span, const char *typ
|
||||
*/
|
||||
FT_DECLARE(ftdm_status_t) ftdm_configure_span_signaling(ftdm_span_t *span, const char *type, fio_signal_cb_t sig_cb, ftdm_conf_parameter_t *parameters);
|
||||
|
||||
/*!
|
||||
* \brief Register callback to listen for incoming events
|
||||
* \note This function should only be used when there is no signalling module
|
||||
* \param span The span to register to
|
||||
* \param sig_cb The callback that the signaling stack will use to notify about events
|
||||
*
|
||||
* \retval FTDM_SUCCESS success
|
||||
* \retval FTDM_FAIL failure
|
||||
*/
|
||||
FT_DECLARE(ftdm_status_t) ftdm_span_register_signal_cb(ftdm_span_t *span, fio_signal_cb_t sig_cb);
|
||||
|
||||
/*!
|
||||
* \brief Start the span signaling (must call ftdm_configure_span_signaling first)
|
||||
*
|
||||
@@ -1655,7 +1687,6 @@ FT_DECLARE(ftdm_status_t) ftdm_configure_span_signaling(ftdm_span_t *span, const
|
||||
*/
|
||||
FT_DECLARE(ftdm_status_t) ftdm_span_start(ftdm_span_t *span);
|
||||
|
||||
|
||||
/*!
|
||||
* \brief Stop the span signaling (must call ftdm_span_start first)
|
||||
* \note certain signalings (boost signaling) does not support granular span start/stop
|
||||
@@ -1796,15 +1827,25 @@ FT_DECLARE(ftdm_trunk_mode_t) ftdm_span_get_trunk_mode(const ftdm_span_t *span);
|
||||
FT_DECLARE(const char *) ftdm_span_get_trunk_mode_str(const ftdm_span_t *span);
|
||||
|
||||
/*!
|
||||
* \brief Return the channel identified by the provided id
|
||||
* \brief Return the channel identified by the provided logical id
|
||||
*
|
||||
* \param span The span where the channel belongs
|
||||
* \param chanid The channel id within the span
|
||||
* \param chanid The logical channel id within the span
|
||||
*
|
||||
* \return The channel pointer if found, NULL otherwise
|
||||
*/
|
||||
FT_DECLARE(ftdm_channel_t *) ftdm_span_get_channel(const ftdm_span_t *span, uint32_t chanid);
|
||||
|
||||
/*!
|
||||
* \brief Return the channel identified by the provided physical id
|
||||
*
|
||||
* \param span The span where the channel belongs
|
||||
* \param chanid The physical channel id within the span
|
||||
*
|
||||
* \return The channel pointer if found, NULL otherwise
|
||||
*/
|
||||
FT_DECLARE(ftdm_channel_t *) ftdm_span_get_channel_ph(const ftdm_span_t *span, uint32_t chanid);
|
||||
|
||||
/*! \brief Return the channel count number for the given span */
|
||||
FT_DECLARE(uint32_t) ftdm_span_get_chan_count(const ftdm_span_t *span);
|
||||
|
||||
|
@@ -126,6 +126,9 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define SPAN_PENDING_CHANS_QUEUE_SIZE 1000
|
||||
#define SPAN_PENDING_SIGNALS_QUEUE_SIZE 1000
|
||||
|
||||
#define GOTO_STATUS(label,st) status = st; goto label ;
|
||||
|
||||
#define ftdm_copy_string(x,y,z) strncpy(x, y, z - 1)
|
||||
@@ -473,6 +476,7 @@ struct ftdm_channel {
|
||||
int32_t txdrops;
|
||||
int32_t rxdrops;
|
||||
ftdm_usrmsg_t *usrmsg;
|
||||
ftdm_time_t last_state_change_time;
|
||||
};
|
||||
|
||||
struct ftdm_span {
|
||||
@@ -690,6 +694,9 @@ FT_DECLARE(ftdm_status_t) ftdm_sigmsg_remove_var(ftdm_sigmsg_t *sigmsg, const ch
|
||||
*/
|
||||
FT_DECLARE(ftdm_status_t) ftdm_sigmsg_set_raw_data(ftdm_sigmsg_t *sigmsg, void *data, ftdm_size_t datalen);
|
||||
|
||||
/*! \brief Retrieve a span and channel data structure from a string in the format 'span_id:chan_id'*/
|
||||
FT_DECLARE(ftdm_status_t) ftdm_get_channel_from_string(const char *string_id, ftdm_span_t **out_span, ftdm_channel_t **out_channel);
|
||||
|
||||
/*!
|
||||
\brief Assert condition
|
||||
*/
|
||||
|
@@ -162,6 +162,7 @@ typedef enum {
|
||||
FTDM_SIGTYPE_ANALOG,
|
||||
FTDM_SIGTYPE_SANGOMABOOST,
|
||||
FTDM_SIGTYPE_M3UA,
|
||||
FTDM_SIGTYPE_M2UA,
|
||||
FTDM_SIGTYPE_R2,
|
||||
FTDM_SIGTYPE_SS7,
|
||||
FTDM_SIGTYPE_GSM
|
||||
@@ -198,6 +199,8 @@ typedef enum {
|
||||
FTDM_SPAN_NON_STOPPABLE = (1 << 13),
|
||||
/* If this flag is set, then this span supports TRANSFER state */
|
||||
FTDM_SPAN_USE_TRANSFER = (1 << 14),
|
||||
/* This is the last flag, no more flags bigger than this */
|
||||
FTDM_SPAN_MAX_FLAG = (1 << 15),
|
||||
} ftdm_span_flag_t;
|
||||
|
||||
/*! \brief Channel supported features */
|
||||
@@ -266,6 +269,12 @@ typedef enum {
|
||||
#define FTDM_CHANNEL_BLOCKING (1ULL << 35)
|
||||
/*!< Media is digital */
|
||||
#define FTDM_CHANNEL_DIGITAL_MEDIA (1ULL << 36)
|
||||
/*!< Native signaling bridge is enabled */
|
||||
#define FTDM_CHANNEL_NATIVE_SIGBRIDGE (1ULL << 37)
|
||||
|
||||
/*!< This no more flags after this flag */
|
||||
#define FTDM_CHANNEL_MAX_FLAG (1ULL << 38)
|
||||
/*!<When adding a new flag, need to update ftdm_io.c:channel_flag_strs */
|
||||
|
||||
#include "ftdm_state.h"
|
||||
|
||||
|
Reference in New Issue
Block a user