freetdm: add call waiting disable/enable feature

This commit is contained in:
Moises Silva
2010-05-25 12:48:10 -04:00
parent 5f4279d5bd
commit 7256232af2
6 changed files with 54 additions and 30 deletions

View File

@@ -440,7 +440,6 @@ struct ftdm_memory_handler {
ftdm_free_func_t free;
};
/*! \brief FreeTDM I/O layer interface argument macros
* You don't need these unless your implementing an I/O interface module (most users don't) */
#define FIO_CHANNEL_REQUEST_ARGS (ftdm_span_t *span, uint32_t chan_id, ftdm_direction_t direction, ftdm_caller_data_t *caller_data, ftdm_channel_t **ftdmchan)
@@ -985,7 +984,7 @@ FT_DECLARE(ftdm_status_t) ftdm_channel_open_by_group(uint32_t group_id, ftdm_dir
FT_DECLARE(ftdm_status_t) ftdm_channel_close(ftdm_channel_t **ftdmchan);
/*!
* \brief Execute a command in a channel
* \brief Execute a command in a channel (same semantics as the ioctl() unix system call)
*
* \param ftdmchan The channel to execute the command
* \param command The command to execute

View File

@@ -561,6 +561,8 @@ FT_DECLARE(ftdm_status_t) ftdm_channel_open_chan(ftdm_channel_t *ftdmchan);
#define ftdm_channel_lock(chan) ftdm_mutex_lock(chan->mutex)
#define ftdm_channel_unlock(chan) ftdm_mutex_unlock(chan->mutex)
#define ftdm_log_chan(fchan, level, format, ...) ftdm_log(level, "%d:%d " format, fchan->span_id, fchan->chan_id, __VA_ARGS__)
#define ftdm_log_chan_msg(fchan, level, msg) ftdm_log(level, "%d:%d " msg, fchan->span_id, fchan->chan_id)
static __inline__ void ftdm_abort(void)
{

View File

@@ -158,13 +158,15 @@ typedef enum {
FTDM_SPAN_SUGGEST_CHAN_ID = (1 << 7),
} ftdm_span_flag_t;
/*! \brief Channel supported features */
typedef enum {
FTDM_CHANNEL_FEATURE_DTMF_DETECT = (1 << 0),
FTDM_CHANNEL_FEATURE_DTMF_GENERATE = (1 << 1),
FTDM_CHANNEL_FEATURE_CODECS = (1 << 2),
FTDM_CHANNEL_FEATURE_INTERVAL = (1 << 3),
FTDM_CHANNEL_FEATURE_CALLERID = (1 << 4),
FTDM_CHANNEL_FEATURE_PROGRESS = (1 << 5)
FTDM_CHANNEL_FEATURE_DTMF_DETECT = (1 << 0), /*!< Channel can detect DTMF (read-only) */
FTDM_CHANNEL_FEATURE_DTMF_GENERATE = (1 << 1), /*!< Channel can generate DTMF (read-only) */
FTDM_CHANNEL_FEATURE_CODECS = (1 << 2), /*!< Channel can do transcoding (read-only) */
FTDM_CHANNEL_FEATURE_INTERVAL = (1 << 3), /*!< Channel support i/o interval configuration (read-only) */
FTDM_CHANNEL_FEATURE_CALLERID = (1 << 4), /*!< Channel can detect caller id (read-only) */
FTDM_CHANNEL_FEATURE_PROGRESS = (1 << 5), /*!< Channel can detect inband progress (read-only) */
FTDM_CHANNEL_FEATURE_CALLWAITING = (1 << 6), /*!< Channel will allow call waiting (ie: FXS devices) (read/write) */
} ftdm_channel_feature_t;
typedef enum {