提交 e6f6f559 authored 作者: Moises Silva's avatar Moises Silva 提交者: Moises Silva

freetdm: added documentation and clean up script

上级 56db4861
#!/bin/bash
rm -rf mod_freetdm.so
rm -rf .libs/mod_freetdm.so
rm -rf mod_freetdm.o
rm -rf .libs/mod_freetdm.o
rm -rf mod_freetdm.lo
...@@ -3474,7 +3474,7 @@ SWITCH_STANDARD_API(ft_function) ...@@ -3474,7 +3474,7 @@ SWITCH_STANDARD_API(ft_function)
stream->write_function(stream, "+OK gains set to Rx %f and Tx %f\n", rxgain, txgain); stream->write_function(stream, "+OK gains set to Rx %f and Tx %f\n", rxgain, txgain);
} else { } else {
char *rply = ftdm_api_execute(cmd, NULL); char *rply = ftdm_api_execute(cmd);
if (rply) { if (rply) {
stream->write_function(stream, "%s", rply); stream->write_function(stream, "%s", rply);
......
...@@ -3163,21 +3163,20 @@ static struct { ...@@ -3163,21 +3163,20 @@ static struct {
} interfaces; } interfaces;
FT_DECLARE(char *) ftdm_api_execute(const char *type, const char *cmd) FT_DECLARE(char *) ftdm_api_execute(const char *cmd)
{ {
ftdm_io_interface_t *fio = NULL; ftdm_io_interface_t *fio = NULL;
char *dup = NULL, *p; char *dup = NULL, *p;
char *rval = NULL; char *rval = NULL;
char *type = NULL;
if (type && !cmd) { dup = ftdm_strdup(cmd);
dup = ftdm_strdup(type); if ((p = strchr(dup, ' '))) {
if ((p = strchr(dup, ' '))) { *p++ = '\0';
*p++ = '\0'; cmd = p;
cmd = p;
}
type = dup;
} }
type = dup;
ftdm_mutex_lock(globals.mutex); ftdm_mutex_lock(globals.mutex);
if (!(fio = (ftdm_io_interface_t *) hashtable_search(globals.interface_hash, (void *)type))) { if (!(fio = (ftdm_io_interface_t *) hashtable_search(globals.interface_hash, (void *)type))) {
......
...@@ -263,6 +263,13 @@ extern "C" { ...@@ -263,6 +263,13 @@ extern "C" {
*/ */
#define ftdm_copy_flags(dest, src, flags) (dest)->flags &= ~(flags); (dest)->flags |= ((src)->flags & (flags)) #define ftdm_copy_flags(dest, src, flags) (dest)->flags &= ~(flags); (dest)->flags |= ((src)->flags & (flags))
/*! \brief channel state change result */
typedef enum {
FTDM_STATE_CHANGE_FAIL,
FTDM_STATE_CHANGE_SUCCESS,
FTDM_STATE_CHANGE_SAME,
} ftdm_state_change_result_t;
struct ftdm_stream_handle { struct ftdm_stream_handle {
ftdm_stream_handle_write_function_t write_function; ftdm_stream_handle_write_function_t write_function;
ftdm_stream_handle_raw_write_function_t raw_write_function; ftdm_stream_handle_raw_write_function_t raw_write_function;
...@@ -556,17 +563,16 @@ FT_DECLARE(ftdm_status_t) ftdm_span_send_signal(ftdm_span_t *span, ftdm_sigmsg_t ...@@ -556,17 +563,16 @@ FT_DECLARE(ftdm_status_t) ftdm_span_send_signal(ftdm_span_t *span, ftdm_sigmsg_t
FT_DECLARE(char *) ftdm_build_dso_path(const char *name, char *path, ftdm_size_t len); FT_DECLARE(char *) ftdm_build_dso_path(const char *name, char *path, ftdm_size_t len);
FT_DECLARE(void) ftdm_channel_clear_needed_tones(ftdm_channel_t *ftdmchan);
FT_DECLARE(void) ftdm_channel_rotate_tokens(ftdm_channel_t *ftdmchan);
FT_DECLARE(int) ftdm_load_module(const char *name); FT_DECLARE(int) ftdm_load_module(const char *name);
FT_DECLARE(int) ftdm_load_module_assume(const char *name); FT_DECLARE(int) ftdm_load_module_assume(const char *name);
FT_DECLARE(int) ftdm_vasprintf(char **ret, const char *fmt, va_list ap); FT_DECLARE(int) ftdm_vasprintf(char **ret, const char *fmt, va_list ap);
FT_DECLARE(ftdm_status_t) ftdm_channel_done(ftdm_channel_t *ftdmchan); FT_DECLARE(ftdm_status_t) ftdm_channel_done(ftdm_channel_t *ftdmchan);
FIO_CODEC_FUNCTION(fio_slin2ulaw); FT_DECLARE(ftdm_status_t) ftdm_span_close_all(void);
FIO_CODEC_FUNCTION(fio_ulaw2slin); FT_DECLARE(ftdm_status_t) ftdm_channel_open_chan(ftdm_channel_t *ftdmchan);
FIO_CODEC_FUNCTION(fio_slin2alaw);
FIO_CODEC_FUNCTION(fio_alaw2slin);
FIO_CODEC_FUNCTION(fio_ulaw2alaw);
FIO_CODEC_FUNCTION(fio_alaw2ulaw);
/*! /*!
\brief Assert condition \brief Assert condition
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论