Data Structures | |
struct | ftdm_queue_handler |
struct | ftdm_number_t |
Number abstraction. More... | |
struct | ftdm_caller_data |
Caller information. More... | |
struct | ftdm_conf_parameter |
Signaling configuration parameter for the stacks (variable=value pair). More... | |
struct | ftdm_memory_handler |
struct | ftdm_io_interface |
FreeTDM I/O layer function prototype wrapper macros You don't need these unless your implementing an I/O interface module (most users don't). More... | |
Defines | |
#define | FTDM_MAX_CHANNELS_PHYSICAL_SPAN 32 |
Max number of channels per physical span. | |
#define | FTDM_MAX_PHYSICAL_SPANS_PER_LOGICAL_SPAN 32 |
Max number of physical spans per logical span. | |
#define | FTDM_MAX_CHANNELS_SPAN FTDM_MAX_CHANNELS_PHYSICAL_SPAN * FTDM_MAX_PHYSICAL_SPANS_PER_LOGICAL_SPAN |
Max number of channels a logical span can contain. | |
#define | FTDM_MAX_SPANS_INTERFACE 128 |
Max number of logical spans. | |
#define | FTDM_MAX_CHANNELS_GROUP 1024 |
Max number of channels per hunting group. | |
#define | FTDM_MAX_GROUPS_INTERFACE FTDM_MAX_SPANS_INTERFACE |
Max number of groups. | |
#define | FTDM_INVALID_INT_PARM 0xFF |
#define | FTDM_MAX_NAME_STR_SZ 80 |
Thread/Mutex OS abstraction API. Limit to span names. | |
#define | FTDM_MAX_NUMBER_STR_SZ 20 |
Limit to channel number strings. | |
#define | CHAN_TYPE_STRINGS "B", "DQ921", "DQ931", "FXS", "FXO", "EM", "CAS", "INVALID" |
#define | FTDM_IS_VOICE_CHANNEL(ftdm_chan) ((ftdm_chan)->type != FTDM_CHAN_TYPE_DQ921 && (ftdm_chan)->type != FTDM_CHAN_TYPE_DQ931) |
#define | FTDM_IS_DCHAN(ftdm_chan) ((ftdm_chan)->type == FTDM_CHAN_TYPE_DQ921 || (ftdm_chan)->type == FTDM_CHAN_TYPE_DQ931) |
#define | SIGNAL_STRINGS |
#define | TRUNK_STRINGS "E1", "T1", "J1", "BRI", "BRI_PTMP", "FXO", "FXS", "EM", "NONE" |
#define | SIGSTATUS_STRINGS "DOWN", "SUSPENDED", "UP", "INVALID" |
#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) |
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_OUTGOING_CALL_ARGS (ftdm_channel_t *ftdmchan) |
#define | FIO_CHANNEL_SET_SIG_STATUS_ARGS (ftdm_channel_t *ftdmchan, ftdm_signaling_status_t status) |
#define | FIO_CHANNEL_GET_SIG_STATUS_ARGS (ftdm_channel_t *ftdmchan, ftdm_signaling_status_t *status) |
#define | FIO_SPAN_SET_SIG_STATUS_ARGS (ftdm_span_t *span, ftdm_signaling_status_t status) |
#define | FIO_SPAN_GET_SIG_STATUS_ARGS (ftdm_span_t *span, ftdm_signaling_status_t *status) |
#define | FIO_SPAN_POLL_EVENT_ARGS (ftdm_span_t *span, uint32_t ms) |
#define | FIO_SPAN_NEXT_EVENT_ARGS (ftdm_span_t *span, ftdm_event_t **event) |
#define | FIO_SIGNAL_CB_ARGS (ftdm_sigmsg_t *sigmsg) |
#define | FIO_EVENT_CB_ARGS (ftdm_channel_t *ftdmchan, ftdm_event_t *event) |
#define | FIO_CONFIGURE_SPAN_ARGS (ftdm_span_t *span, const char *str, ftdm_chan_type_t type, char *name, char *number) |
#define | FIO_CONFIGURE_ARGS (const char *category, const char *var, const char *val, int lineno) |
#define | FIO_OPEN_ARGS (ftdm_channel_t *ftdmchan) |
#define | FIO_CLOSE_ARGS (ftdm_channel_t *ftdmchan) |
#define | FIO_CHANNEL_DESTROY_ARGS (ftdm_channel_t *ftdmchan) |
#define | FIO_SPAN_DESTROY_ARGS (ftdm_span_t *span) |
#define | FIO_COMMAND_ARGS (ftdm_channel_t *ftdmchan, ftdm_command_t command, void *obj) |
#define | FIO_WAIT_ARGS (ftdm_channel_t *ftdmchan, ftdm_wait_flag_t *flags, int32_t to) |
#define | FIO_GET_ALARMS_ARGS (ftdm_channel_t *ftdmchan) |
#define | FIO_READ_ARGS (ftdm_channel_t *ftdmchan, void *data, ftdm_size_t *datalen) |
#define | FIO_WRITE_ARGS (ftdm_channel_t *ftdmchan, void *data, ftdm_size_t *datalen) |
#define | FIO_IO_LOAD_ARGS (ftdm_io_interface_t **fio) |
#define | FIO_IO_UNLOAD_ARGS (void) |
#define | FIO_SIG_LOAD_ARGS (void) |
#define | FIO_SIG_CONFIGURE_ARGS (ftdm_span_t *span, fio_signal_cb_t sig_cb, va_list ap) |
#define | FIO_CONFIGURE_SPAN_SIGNALING_ARGS (ftdm_span_t *span, fio_signal_cb_t sig_cb, ftdm_conf_parameter_t *ftdm_parameters) |
#define | FIO_SIG_UNLOAD_ARGS (void) |
#define | FIO_API_ARGS (ftdm_stream_handle_t *stream, const char *data) |
#define | FIO_CHANNEL_REQUEST_FUNCTION(name) ftdm_status_t name FIO_CHANNEL_REQUEST_ARGS |
FreeTDM I/O layer interface function prototype wrapper macros You don't need these unless your implementing an I/O interface module (most users don't). | |
#define | FIO_CHANNEL_OUTGOING_CALL_FUNCTION(name) ftdm_status_t name FIO_CHANNEL_OUTGOING_CALL_ARGS |
#define | FIO_CHANNEL_SET_SIG_STATUS_FUNCTION(name) ftdm_status_t name FIO_CHANNEL_SET_SIG_STATUS_ARGS |
#define | FIO_CHANNEL_GET_SIG_STATUS_FUNCTION(name) ftdm_status_t name FIO_CHANNEL_GET_SIG_STATUS_ARGS |
#define | FIO_SPAN_SET_SIG_STATUS_FUNCTION(name) ftdm_status_t name FIO_SPAN_SET_SIG_STATUS_ARGS |
#define | FIO_SPAN_GET_SIG_STATUS_FUNCTION(name) ftdm_status_t name FIO_SPAN_GET_SIG_STATUS_ARGS |
#define | FIO_SPAN_POLL_EVENT_FUNCTION(name) ftdm_status_t name FIO_SPAN_POLL_EVENT_ARGS |
#define | FIO_SPAN_NEXT_EVENT_FUNCTION(name) ftdm_status_t name FIO_SPAN_NEXT_EVENT_ARGS |
#define | FIO_SIGNAL_CB_FUNCTION(name) ftdm_status_t name FIO_SIGNAL_CB_ARGS |
#define | FIO_EVENT_CB_FUNCTION(name) ftdm_status_t name FIO_EVENT_CB_ARGS |
#define | FIO_CONFIGURE_SPAN_FUNCTION(name) ftdm_status_t name FIO_CONFIGURE_SPAN_ARGS |
#define | FIO_CONFIGURE_FUNCTION(name) ftdm_status_t name FIO_CONFIGURE_ARGS |
#define | FIO_OPEN_FUNCTION(name) ftdm_status_t name FIO_OPEN_ARGS |
#define | FIO_CLOSE_FUNCTION(name) ftdm_status_t name FIO_CLOSE_ARGS |
#define | FIO_CHANNEL_DESTROY_FUNCTION(name) ftdm_status_t name FIO_CHANNEL_DESTROY_ARGS |
#define | FIO_SPAN_DESTROY_FUNCTION(name) ftdm_status_t name FIO_SPAN_DESTROY_ARGS |
#define | FIO_GET_ALARMS_FUNCTION(name) ftdm_status_t name FIO_GET_ALARMS_ARGS |
#define | FIO_COMMAND_FUNCTION(name) ftdm_status_t name FIO_COMMAND_ARGS |
#define | FIO_WAIT_FUNCTION(name) ftdm_status_t name FIO_WAIT_ARGS |
#define | FIO_READ_FUNCTION(name) ftdm_status_t name FIO_READ_ARGS |
#define | FIO_WRITE_FUNCTION(name) ftdm_status_t name FIO_WRITE_ARGS |
#define | FIO_IO_LOAD_FUNCTION(name) ftdm_status_t name FIO_IO_LOAD_ARGS |
#define | FIO_SIG_LOAD_FUNCTION(name) ftdm_status_t name FIO_SIG_LOAD_ARGS |
#define | FIO_SIG_CONFIGURE_FUNCTION(name) ftdm_status_t name FIO_SIG_CONFIGURE_ARGS |
#define | FIO_CONFIGURE_SPAN_SIGNALING_FUNCTION(name) ftdm_status_t name FIO_CONFIGURE_SPAN_SIGNALING_ARGS |
#define | FIO_IO_UNLOAD_FUNCTION(name) ftdm_status_t name FIO_IO_UNLOAD_ARGS |
#define | FIO_SIG_UNLOAD_FUNCTION(name) ftdm_status_t name FIO_SIG_UNLOAD_ARGS |
#define | FIO_API_FUNCTION(name) ftdm_status_t name FIO_API_ARGS |
#define | ftdm_channel_call_answer(ftdmchan) _ftdm_channel_call_answer(__FILE__, __FUNCTION__, __LINE__, (ftdmchan)) |
Answer call. | |
#define | ftdm_channel_call_place(ftdmchan) _ftdm_channel_call_place(__FILE__, __FUNCTION__, __LINE__, (ftdmchan)) |
Place an outgoing call. | |
#define | ftdm_channel_call_indicate(ftdmchan, indication) _ftdm_channel_call_indicate(__FILE__, __FUNCTION__, __LINE__, (ftdmchan), (indication)) |
Indicate a new condition in an incoming call. | |
#define | ftdm_channel_call_hangup(ftdmchan) _ftdm_channel_call_hangup(__FILE__, __FUNCTION__, __LINE__, (ftdmchan)) |
Hangup the call without cause. | |
#define | ftdm_channel_call_hangup_with_cause(ftdmchan, cause) _ftdm_channel_call_hangup_with_cause(__FILE__, __FUNCTION__, __LINE__, (ftdmchan), (cause)) |
Hangup the call with cause. | |
#define | ftdm_channel_call_hold(ftdmchan) _ftdm_channel_call_hold(__FILE__, __FUNCTION__, __LINE__, (ftdmchan)) |
Put a call on hold (if supported by the signaling stack). | |
#define | ftdm_channel_call_unhold(ftdmchan) _ftdm_channel_call_unhold(__FILE__, __FUNCTION__, __LINE__, (ftdmchan)) |
Unhold a call. | |
#define | FTDM_TAG_END NULL |
#define | FIO_CODEC_ARGS (void *data, ftdm_size_t max, ftdm_size_t *datalen) |
Basic transcoding function prototype. | |
#define | FIO_CODEC_FUNCTION(name) FT_DECLARE_NONSTD(ftdm_status_t) name FIO_CODEC_ARGS |
#define | FTDM_PRE __FILE__, __FUNCTION__, __LINE__ |
#define | FTDM_LOG_LEVEL_DEBUG 7 |
#define | FTDM_LOG_LEVEL_INFO 6 |
#define | FTDM_LOG_LEVEL_NOTICE 5 |
#define | FTDM_LOG_LEVEL_WARNING 4 |
#define | FTDM_LOG_LEVEL_ERROR 3 |
#define | FTDM_LOG_LEVEL_CRIT 2 |
#define | FTDM_LOG_LEVEL_ALERT 1 |
#define | FTDM_LOG_LEVEL_EMERG 0 |
#define | FTDM_LOG_DEBUG FTDM_PRE, FTDM_LOG_LEVEL_DEBUG |
Log levels. | |
#define | FTDM_LOG_INFO FTDM_PRE, FTDM_LOG_LEVEL_INFO |
#define | FTDM_LOG_NOTICE FTDM_PRE, FTDM_LOG_LEVEL_NOTICE |
#define | FTDM_LOG_WARNING FTDM_PRE, FTDM_LOG_LEVEL_WARNING |
#define | FTDM_LOG_ERROR FTDM_PRE, FTDM_LOG_LEVEL_ERROR |
#define | FTDM_LOG_CRIT FTDM_PRE, FTDM_LOG_LEVEL_CRIT |
#define | FTDM_LOG_ALERT FTDM_PRE, FTDM_LOG_LEVEL_ALERT |
#define | FTDM_LOG_EMERG FTDM_PRE, FTDM_LOG_LEVEL_EMERG |
Typedefs | |
typedef ftdm_status_t(*) | ftdm_queue_enqueue_func_t (ftdm_queue_t *queue, void *obj) |
typedef void *(*) | ftdm_queue_dequeue_func_t (ftdm_queue_t *queue) |
typedef ftdm_status_t(*) | ftdm_queue_wait_func_t (ftdm_queue_t *queue, int ms) |
typedef ftdm_status_t(*) | ftdm_queue_get_interrupt_func_t (ftdm_queue_t *queue, ftdm_interrupt_t **interrupt) |
typedef ftdm_status_t(*) | ftdm_queue_destroy_func_t (ftdm_queue_t **queue) |
typedef ftdm_queue_handler | ftdm_queue_handler_t |
typedef ftdm_caller_data | ftdm_caller_data_t |
Caller information. | |
typedef ftdm_conf_parameter | ftdm_conf_parameter_t |
Signaling configuration parameter for the stacks (variable=value pair). | |
typedef ftdm_iterator | ftdm_iterator_t |
Opaque general purpose iterator. | |
typedef void *(*) | ftdm_malloc_func_t (void *pool, ftdm_size_t len) |
Custom memory handler hooks. Not recommended to use unless you need memory allocation customizations. | |
typedef void *(*) | ftdm_calloc_func_t (void *pool, ftdm_size_t elements, ftdm_size_t len) |
typedef void *(*) | ftdm_realloc_func_t (void *pool, void *buff, ftdm_size_t len) |
typedef void(*) | ftdm_free_func_t (void *pool, void *ptr) |
typedef ftdm_status_t(*) | fio_channel_request_t (ftdm_span_t *span, uint32_t chan_id, ftdm_direction_t direction, ftdm_caller_data_t *caller_data, ftdm_channel_t **ftdmchan) |
FreeTDM I/O layer interface function typedefs You don't need these unless your implementing an I/O interface module (most users don't). | |
typedef ftdm_status_t(*) | fio_channel_outgoing_call_t (ftdm_channel_t *ftdmchan) |
typedef ftdm_status_t(*) | fio_channel_set_sig_status_t (ftdm_channel_t *ftdmchan, ftdm_signaling_status_t status) |
typedef ftdm_status_t(*) | fio_channel_get_sig_status_t (ftdm_channel_t *ftdmchan, ftdm_signaling_status_t *status) |
typedef ftdm_status_t(*) | fio_span_set_sig_status_t (ftdm_span_t *span, ftdm_signaling_status_t status) |
typedef ftdm_status_t(*) | fio_span_get_sig_status_t (ftdm_span_t *span, ftdm_signaling_status_t *status) |
typedef ftdm_status_t(*) | fio_span_poll_event_t (ftdm_span_t *span, uint32_t ms) |
typedef ftdm_status_t(*) | fio_span_next_event_t (ftdm_span_t *span, ftdm_event_t **event) |
typedef ftdm_status_t(*) | fio_signal_cb_t (ftdm_sigmsg_t *sigmsg) |
typedef ftdm_status_t(*) | fio_event_cb_t (ftdm_channel_t *ftdmchan, ftdm_event_t *event) |
typedef ftdm_status_t(*) | fio_configure_span_t (ftdm_span_t *span, const char *str, ftdm_chan_type_t type, char *name, char *number) |
typedef ftdm_status_t(*) | fio_configure_t (const char *category, const char *var, const char *val, int lineno) |
typedef ftdm_status_t(*) | fio_open_t (ftdm_channel_t *ftdmchan) |
typedef ftdm_status_t(*) | fio_close_t (ftdm_channel_t *ftdmchan) |
typedef ftdm_status_t(*) | fio_channel_destroy_t (ftdm_channel_t *ftdmchan) |
typedef ftdm_status_t(*) | fio_span_destroy_t (ftdm_span_t *span) |
typedef ftdm_status_t(*) | fio_get_alarms_t (ftdm_channel_t *ftdmchan) |
typedef ftdm_status_t(*) | fio_command_t (ftdm_channel_t *ftdmchan, ftdm_command_t command, void *obj) |
typedef ftdm_status_t(*) | fio_wait_t (ftdm_channel_t *ftdmchan, ftdm_wait_flag_t *flags, int32_t to) |
typedef ftdm_status_t(*) | fio_read_t (ftdm_channel_t *ftdmchan, void *data, ftdm_size_t *datalen) |
typedef ftdm_status_t(*) | fio_write_t (ftdm_channel_t *ftdmchan, void *data, ftdm_size_t *datalen) |
typedef ftdm_status_t(*) | fio_io_load_t (ftdm_io_interface_t **fio) |
typedef ftdm_status_t(*) | fio_sig_load_t (void) |
typedef ftdm_status_t(*) | fio_sig_configure_t (ftdm_span_t *span, fio_signal_cb_t sig_cb, va_list ap) |
typedef ftdm_status_t(*) | fio_configure_span_signaling_t (ftdm_span_t *span, fio_signal_cb_t sig_cb, ftdm_conf_parameter_t *ftdm_parameters) |
typedef ftdm_status_t(*) | fio_io_unload_t (void) |
typedef ftdm_status_t(*) | fio_sig_unload_t (void) |
typedef ftdm_status_t(*) | fio_api_t (ftdm_stream_handle_t *stream, const char *data) |
typedef ftdm_status_t(*) | fio_codec_t (void *data, ftdm_size_t max, ftdm_size_t *datalen) |
Enumerations | |
enum | ftdm_status_t { FTDM_SUCCESS, FTDM_FAIL, FTDM_MEMERR, FTDM_TIMEOUT, FTDM_NOTIMPL, FTDM_BREAK, FTDM_EINVAL } |
FreeTDM APIs possible return codes. More... | |
enum | ftdm_bool_t { FTDM_FALSE, FTDM_TRUE } |
FreeTDM bool type. More... | |
enum | ftdm_call_cause_t { FTDM_CAUSE_NONE = 0, FTDM_CAUSE_UNALLOCATED = 1, FTDM_CAUSE_NO_ROUTE_TRANSIT_NET = 2, FTDM_CAUSE_NO_ROUTE_DESTINATION = 3, FTDM_CAUSE_CHANNEL_UNACCEPTABLE = 6, FTDM_CAUSE_CALL_AWARDED_DELIVERED = 7, FTDM_CAUSE_NORMAL_CLEARING = 16, FTDM_CAUSE_USER_BUSY = 17, FTDM_CAUSE_NO_USER_RESPONSE = 18, FTDM_CAUSE_NO_ANSWER = 19, FTDM_CAUSE_SUBSCRIBER_ABSENT = 20, FTDM_CAUSE_CALL_REJECTED = 21, FTDM_CAUSE_NUMBER_CHANGED = 22, FTDM_CAUSE_REDIRECTION_TO_NEW_DESTINATION = 23, FTDM_CAUSE_EXCHANGE_ROUTING_ERROR = 25, FTDM_CAUSE_DESTINATION_OUT_OF_ORDER = 27, FTDM_CAUSE_INVALID_NUMBER_FORMAT = 28, FTDM_CAUSE_FACILITY_REJECTED = 29, FTDM_CAUSE_RESPONSE_TO_STATUS_ENQUIRY = 30, FTDM_CAUSE_NORMAL_UNSPECIFIED = 31, FTDM_CAUSE_NORMAL_CIRCUIT_CONGESTION = 34, FTDM_CAUSE_NETWORK_OUT_OF_ORDER = 38, FTDM_CAUSE_NORMAL_TEMPORARY_FAILURE = 41, FTDM_CAUSE_SWITCH_CONGESTION = 42, FTDM_CAUSE_ACCESS_INFO_DISCARDED = 43, FTDM_CAUSE_REQUESTED_CHAN_UNAVAIL = 44, FTDM_CAUSE_PRE_EMPTED = 45, FTDM_CAUSE_FACILITY_NOT_SUBSCRIBED = 50, FTDM_CAUSE_OUTGOING_CALL_BARRED = 52, FTDM_CAUSE_INCOMING_CALL_BARRED = 54, FTDM_CAUSE_BEARERCAPABILITY_NOTAUTH = 57, FTDM_CAUSE_BEARERCAPABILITY_NOTAVAIL = 58, FTDM_CAUSE_SERVICE_UNAVAILABLE = 63, FTDM_CAUSE_BEARERCAPABILITY_NOTIMPL = 65, FTDM_CAUSE_CHAN_NOT_IMPLEMENTED = 66, FTDM_CAUSE_FACILITY_NOT_IMPLEMENTED = 69, FTDM_CAUSE_SERVICE_NOT_IMPLEMENTED = 79, FTDM_CAUSE_INVALID_CALL_REFERENCE = 81, FTDM_CAUSE_INCOMPATIBLE_DESTINATION = 88, FTDM_CAUSE_INVALID_MSG_UNSPECIFIED = 95, FTDM_CAUSE_MANDATORY_IE_MISSING = 96, FTDM_CAUSE_MESSAGE_TYPE_NONEXIST = 97, FTDM_CAUSE_WRONG_MESSAGE = 98, FTDM_CAUSE_IE_NONEXIST = 99, FTDM_CAUSE_INVALID_IE_CONTENTS = 100, FTDM_CAUSE_WRONG_CALL_STATE = 101, FTDM_CAUSE_RECOVERY_ON_TIMER_EXPIRE = 102, FTDM_CAUSE_MANDATORY_IE_LENGTH_ERROR = 103, FTDM_CAUSE_PROTOCOL_ERROR = 111, FTDM_CAUSE_INTERWORKING = 127, FTDM_CAUSE_SUCCESS = 142, FTDM_CAUSE_ORIGINATOR_CANCEL = 487, FTDM_CAUSE_CRASH = 500, FTDM_CAUSE_SYSTEM_SHUTDOWN = 501, FTDM_CAUSE_LOSE_RACE = 502, FTDM_CAUSE_MANAGER_REQUEST = 503, FTDM_CAUSE_BLIND_TRANSFER = 600, FTDM_CAUSE_ATTENDED_TRANSFER = 601, FTDM_CAUSE_ALLOTTED_TIMEOUT = 602, FTDM_CAUSE_USER_CHALLENGE = 603, FTDM_CAUSE_MEDIA_TIMEOUT = 604 } |
Hangup cause codes. More... | |
enum | ftdm_direction_t { FTDM_TOP_DOWN, FTDM_BOTTOM_UP } |
Hunting direction (when hunting for free channels). More... | |
enum | ftdm_chan_type_t { FTDM_CHAN_TYPE_B, FTDM_CHAN_TYPE_DQ921, FTDM_CHAN_TYPE_DQ931, FTDM_CHAN_TYPE_FXS, FTDM_CHAN_TYPE_FXO, FTDM_CHAN_TYPE_EM, FTDM_CHAN_TYPE_CAS, FTDM_CHAN_TYPE_COUNT } |
I/O channel type. More... | |
enum | ftdm_ton_t { FTDM_TON_UNKNOWN = 0, FTDM_TON_INTERNATIONAL, FTDM_TON_NATIONAL, FTDM_TON_NETWORK_SPECIFIC, FTDM_TON_SUBSCRIBER_NUMBER, FTDM_TON_ABBREVIATED_NUMBER, FTDM_TON_RESERVED, FTDM_TON_INVALID = 255 } |
Type Of Number (TON). More... | |
enum | ftdm_npi_t { FTDM_NPI_UNKNOWN = 0, FTDM_NPI_ISDN = 1, FTDM_NPI_DATA = 3, FTDM_NPI_TELEX = 4, FTDM_NPI_NATIONAL = 8, FTDM_NPI_PRIVATE = 9, FTDM_NPI_RESERVED = 10, FTDM_NPI_INVALID = 255 } |
enum | ftdm_bearer_cap_t { FTDM_BEARER_CAP_SPEECH = 0x00, FTDM_BEARER_CAP_64K_UNRESTRICTED = 0x02, FTDM_BEARER_CAP_3_1KHZ_AUDIO = 0x03 } |
bearer capability More... | |
enum | ftdm_user_layer1_prot_t { FTDM_USER_LAYER1_PROT_V110 = 0x01, FTDM_USER_LAYER1_PROT_ULAW = 0x02, FTDM_USER_LAYER1_PROT_ALAW = 0x03 } |
user information layer 1 protocol More... | |
enum | ftdm_tone_type_t { FTDM_TONE_DTMF = (1 << 0) } |
Tone type. More... | |
enum | ftdm_signal_event_t { FTDM_SIGEVENT_START, FTDM_SIGEVENT_STOP, FTDM_SIGEVENT_UP, FTDM_SIGEVENT_FLASH, FTDM_SIGEVENT_PROGRESS, FTDM_SIGEVENT_PROGRESS_MEDIA, FTDM_SIGEVENT_ALARM_TRAP, FTDM_SIGEVENT_ALARM_CLEAR, FTDM_SIGEVENT_COLLECTED_DIGIT, FTDM_SIGEVENT_ADD_CALL, FTDM_SIGEVENT_RESTART, FTDM_SIGEVENT_SIGSTATUS_CHANGED, FTDM_SIGEVENT_COLLISION, FTDM_SIGEVENT_INVALID } |
Signaling messages sent by the stacks. More... | |
enum | ftdm_signaling_status_t { FTDM_SIG_STATE_DOWN, FTDM_SIG_STATE_SUSPENDED, FTDM_SIG_STATE_UP, FTDM_SIG_STATE_INVALID } |
Signaling status on a given span or specific channel on protocols that support it. More... | |
enum | ftdm_crash_policy_t { FTDM_CRASH_NEVER = 0, FTDM_CRASH_ON_ASSERT } |
Crash policy Useful for debugging only, default policy is never, if you wish to crash on asserts then use ftdm_global_set_crash_policy. More... | |
enum | ftdm_wait_flag_t { FTDM_NO_FLAGS = 0, FTDM_READ = (1 << 0), FTDM_WRITE = (1 << 1), FTDM_EVENTS = (1 << 2) } |
I/O waiting flags. More... | |
enum | ftdm_command_t { FTDM_COMMAND_NOOP, FTDM_COMMAND_SET_INTERVAL, FTDM_COMMAND_GET_INTERVAL, FTDM_COMMAND_SET_CODEC, FTDM_COMMAND_GET_CODEC, FTDM_COMMAND_SET_NATIVE_CODEC, FTDM_COMMAND_GET_NATIVE_CODEC, FTDM_COMMAND_ENABLE_DTMF_DETECT, FTDM_COMMAND_DISABLE_DTMF_DETECT, FTDM_COMMAND_SEND_DTMF, FTDM_COMMAND_SET_DTMF_ON_PERIOD, FTDM_COMMAND_GET_DTMF_ON_PERIOD, FTDM_COMMAND_SET_DTMF_OFF_PERIOD, FTDM_COMMAND_GET_DTMF_OFF_PERIOD, FTDM_COMMAND_GENERATE_RING_ON, FTDM_COMMAND_GENERATE_RING_OFF, FTDM_COMMAND_OFFHOOK, FTDM_COMMAND_ONHOOK, FTDM_COMMAND_FLASH, FTDM_COMMAND_WINK, FTDM_COMMAND_ENABLE_PROGRESS_DETECT, FTDM_COMMAND_DISABLE_PROGRESS_DETECT, FTDM_COMMAND_TRACE_INPUT, FTDM_COMMAND_TRACE_OUTPUT, FTDM_COMMAND_TRACE_END_ALL, FTDM_COMMAND_ENABLE_CALLERID_DETECT, FTDM_COMMAND_DISABLE_CALLERID_DETECT, FTDM_COMMAND_ENABLE_ECHOCANCEL, FTDM_COMMAND_DISABLE_ECHOCANCEL, FTDM_COMMAND_ENABLE_ECHOTRAIN, FTDM_COMMAND_DISABLE_ECHOTRAIN, FTDM_COMMAND_SET_CAS_BITS, FTDM_COMMAND_GET_CAS_BITS, FTDM_COMMAND_SET_RX_GAIN, FTDM_COMMAND_GET_RX_GAIN, FTDM_COMMAND_SET_TX_GAIN, FTDM_COMMAND_GET_TX_GAIN, FTDM_COMMAND_FLUSH_TX_BUFFERS, FTDM_COMMAND_FLUSH_RX_BUFFERS, FTDM_COMMAND_FLUSH_BUFFERS, FTDM_COMMAND_SET_PRE_BUFFER_SIZE, FTDM_COMMAND_SET_LINK_STATUS, FTDM_COMMAND_GET_LINK_STATUS, FTDM_COMMAND_ENABLE_LOOP, FTDM_COMMAND_DISABLE_LOOP, FTDM_COMMAND_COUNT } |
Channel commands that can be executed through ftdm_channel_command(). More... | |
enum | ftdm_codec_t { FTDM_CODEC_ULAW = 0, FTDM_CODEC_ALAW = 8, FTDM_CODEC_SLIN = 10, FTDM_CODEC_NONE = (1 << 30) } |
FreeTDM supported I/O codecs. More... | |
enum | ftdm_channel_indication_t { FTDM_CHANNEL_INDICATE_RING, FTDM_CHANNEL_INDICATE_PROCEED, FTDM_CHANNEL_INDICATE_PROGRESS, FTDM_CHANNEL_INDICATE_PROGRESS_MEDIA, FTDM_CHANNEL_INDICATE_BUSY } |
FreeTDM supported indications. This is used during incoming calls when you want to request the signaling stack to notify about indications occurring locally. More... | |
enum | ftdm_alarm_flag_t { FTDM_ALARM_NONE = 0, FTDM_ALARM_RED = (1 << 1), FTDM_ALARM_YELLOW = (1 << 2), FTDM_ALARM_RAI = (1 << 3), FTDM_ALARM_BLUE = (1 << 4), FTDM_ALARM_AIS = (1 << 5), FTDM_ALARM_GENERAL = (1 << 30) } |
FreeTDM supported hardware alarms. More... | |
Functions | |
FTDM_STR2ENUM_P (ftdm_str2ftdm_chan_type, ftdm_chan_type2str, ftdm_chan_type_t) typedef void(*ftdm_logger_t)(const char *file | |
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_chan_type2str transforms a channel type to string (ie: FTDM_CHAN_TYPE_B to "B") Test if a channel is a voice channel Test if a channel is a D-channel Logging function prototype to be used for all FreeTDM logs you should use ftdm_global_set_logger to set your own logger | |
FTDM_STR2ENUM_P (ftdm_str2ftdm_signal_event, ftdm_signal_event2str, ftdm_signal_event_t) typedef enum | |
Move from string to ftdm_signal_event_t and viceversa Span trunk types. | |
FTDM_STR2ENUM_P (ftdm_str2ftdm_trunk_type, ftdm_trunk_type2str, ftdm_trunk_type_t) typedef struct ftdm_channel_config | |
Move from string to ftdm_trunk_type_t and viceversa Basic channel configuration provided to ftdm_configure_span_channels. | |
FTDM_STR2ENUM_P (ftdm_str2ftdm_signaling_status, ftdm_signaling_status2str, ftdm_signaling_status_t) struct ftdm_sigmsg | |
Move from string to ftdm_signaling_status_t and viceversa Generic signaling message. | |
ftdm_status_t | ftdm_global_set_queue_handler (ftdm_queue_handler_t *handler) |
Override the default queue handler. | |
ftdm_status_t | _ftdm_channel_call_answer (const char *file, const char *func, int line, ftdm_channel_t *ftdmchan) |
Answer call recording the source code point where the it was called (see ftdm_channel_call_answer for an easy to use macro). | |
ftdm_status_t | _ftdm_channel_call_place (const char *file, const char *func, int line, ftdm_channel_t *ftdmchan) |
Place an outgoing call recording the source code point where it was called (see ftdm_channel_call_place for an easy to use macro). | |
ftdm_status_t | _ftdm_channel_call_indicate (const char *file, const char *func, int line, ftdm_channel_t *ftdmchan, ftdm_channel_indication_t indication) |
Indicate a new condition in an incoming call recording the source code point where it was called (see ftdm_channel_call_indicate for an easy to use macro). | |
ftdm_status_t | _ftdm_channel_call_hangup (const char *file, const char *func, int line, ftdm_channel_t *ftdmchan) |
Hangup the call without cause recording the source code point where it was called (see ftdm_channel_call_hangup for an easy to use macro). | |
ftdm_status_t | _ftdm_channel_call_hangup_with_cause (const char *file, const char *func, int line, ftdm_channel_t *ftdmchan, ftdm_call_cause_t) |
Hangup the call with cause recording the source code point where it was called (see ftdm_channel_call_hangup_with_cause for an easy to use macro). | |
ftdm_status_t | _ftdm_channel_call_hold (const char *file, const char *func, int line, ftdm_channel_t *ftdmchan) |
Put a call on hold recording the source code point where it was called (see ftdm_channel_call_hold for an easy to use macro). | |
ftdm_status_t | _ftdm_channel_call_unhold (const char *file, const char *func, int line, ftdm_channel_t *ftdmchan) |
Unhold a call recording the source code point where it was called (see ftdm_channel_call_unhold for an easy to use macro). | |
ftdm_bool_t | ftdm_channel_call_check_answered (const ftdm_channel_t *ftdmchan) |
Check if the call is answered already. | |
ftdm_bool_t | ftdm_channel_call_check_busy (const ftdm_channel_t *ftdmchan) |
Check if the call is busy. | |
ftdm_bool_t | ftdm_channel_call_check_hangup (const ftdm_channel_t *ftdmchan) |
Check if the call is hangup. | |
ftdm_bool_t | ftdm_channel_call_check_done (const ftdm_channel_t *ftdmchan) |
Check if the call is done (final state for a call, just after hangup). | |
ftdm_bool_t | ftdm_channel_call_check_hold (const ftdm_channel_t *ftdmchan) |
Check if the call is in hold. | |
ftdm_status_t | ftdm_channel_set_sig_status (ftdm_channel_t *ftdmchan, ftdm_signaling_status_t status) |
Set channel signaling status (ie: put specific circuit down) only if supported by the signaling. | |
ftdm_status_t | ftdm_channel_get_sig_status (ftdm_channel_t *ftdmchan, ftdm_signaling_status_t *status) |
Get channel signaling status (ie: whether protocol layer is up or down). | |
ftdm_status_t | ftdm_span_set_sig_status (ftdm_span_t *span, ftdm_signaling_status_t status) |
Set span signaling status (ie: put the whole span protocol layer down) only if supported by the signaling. | |
ftdm_status_t | ftdm_span_get_sig_status (ftdm_span_t *span, ftdm_signaling_status_t *status) |
Get span signaling status (ie: whether protocol layer is up or down). | |
void | ftdm_channel_set_private (ftdm_channel_t *ftdmchan, void *pvt) |
Set user private data in the channel. | |
void * | ftdm_channel_get_private (const ftdm_channel_t *ftdmchan) |
Get user private data in the channel. | |
ftdm_status_t | ftdm_channel_clear_token (ftdm_channel_t *ftdmchan, const char *token) |
Remove the given token from the channel. | |
void | ftdm_channel_replace_token (ftdm_channel_t *ftdmchan, const char *old_token, const char *new_token) |
Replace the given token with the new token. | |
ftdm_status_t | ftdm_channel_add_token (ftdm_channel_t *ftdmchan, char *token, int end) |
Add a new token to the channel. | |
const char * | ftdm_channel_get_token (const ftdm_channel_t *ftdmchan, uint32_t tokenid) |
Get the requested token. | |
uint32_t | ftdm_channel_get_token_count (const ftdm_channel_t *ftdmchan) |
Get the token count. | |
uint32_t | ftdm_channel_get_io_interval (const ftdm_channel_t *ftdmchan) |
Get the I/O read/write interval. | |
uint32_t | ftdm_channel_get_io_packet_len (const ftdm_channel_t *ftdmchan) |
Get the I/O read/write packet length per interval. | |
ftdm_codec_t | ftdm_channel_get_codec (const ftdm_channel_t *ftdmchan) |
Get the I/O read/write codec. | |
const char * | ftdm_channel_get_last_error (const ftdm_channel_t *ftdmchan) |
Get the last error string for the channel. | |
ftdm_status_t | ftdm_channel_get_alarms (ftdm_channel_t *ftdmchan, ftdm_alarm_flag_t *alarmbits) |
Get the current alarm bitmask for the channel. | |
ftdm_chan_type_t | ftdm_channel_get_type (const ftdm_channel_t *ftdmchan) |
Get the channel type. | |
ftdm_size_t | ftdm_channel_dequeue_dtmf (ftdm_channel_t *ftdmchan, char *dtmf, ftdm_size_t len) |
Dequeue DTMF from the given channel. | |
void | ftdm_channel_flush_dtmf (ftdm_channel_t *ftdmchan) |
Flush the DTMF queue. | |
ftdm_status_t | ftdm_span_poll_event (ftdm_span_t *span, uint32_t ms) |
Wait for an event in the span. | |
ftdm_status_t | ftdm_span_find (uint32_t id, ftdm_span_t **span) |
Find a span by its id. | |
const char * | ftdm_span_get_last_error (const ftdm_span_t *span) |
Get the last error string for the given span. | |
ftdm_status_t | ftdm_span_create (const char *iotype, const char *name, ftdm_span_t **span) |
Create a new span (not needed if you are using freetdm.conf). | |
ftdm_status_t | ftdm_span_add_channel (ftdm_span_t *span, ftdm_socket_t sockfd, ftdm_chan_type_t type, ftdm_channel_t **chan) |
Add a new channel to a span. | |
ftdm_status_t | ftdm_channel_add_to_group (const char *name, ftdm_channel_t *ftdmchan) |
Add the channel to a hunt group. | |
ftdm_status_t | ftdm_channel_remove_from_group (ftdm_group_t *group, ftdm_channel_t *ftdmchan) |
Remove the channel from a hunt group. | |
ftdm_status_t | ftdm_group_find (uint32_t id, ftdm_group_t **group) |
Find a hunt group by id. | |
ftdm_status_t | ftdm_group_find_by_name (const char *name, ftdm_group_t **group) |
Find a hunt group by name. | |
ftdm_status_t | ftdm_group_create (ftdm_group_t **group, const char *name) |
Create a group with the given name. | |
ftdm_status_t | ftdm_span_channel_use_count (ftdm_span_t *span, uint32_t *count) |
Get the number of channels in use on a span. | |
ftdm_status_t | ftdm_group_channel_use_count (ftdm_group_t *group, uint32_t *count) |
Get the number of channels in use on a group. | |
uint32_t | ftdm_group_get_id (const ftdm_group_t *group) |
Get the id of a group. | |
ftdm_status_t | ftdm_channel_open (uint32_t span_id, uint32_t chan_id, ftdm_channel_t **ftdmchan) |
Open a channel specifying the span id and chan id (required before placing a call on the channel). | |
ftdm_status_t | ftdm_channel_open_by_span (uint32_t span_id, ftdm_direction_t direction, ftdm_caller_data_t *caller_data, ftdm_channel_t **ftdmchan) |
Hunts and opens a channel specifying the span id only. | |
ftdm_status_t | ftdm_channel_open_by_group (uint32_t group_id, ftdm_direction_t direction, ftdm_caller_data_t *caller_data, ftdm_channel_t **ftdmchan) |
Hunts and opens a channel specifying group id. | |
ftdm_status_t | ftdm_channel_close (ftdm_channel_t **ftdmchan) |
Close a previously open channel. | |
ftdm_status_t | ftdm_channel_command (ftdm_channel_t *ftdmchan, ftdm_command_t command, void *arg) |
Execute a command in a channel (same semantics as the ioctl() unix system call). | |
ftdm_status_t | ftdm_channel_wait (ftdm_channel_t *ftdmchan, ftdm_wait_flag_t *flags, int32_t timeout) |
Wait for I/O events in a channel. | |
ftdm_status_t | ftdm_channel_read (ftdm_channel_t *ftdmchan, void *data, ftdm_size_t *datalen) |
Read data from a channel. | |
ftdm_status_t | ftdm_channel_write (ftdm_channel_t *ftdmchan, void *data, ftdm_size_t datasize, ftdm_size_t *datalen) |
Write data to a channel. | |
ftdm_status_t | ftdm_channel_add_var (ftdm_channel_t *ftdmchan, const char *var_name, const char *value) |
Add a custom variable to the channel. | |
const char * | ftdm_channel_get_var (ftdm_channel_t *ftdmchan, const char *var_name) |
Get a custom variable from the channel. | |
ftdm_iterator_t * | ftdm_channel_get_var_iterator (const ftdm_channel_t *ftdmchan, ftdm_iterator_t *iter) |
Get an iterator to iterate over the channel variables. | |
void * | ftdm_iterator_current (ftdm_iterator_t *iter) |
Get iterator current value (depends on the iterator type). | |
ftdm_status_t | ftdm_channel_get_current_var (ftdm_iterator_t *iter, const char **var_name, const char **var_val) |
Get variable name and value for the current iterator position. | |
ftdm_iterator_t * | ftdm_iterator_next (ftdm_iterator_t *iter) |
Advance iterator. | |
ftdm_status_t | ftdm_iterator_free (ftdm_iterator_t *iter) |
Free iterator. | |
ftdm_span_t * | ftdm_channel_get_span (const ftdm_channel_t *ftdmchan) |
Get the span pointer associated to the channel. | |
uint32_t | ftdm_channel_get_span_id (const ftdm_channel_t *ftdmchan) |
Get the span pointer associated to the channel. | |
uint32_t | ftdm_channel_get_ph_span_id (const ftdm_channel_t *ftdmchan) |
Get the physical span id associated to the channel. | |
const char * | ftdm_channel_get_span_name (const ftdm_channel_t *ftdmchan) |
Get the span name associated to the channel. | |
uint32_t | ftdm_channel_get_id (const ftdm_channel_t *ftdmchan) |
Get the id associated to the channel. | |
const char * | ftdm_channel_get_name (const ftdm_channel_t *ftdmchan) |
Get the name associated to the channel. | |
const char * | ftdm_channel_get_number (const ftdm_channel_t *ftdmchan) |
Get the number associated to the channel. | |
uint32_t | ftdm_channel_get_ph_id (const ftdm_channel_t *ftdmchan) |
Get the number physical id associated to the channel. | |
ftdm_status_t | ftdm_configure_span (ftdm_span_t *span, const char *type, fio_signal_cb_t sig_cb,...) |
Configure span with a signaling type (deprecated use ftdm_configure_span_signaling instead). | |
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) |
Configure span with a signaling type. | |
ftdm_status_t | ftdm_span_start (ftdm_span_t *span) |
Start the span signaling (must call ftdm_configure_span_signaling first). | |
ftdm_status_t | ftdm_span_stop (ftdm_span_t *span) |
Stop the span signaling (must call ftdm_span_start first). | |
ftdm_status_t | ftdm_global_add_io_interface (ftdm_io_interface_t *io_interface) |
Register a custom I/O interface with the FreeTDM core. | |
ftdm_status_t | ftdm_span_find_by_name (const char *name, ftdm_span_t **span) |
Find a span by name. | |
uint32_t | ftdm_span_get_id (const ftdm_span_t *span) |
Get the span id. | |
const char * | ftdm_span_get_name (const ftdm_span_t *span) |
Get the span name. | |
ftdm_iterator_t * | ftdm_span_get_chan_iterator (const ftdm_span_t *span, ftdm_iterator_t *iter) |
Get iterator for the span channels. | |
char * | ftdm_api_execute (const char *cmd) |
Execute a text command. The text command output will be returned and must be free'd. | |
ftdm_status_t | ftdm_conf_node_create (const char *name, ftdm_conf_node_t **node, ftdm_conf_node_t *parent) |
Create a configuration node. | |
ftdm_status_t | ftdm_conf_node_add_param (ftdm_conf_node_t *node, const char *param, const char *val) |
Adds a new parameter to the specified configuration node. | |
ftdm_status_t | ftdm_conf_node_destroy (ftdm_conf_node_t *node) |
Destroy the memory allocated for a configuration node (and all of its descendance). | |
ftdm_status_t | ftdm_configure_span_channels (ftdm_span_t *span, const char *str, ftdm_channel_config_t *chan_config, unsigned *configured) |
Create and configure channels in the given span. | |
void | ftdm_span_set_trunk_type (ftdm_span_t *span, ftdm_trunk_type_t type) |
Set the trunk type for a span This must be called before configuring any channels within the span. | |
ftdm_trunk_type_t | ftdm_span_get_trunk_type (const ftdm_span_t *span) |
Get the trunk type for a span. | |
ftdm_channel_t * | ftdm_span_get_channel (const ftdm_span_t *span, uint32_t chanid) |
Return the channel identified by the provided id. | |
uint32_t | ftdm_span_get_chan_count (const ftdm_span_t *span) |
Return the channel count number for the given span. | |
ftdm_status_t | ftdm_channel_set_caller_data (ftdm_channel_t *ftdmchan, ftdm_caller_data_t *caller_data) |
Set the caller data for a channel. Be sure to call this before ftdm_channel_call_place(). | |
ftdm_caller_data_t * | ftdm_channel_get_caller_data (ftdm_channel_t *channel) |
Get the caller data for a channel, typically you need this when receiving FTDM_SIGEVENT_START. | |
const char * | ftdm_channel_get_state_str (const ftdm_channel_t *channel) |
For display debugging purposes you can display this string which describes the current channel internal state. | |
const char * | ftdm_channel_get_last_state_str (const ftdm_channel_t *channel) |
For display debugging purposes you can display this string which describes the last channel internal state. | |
char * | ftdm_channel_get_history_str (const ftdm_channel_t *channel) |
For display debugging purposes you can display this string which describes the history of the channel. | |
ftdm_status_t | ftdm_channel_init (ftdm_channel_t *ftdmchan) |
Initialize channel state for an outgoing call. | |
ftdm_status_t | ftdm_global_init (void) |
Initialize the library. | |
ftdm_status_t | ftdm_global_configuration (void) |
Create spans and channels reading the freetdm.conf file. | |
ftdm_status_t | ftdm_global_destroy (void) |
Shutdown the library. | |
ftdm_status_t | ftdm_global_set_memory_handler (ftdm_memory_handler_t *handler) |
Set memory handler for the library. | |
void | ftdm_global_set_crash_policy (ftdm_crash_policy_t policy) |
Set the crash policy for the library. | |
void | ftdm_global_set_logger (ftdm_logger_t logger) |
Set the logger handler for the library. | |
void | ftdm_global_set_default_logger (int level) |
Set the default logger level. | |
void | ftdm_global_set_mod_directory (const char *path) |
Set the directory to look for modules. | |
void | ftdm_global_set_config_directory (const char *path) |
Set the directory to look for configs. | |
ftdm_bool_t | ftdm_running (void) |
Check if the FTDM library is initialized and running. | |
FT_DECLARE_NONSTD (ftdm_status_t) fio_slin2ulaw(void *data | |
Basic transcoding functions. | |
Variables | |
const char * | func |
const char int | line |
const char int int | level |
const char int int const char * | fmt |
const char int int const char typedef ftdm_status_t(*) | ftdm_queue_create_func_t (ftdm_queue_t **queue, ftdm_size_t capacity) |
Data queue operation functions you can use ftdm_global_set_queue_handler if you want to override the default implementation (not recommended). | |
ftdm_trunk_type_t | |
ftdm_channel_config_t | |
FT_DECLARE_DATA ftdm_logger_t | ftdm_log |
ftdm_size_t | max |
ftdm_size_t ftdm_size_t * | datalen |
ftdm_size_t | max |
ftdm_size_t ftdm_size_t * | datalen |
ftdm_size_t | max |
ftdm_size_t ftdm_size_t * | datalen |
ftdm_size_t | max |
ftdm_size_t ftdm_size_t * | datalen |
ftdm_size_t | max |
ftdm_size_t ftdm_size_t * | datalen |
ftdm_size_t | max |
ftdm_size_t ftdm_size_t * | datalen |
#define CHAN_TYPE_STRINGS "B", "DQ921", "DQ931", "FXS", "FXO", "EM", "CAS", "INVALID" |
#define FIO_API_ARGS (ftdm_stream_handle_t *stream, const char *data) |
#define FIO_API_FUNCTION | ( | name | ) | ftdm_status_t name FIO_API_ARGS |
#define FIO_CHANNEL_DESTROY_ARGS (ftdm_channel_t *ftdmchan) |
#define FIO_CHANNEL_DESTROY_FUNCTION | ( | name | ) | ftdm_status_t name FIO_CHANNEL_DESTROY_ARGS |
#define FIO_CHANNEL_GET_SIG_STATUS_ARGS (ftdm_channel_t *ftdmchan, ftdm_signaling_status_t *status) |
#define FIO_CHANNEL_GET_SIG_STATUS_FUNCTION | ( | name | ) | ftdm_status_t name FIO_CHANNEL_GET_SIG_STATUS_ARGS |
#define FIO_CHANNEL_OUTGOING_CALL_ARGS (ftdm_channel_t *ftdmchan) |
#define FIO_CHANNEL_OUTGOING_CALL_FUNCTION | ( | name | ) | ftdm_status_t name FIO_CHANNEL_OUTGOING_CALL_ARGS |
#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) |
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_FUNCTION | ( | name | ) | ftdm_status_t name FIO_CHANNEL_REQUEST_ARGS |
FreeTDM I/O layer interface function prototype wrapper macros You don't need these unless your implementing an I/O interface module (most users don't).
#define FIO_CHANNEL_SET_SIG_STATUS_ARGS (ftdm_channel_t *ftdmchan, ftdm_signaling_status_t status) |
#define FIO_CHANNEL_SET_SIG_STATUS_FUNCTION | ( | name | ) | ftdm_status_t name FIO_CHANNEL_SET_SIG_STATUS_ARGS |
#define FIO_CLOSE_ARGS (ftdm_channel_t *ftdmchan) |
#define FIO_CLOSE_FUNCTION | ( | name | ) | ftdm_status_t name FIO_CLOSE_ARGS |
Basic transcoding function prototype.
#define FIO_CODEC_FUNCTION | ( | name | ) | FT_DECLARE_NONSTD(ftdm_status_t) name FIO_CODEC_ARGS |
#define FIO_COMMAND_ARGS (ftdm_channel_t *ftdmchan, ftdm_command_t command, void *obj) |
#define FIO_COMMAND_FUNCTION | ( | name | ) | ftdm_status_t name FIO_COMMAND_ARGS |
#define FIO_CONFIGURE_ARGS (const char *category, const char *var, const char *val, int lineno) |
#define FIO_CONFIGURE_FUNCTION | ( | name | ) | ftdm_status_t name FIO_CONFIGURE_ARGS |
#define FIO_CONFIGURE_SPAN_ARGS (ftdm_span_t *span, const char *str, ftdm_chan_type_t type, char *name, char *number) |
#define FIO_CONFIGURE_SPAN_FUNCTION | ( | name | ) | ftdm_status_t name FIO_CONFIGURE_SPAN_ARGS |
#define FIO_CONFIGURE_SPAN_SIGNALING_ARGS (ftdm_span_t *span, fio_signal_cb_t sig_cb, ftdm_conf_parameter_t *ftdm_parameters) |
#define FIO_CONFIGURE_SPAN_SIGNALING_FUNCTION | ( | name | ) | ftdm_status_t name FIO_CONFIGURE_SPAN_SIGNALING_ARGS |
#define FIO_EVENT_CB_ARGS (ftdm_channel_t *ftdmchan, ftdm_event_t *event) |
#define FIO_EVENT_CB_FUNCTION | ( | name | ) | ftdm_status_t name FIO_EVENT_CB_ARGS |
#define FIO_GET_ALARMS_ARGS (ftdm_channel_t *ftdmchan) |
#define FIO_GET_ALARMS_FUNCTION | ( | name | ) | ftdm_status_t name FIO_GET_ALARMS_ARGS |
#define FIO_IO_LOAD_ARGS (ftdm_io_interface_t **fio) |
#define FIO_IO_LOAD_FUNCTION | ( | name | ) | ftdm_status_t name FIO_IO_LOAD_ARGS |
#define FIO_IO_UNLOAD_ARGS (void) |
#define FIO_IO_UNLOAD_FUNCTION | ( | name | ) | ftdm_status_t name FIO_IO_UNLOAD_ARGS |
#define FIO_OPEN_ARGS (ftdm_channel_t *ftdmchan) |
#define FIO_OPEN_FUNCTION | ( | name | ) | ftdm_status_t name FIO_OPEN_ARGS |
#define FIO_READ_ARGS (ftdm_channel_t *ftdmchan, void *data, ftdm_size_t *datalen) |
#define FIO_READ_FUNCTION | ( | name | ) | ftdm_status_t name FIO_READ_ARGS |
#define FIO_SIG_CONFIGURE_ARGS (ftdm_span_t *span, fio_signal_cb_t sig_cb, va_list ap) |
#define FIO_SIG_CONFIGURE_FUNCTION | ( | name | ) | ftdm_status_t name FIO_SIG_CONFIGURE_ARGS |
#define FIO_SIG_LOAD_ARGS (void) |
#define FIO_SIG_LOAD_FUNCTION | ( | name | ) | ftdm_status_t name FIO_SIG_LOAD_ARGS |
#define FIO_SIG_UNLOAD_ARGS (void) |
#define FIO_SIG_UNLOAD_FUNCTION | ( | name | ) | ftdm_status_t name FIO_SIG_UNLOAD_ARGS |
#define FIO_SIGNAL_CB_ARGS (ftdm_sigmsg_t *sigmsg) |
#define FIO_SIGNAL_CB_FUNCTION | ( | name | ) | ftdm_status_t name FIO_SIGNAL_CB_ARGS |
#define FIO_SPAN_DESTROY_ARGS (ftdm_span_t *span) |
#define FIO_SPAN_DESTROY_FUNCTION | ( | name | ) | ftdm_status_t name FIO_SPAN_DESTROY_ARGS |
#define FIO_SPAN_GET_SIG_STATUS_ARGS (ftdm_span_t *span, ftdm_signaling_status_t *status) |
#define FIO_SPAN_GET_SIG_STATUS_FUNCTION | ( | name | ) | ftdm_status_t name FIO_SPAN_GET_SIG_STATUS_ARGS |
#define FIO_SPAN_NEXT_EVENT_ARGS (ftdm_span_t *span, ftdm_event_t **event) |
#define FIO_SPAN_NEXT_EVENT_FUNCTION | ( | name | ) | ftdm_status_t name FIO_SPAN_NEXT_EVENT_ARGS |
#define FIO_SPAN_POLL_EVENT_ARGS (ftdm_span_t *span, uint32_t ms) |
#define FIO_SPAN_POLL_EVENT_FUNCTION | ( | name | ) | ftdm_status_t name FIO_SPAN_POLL_EVENT_ARGS |
#define FIO_SPAN_SET_SIG_STATUS_ARGS (ftdm_span_t *span, ftdm_signaling_status_t status) |
#define FIO_SPAN_SET_SIG_STATUS_FUNCTION | ( | name | ) | ftdm_status_t name FIO_SPAN_SET_SIG_STATUS_ARGS |
#define FIO_WAIT_ARGS (ftdm_channel_t *ftdmchan, ftdm_wait_flag_t *flags, int32_t to) |
#define FIO_WAIT_FUNCTION | ( | name | ) | ftdm_status_t name FIO_WAIT_ARGS |
#define FIO_WRITE_ARGS (ftdm_channel_t *ftdmchan, void *data, ftdm_size_t *datalen) |
#define FIO_WRITE_FUNCTION | ( | name | ) | ftdm_status_t name FIO_WRITE_ARGS |
#define ftdm_channel_call_answer | ( | ftdmchan | ) | _ftdm_channel_call_answer(__FILE__, __FUNCTION__, __LINE__, (ftdmchan)) |
Answer call.
#define ftdm_channel_call_hangup | ( | ftdmchan | ) | _ftdm_channel_call_hangup(__FILE__, __FUNCTION__, __LINE__, (ftdmchan)) |
Hangup the call without cause.
#define ftdm_channel_call_hangup_with_cause | ( | ftdmchan, | |||
cause | ) | _ftdm_channel_call_hangup_with_cause(__FILE__, __FUNCTION__, __LINE__, (ftdmchan), (cause)) |
Hangup the call with cause.
#define ftdm_channel_call_hold | ( | ftdmchan | ) | _ftdm_channel_call_hold(__FILE__, __FUNCTION__, __LINE__, (ftdmchan)) |
Put a call on hold (if supported by the signaling stack).
#define ftdm_channel_call_indicate | ( | ftdmchan, | |||
indication | ) | _ftdm_channel_call_indicate(__FILE__, __FUNCTION__, __LINE__, (ftdmchan), (indication)) |
Indicate a new condition in an incoming call.
#define ftdm_channel_call_place | ( | ftdmchan | ) | _ftdm_channel_call_place(__FILE__, __FUNCTION__, __LINE__, (ftdmchan)) |
Place an outgoing call.
#define ftdm_channel_call_unhold | ( | ftdmchan | ) | _ftdm_channel_call_unhold(__FILE__, __FUNCTION__, __LINE__, (ftdmchan)) |
Unhold a call.
#define FTDM_INVALID_INT_PARM 0xFF |
#define FTDM_IS_DCHAN | ( | ftdm_chan | ) | ((ftdm_chan)->type == FTDM_CHAN_TYPE_DQ921 || (ftdm_chan)->type == FTDM_CHAN_TYPE_DQ931) |
#define FTDM_IS_VOICE_CHANNEL | ( | ftdm_chan | ) | ((ftdm_chan)->type != FTDM_CHAN_TYPE_DQ921 && (ftdm_chan)->type != FTDM_CHAN_TYPE_DQ931) |
#define FTDM_LOG_ALERT FTDM_PRE, FTDM_LOG_LEVEL_ALERT |
#define FTDM_LOG_CRIT FTDM_PRE, FTDM_LOG_LEVEL_CRIT |
#define FTDM_LOG_DEBUG FTDM_PRE, FTDM_LOG_LEVEL_DEBUG |
Log levels.
#define FTDM_LOG_EMERG FTDM_PRE, FTDM_LOG_LEVEL_EMERG |
#define FTDM_LOG_ERROR FTDM_PRE, FTDM_LOG_LEVEL_ERROR |
#define FTDM_LOG_INFO FTDM_PRE, FTDM_LOG_LEVEL_INFO |
#define FTDM_LOG_LEVEL_ALERT 1 |
#define FTDM_LOG_LEVEL_CRIT 2 |
#define FTDM_LOG_LEVEL_DEBUG 7 |
#define FTDM_LOG_LEVEL_EMERG 0 |
#define FTDM_LOG_LEVEL_ERROR 3 |
#define FTDM_LOG_LEVEL_INFO 6 |
#define FTDM_LOG_LEVEL_NOTICE 5 |
#define FTDM_LOG_LEVEL_WARNING 4 |
#define FTDM_LOG_NOTICE FTDM_PRE, FTDM_LOG_LEVEL_NOTICE |
#define FTDM_LOG_WARNING FTDM_PRE, FTDM_LOG_LEVEL_WARNING |
#define FTDM_MAX_CHANNELS_GROUP 1024 |
Max number of channels per hunting group.
#define FTDM_MAX_CHANNELS_PHYSICAL_SPAN 32 |
Max number of channels per physical span.
#define FTDM_MAX_CHANNELS_SPAN FTDM_MAX_CHANNELS_PHYSICAL_SPAN * FTDM_MAX_PHYSICAL_SPANS_PER_LOGICAL_SPAN |
Max number of channels a logical span can contain.
#define FTDM_MAX_GROUPS_INTERFACE FTDM_MAX_SPANS_INTERFACE |
Max number of groups.
#define FTDM_MAX_NAME_STR_SZ 80 |
Thread/Mutex OS abstraction API. Limit to span names.
#define FTDM_MAX_NUMBER_STR_SZ 20 |
Limit to channel number strings.
#define FTDM_MAX_PHYSICAL_SPANS_PER_LOGICAL_SPAN 32 |
Max number of physical spans per logical span.
#define FTDM_MAX_SPANS_INTERFACE 128 |
Max number of logical spans.
#define FTDM_PRE __FILE__, __FUNCTION__, __LINE__ |
#define FTDM_TAG_END NULL |
#define SIGNAL_STRINGS |
Value:
"START", "STOP", "UP", "FLASH", "PROGRESS", \ "PROGRESS_MEDIA", "ALARM_TRAP", "ALARM_CLEAR", \ "COLLECTED_DIGIT", "ADD_CALL", "RESTART", "SIGSTATUS_CHANGED", "COLLISION", "INVALID"
#define SIGSTATUS_STRINGS "DOWN", "SUSPENDED", "UP", "INVALID" |
#define TRUNK_STRINGS "E1", "T1", "J1", "BRI", "BRI_PTMP", "FXO", "FXS", "EM", "NONE" |
typedef ftdm_status_t(*) fio_api_t(ftdm_stream_handle_t *stream, const char *data) |
typedef ftdm_status_t(*) fio_channel_destroy_t(ftdm_channel_t *ftdmchan) |
typedef ftdm_status_t(*) fio_channel_get_sig_status_t(ftdm_channel_t *ftdmchan, ftdm_signaling_status_t *status) |
typedef ftdm_status_t(*) fio_channel_outgoing_call_t(ftdm_channel_t *ftdmchan) |
typedef ftdm_status_t(*) fio_channel_request_t(ftdm_span_t *span, uint32_t chan_id, ftdm_direction_t direction, ftdm_caller_data_t *caller_data, ftdm_channel_t **ftdmchan) |
FreeTDM I/O layer interface function typedefs You don't need these unless your implementing an I/O interface module (most users don't).
typedef ftdm_status_t(*) fio_channel_set_sig_status_t(ftdm_channel_t *ftdmchan, ftdm_signaling_status_t status) |
typedef ftdm_status_t(*) fio_close_t(ftdm_channel_t *ftdmchan) |
typedef ftdm_status_t(*) fio_codec_t(void *data, ftdm_size_t max, ftdm_size_t *datalen) |
typedef ftdm_status_t(*) fio_command_t(ftdm_channel_t *ftdmchan, ftdm_command_t command, void *obj) |
typedef ftdm_status_t(*) fio_configure_span_signaling_t(ftdm_span_t *span, fio_signal_cb_t sig_cb, ftdm_conf_parameter_t *ftdm_parameters) |
typedef ftdm_status_t(*) fio_configure_span_t(ftdm_span_t *span, const char *str, ftdm_chan_type_t type, char *name, char *number) |
typedef ftdm_status_t(*) fio_configure_t(const char *category, const char *var, const char *val, int lineno) |
typedef ftdm_status_t(*) fio_event_cb_t(ftdm_channel_t *ftdmchan, ftdm_event_t *event) |
typedef ftdm_status_t(*) fio_get_alarms_t(ftdm_channel_t *ftdmchan) |
typedef ftdm_status_t(*) fio_io_load_t(ftdm_io_interface_t **fio) |
typedef ftdm_status_t(*) fio_io_unload_t(void) |
typedef ftdm_status_t(*) fio_open_t(ftdm_channel_t *ftdmchan) |
typedef ftdm_status_t(*) fio_read_t(ftdm_channel_t *ftdmchan, void *data, ftdm_size_t *datalen) |
typedef ftdm_status_t(*) fio_sig_configure_t(ftdm_span_t *span, fio_signal_cb_t sig_cb, va_list ap) |
typedef ftdm_status_t(*) fio_sig_load_t(void) |
typedef ftdm_status_t(*) fio_sig_unload_t(void) |
typedef ftdm_status_t(*) fio_signal_cb_t(ftdm_sigmsg_t *sigmsg) |
typedef ftdm_status_t(*) fio_span_destroy_t(ftdm_span_t *span) |
typedef ftdm_status_t(*) fio_span_get_sig_status_t(ftdm_span_t *span, ftdm_signaling_status_t *status) |
typedef ftdm_status_t(*) fio_span_next_event_t(ftdm_span_t *span, ftdm_event_t **event) |
typedef ftdm_status_t(*) fio_span_poll_event_t(ftdm_span_t *span, uint32_t ms) |
typedef ftdm_status_t(*) fio_span_set_sig_status_t(ftdm_span_t *span, ftdm_signaling_status_t status) |
typedef ftdm_status_t(*) fio_wait_t(ftdm_channel_t *ftdmchan, ftdm_wait_flag_t *flags, int32_t to) |
typedef ftdm_status_t(*) fio_write_t(ftdm_channel_t *ftdmchan, void *data, ftdm_size_t *datalen) |
typedef struct ftdm_caller_data ftdm_caller_data_t |
Caller information.
typedef void*(*) ftdm_calloc_func_t(void *pool, ftdm_size_t elements, ftdm_size_t len) |
typedef struct ftdm_conf_parameter ftdm_conf_parameter_t |
Signaling configuration parameter for the stacks (variable=value pair).
typedef void(*) ftdm_free_func_t(void *pool, void *ptr) |
typedef struct ftdm_iterator ftdm_iterator_t |
Opaque general purpose iterator.
typedef void*(*) ftdm_malloc_func_t(void *pool, ftdm_size_t len) |
Custom memory handler hooks. Not recommended to use unless you need memory allocation customizations.
typedef void*(*) ftdm_queue_dequeue_func_t(ftdm_queue_t *queue) |
typedef ftdm_status_t(*) ftdm_queue_destroy_func_t(ftdm_queue_t **queue) |
typedef ftdm_status_t(*) ftdm_queue_enqueue_func_t(ftdm_queue_t *queue, void *obj) |
typedef ftdm_status_t(*) ftdm_queue_get_interrupt_func_t(ftdm_queue_t *queue, ftdm_interrupt_t **interrupt) |
typedef struct ftdm_queue_handler ftdm_queue_handler_t |
typedef ftdm_status_t(*) ftdm_queue_wait_func_t(ftdm_queue_t *queue, int ms) |
typedef void*(*) ftdm_realloc_func_t(void *pool, void *buff, ftdm_size_t len) |
enum ftdm_alarm_flag_t |
FreeTDM supported hardware alarms.
FTDM_ALARM_NONE | |
FTDM_ALARM_RED | |
FTDM_ALARM_YELLOW | |
FTDM_ALARM_RAI | |
FTDM_ALARM_BLUE | |
FTDM_ALARM_AIS | |
FTDM_ALARM_GENERAL |
00588 { 00589 FTDM_ALARM_NONE = 0, 00590 FTDM_ALARM_RED = (1 << 1), 00591 FTDM_ALARM_YELLOW = (1 << 2), 00592 FTDM_ALARM_RAI = (1 << 3), 00593 FTDM_ALARM_BLUE = (1 << 4), 00594 FTDM_ALARM_AIS = (1 << 5), 00595 FTDM_ALARM_GENERAL = (1 << 30) 00596 } ftdm_alarm_flag_t;
enum ftdm_bearer_cap_t |
bearer capability
00246 { 00247 FTDM_BEARER_CAP_SPEECH = 0x00, 00248 FTDM_BEARER_CAP_64K_UNRESTRICTED = 0x02, 00249 FTDM_BEARER_CAP_3_1KHZ_AUDIO = 0x03 00250 } ftdm_bearer_cap_t;
enum ftdm_bool_t |
enum ftdm_call_cause_t |
Hangup cause codes.
00096 { 00097 FTDM_CAUSE_NONE = 0, 00098 FTDM_CAUSE_UNALLOCATED = 1, 00099 FTDM_CAUSE_NO_ROUTE_TRANSIT_NET = 2, 00100 FTDM_CAUSE_NO_ROUTE_DESTINATION = 3, 00101 FTDM_CAUSE_CHANNEL_UNACCEPTABLE = 6, 00102 FTDM_CAUSE_CALL_AWARDED_DELIVERED = 7, 00103 FTDM_CAUSE_NORMAL_CLEARING = 16, 00104 FTDM_CAUSE_USER_BUSY = 17, 00105 FTDM_CAUSE_NO_USER_RESPONSE = 18, 00106 FTDM_CAUSE_NO_ANSWER = 19, 00107 FTDM_CAUSE_SUBSCRIBER_ABSENT = 20, 00108 FTDM_CAUSE_CALL_REJECTED = 21, 00109 FTDM_CAUSE_NUMBER_CHANGED = 22, 00110 FTDM_CAUSE_REDIRECTION_TO_NEW_DESTINATION = 23, 00111 FTDM_CAUSE_EXCHANGE_ROUTING_ERROR = 25, 00112 FTDM_CAUSE_DESTINATION_OUT_OF_ORDER = 27, 00113 FTDM_CAUSE_INVALID_NUMBER_FORMAT = 28, 00114 FTDM_CAUSE_FACILITY_REJECTED = 29, 00115 FTDM_CAUSE_RESPONSE_TO_STATUS_ENQUIRY = 30, 00116 FTDM_CAUSE_NORMAL_UNSPECIFIED = 31, 00117 FTDM_CAUSE_NORMAL_CIRCUIT_CONGESTION = 34, 00118 FTDM_CAUSE_NETWORK_OUT_OF_ORDER = 38, 00119 FTDM_CAUSE_NORMAL_TEMPORARY_FAILURE = 41, 00120 FTDM_CAUSE_SWITCH_CONGESTION = 42, 00121 FTDM_CAUSE_ACCESS_INFO_DISCARDED = 43, 00122 FTDM_CAUSE_REQUESTED_CHAN_UNAVAIL = 44, 00123 FTDM_CAUSE_PRE_EMPTED = 45, 00124 FTDM_CAUSE_FACILITY_NOT_SUBSCRIBED = 50, 00125 FTDM_CAUSE_OUTGOING_CALL_BARRED = 52, 00126 FTDM_CAUSE_INCOMING_CALL_BARRED = 54, 00127 FTDM_CAUSE_BEARERCAPABILITY_NOTAUTH = 57, 00128 FTDM_CAUSE_BEARERCAPABILITY_NOTAVAIL = 58, 00129 FTDM_CAUSE_SERVICE_UNAVAILABLE = 63, 00130 FTDM_CAUSE_BEARERCAPABILITY_NOTIMPL = 65, 00131 FTDM_CAUSE_CHAN_NOT_IMPLEMENTED = 66, 00132 FTDM_CAUSE_FACILITY_NOT_IMPLEMENTED = 69, 00133 FTDM_CAUSE_SERVICE_NOT_IMPLEMENTED = 79, 00134 FTDM_CAUSE_INVALID_CALL_REFERENCE = 81, 00135 FTDM_CAUSE_INCOMPATIBLE_DESTINATION = 88, 00136 FTDM_CAUSE_INVALID_MSG_UNSPECIFIED = 95, 00137 FTDM_CAUSE_MANDATORY_IE_MISSING = 96, 00138 FTDM_CAUSE_MESSAGE_TYPE_NONEXIST = 97, 00139 FTDM_CAUSE_WRONG_MESSAGE = 98, 00140 FTDM_CAUSE_IE_NONEXIST = 99, 00141 FTDM_CAUSE_INVALID_IE_CONTENTS = 100, 00142 FTDM_CAUSE_WRONG_CALL_STATE = 101, 00143 FTDM_CAUSE_RECOVERY_ON_TIMER_EXPIRE = 102, 00144 FTDM_CAUSE_MANDATORY_IE_LENGTH_ERROR = 103, 00145 FTDM_CAUSE_PROTOCOL_ERROR = 111, 00146 FTDM_CAUSE_INTERWORKING = 127, 00147 FTDM_CAUSE_SUCCESS = 142, 00148 FTDM_CAUSE_ORIGINATOR_CANCEL = 487, 00149 FTDM_CAUSE_CRASH = 500, 00150 FTDM_CAUSE_SYSTEM_SHUTDOWN = 501, 00151 FTDM_CAUSE_LOSE_RACE = 502, 00152 FTDM_CAUSE_MANAGER_REQUEST = 503, 00153 FTDM_CAUSE_BLIND_TRANSFER = 600, 00154 FTDM_CAUSE_ATTENDED_TRANSFER = 601, 00155 FTDM_CAUSE_ALLOTTED_TIMEOUT = 602, 00156 FTDM_CAUSE_USER_CHALLENGE = 603, 00157 FTDM_CAUSE_MEDIA_TIMEOUT = 604 00158 } ftdm_call_cause_t;
enum ftdm_chan_type_t |
I/O channel type.
00167 { 00168 FTDM_CHAN_TYPE_B, 00169 FTDM_CHAN_TYPE_DQ921, /*< DQ921 channel (D-channel) */ 00170 FTDM_CHAN_TYPE_DQ931, 00171 FTDM_CHAN_TYPE_FXS, 00172 FTDM_CHAN_TYPE_FXO, 00173 FTDM_CHAN_TYPE_EM, 00174 FTDM_CHAN_TYPE_CAS, 00175 FTDM_CHAN_TYPE_COUNT 00176 } ftdm_chan_type_t;
FreeTDM supported indications. This is used during incoming calls when you want to request the signaling stack to notify about indications occurring locally.
FTDM_CHANNEL_INDICATE_RING | |
FTDM_CHANNEL_INDICATE_PROCEED | |
FTDM_CHANNEL_INDICATE_PROGRESS | |
FTDM_CHANNEL_INDICATE_PROGRESS_MEDIA | |
FTDM_CHANNEL_INDICATE_BUSY |
00579 { 00580 FTDM_CHANNEL_INDICATE_RING, 00581 FTDM_CHANNEL_INDICATE_PROCEED, 00582 FTDM_CHANNEL_INDICATE_PROGRESS, 00583 FTDM_CHANNEL_INDICATE_PROGRESS_MEDIA, 00584 FTDM_CHANNEL_INDICATE_BUSY, 00585 } ftdm_channel_indication_t;
enum ftdm_codec_t |
FreeTDM supported I/O codecs.
00569 { 00570 FTDM_CODEC_ULAW = 0, 00571 FTDM_CODEC_ALAW = 8, 00572 FTDM_CODEC_SLIN = 10, 00573 FTDM_CODEC_NONE = (1 << 30) 00574 } ftdm_codec_t;
enum ftdm_command_t |
Channel commands that can be executed through ftdm_channel_command().
00392 { 00393 FTDM_COMMAND_NOOP, 00394 FTDM_COMMAND_SET_INTERVAL, 00395 FTDM_COMMAND_GET_INTERVAL, 00396 FTDM_COMMAND_SET_CODEC, 00397 FTDM_COMMAND_GET_CODEC, 00398 FTDM_COMMAND_SET_NATIVE_CODEC, 00399 FTDM_COMMAND_GET_NATIVE_CODEC, 00400 FTDM_COMMAND_ENABLE_DTMF_DETECT, 00401 FTDM_COMMAND_DISABLE_DTMF_DETECT, 00402 FTDM_COMMAND_SEND_DTMF, 00403 FTDM_COMMAND_SET_DTMF_ON_PERIOD, 00404 FTDM_COMMAND_GET_DTMF_ON_PERIOD, 00405 FTDM_COMMAND_SET_DTMF_OFF_PERIOD, 00406 FTDM_COMMAND_GET_DTMF_OFF_PERIOD, 00407 FTDM_COMMAND_GENERATE_RING_ON, 00408 FTDM_COMMAND_GENERATE_RING_OFF, 00409 FTDM_COMMAND_OFFHOOK, 00410 FTDM_COMMAND_ONHOOK, 00411 FTDM_COMMAND_FLASH, 00412 FTDM_COMMAND_WINK, 00413 FTDM_COMMAND_ENABLE_PROGRESS_DETECT, 00414 FTDM_COMMAND_DISABLE_PROGRESS_DETECT, 00415 FTDM_COMMAND_TRACE_INPUT, 00416 FTDM_COMMAND_TRACE_OUTPUT, 00417 FTDM_COMMAND_TRACE_END_ALL, 00418 FTDM_COMMAND_ENABLE_CALLERID_DETECT, 00419 FTDM_COMMAND_DISABLE_CALLERID_DETECT, 00420 FTDM_COMMAND_ENABLE_ECHOCANCEL, 00421 FTDM_COMMAND_DISABLE_ECHOCANCEL, 00422 FTDM_COMMAND_ENABLE_ECHOTRAIN, 00423 FTDM_COMMAND_DISABLE_ECHOTRAIN, 00424 FTDM_COMMAND_SET_CAS_BITS, 00425 FTDM_COMMAND_GET_CAS_BITS, 00426 FTDM_COMMAND_SET_RX_GAIN, 00427 FTDM_COMMAND_GET_RX_GAIN, 00428 FTDM_COMMAND_SET_TX_GAIN, 00429 FTDM_COMMAND_GET_TX_GAIN, 00430 FTDM_COMMAND_FLUSH_TX_BUFFERS, 00431 FTDM_COMMAND_FLUSH_RX_BUFFERS, 00432 FTDM_COMMAND_FLUSH_BUFFERS, 00433 FTDM_COMMAND_SET_PRE_BUFFER_SIZE, 00434 FTDM_COMMAND_SET_LINK_STATUS, 00435 FTDM_COMMAND_GET_LINK_STATUS, 00436 FTDM_COMMAND_ENABLE_LOOP, 00437 FTDM_COMMAND_DISABLE_LOOP, 00438 FTDM_COMMAND_COUNT 00439 } ftdm_command_t;
enum ftdm_crash_policy_t |
Crash policy Useful for debugging only, default policy is never, if you wish to crash on asserts then use ftdm_global_set_crash_policy.
00368 { 00369 FTDM_CRASH_NEVER = 0, 00370 FTDM_CRASH_ON_ASSERT 00371 } ftdm_crash_policy_t;
enum ftdm_direction_t |
Hunting direction (when hunting for free channels).
00161 { 00162 FTDM_TOP_DOWN, 00163 FTDM_BOTTOM_UP 00164 } ftdm_direction_t;
enum ftdm_npi_t |
Numbering Plan Identification (NPI)
FTDM_NPI_UNKNOWN | |
FTDM_NPI_ISDN | |
FTDM_NPI_DATA | |
FTDM_NPI_TELEX | |
FTDM_NPI_NATIONAL | |
FTDM_NPI_PRIVATE | |
FTDM_NPI_RESERVED | |
FTDM_NPI_INVALID |
00227 { 00228 FTDM_NPI_UNKNOWN = 0, 00229 FTDM_NPI_ISDN = 1, 00230 FTDM_NPI_DATA = 3, 00231 FTDM_NPI_TELEX = 4, 00232 FTDM_NPI_NATIONAL = 8, 00233 FTDM_NPI_PRIVATE = 9, 00234 FTDM_NPI_RESERVED = 10, 00235 FTDM_NPI_INVALID = 255 00236 } ftdm_npi_t;
enum ftdm_signal_event_t |
Signaling messages sent by the stacks.
00287 { 00288 FTDM_SIGEVENT_START, 00289 FTDM_SIGEVENT_STOP, 00290 FTDM_SIGEVENT_UP, 00291 FTDM_SIGEVENT_FLASH, /*< Flash event (typically on-hook/off-hook for analog devices) */ 00292 FTDM_SIGEVENT_PROGRESS, 00293 FTDM_SIGEVENT_PROGRESS_MEDIA, 00294 FTDM_SIGEVENT_ALARM_TRAP, 00295 FTDM_SIGEVENT_ALARM_CLEAR, 00296 FTDM_SIGEVENT_COLLECTED_DIGIT, 00297 FTDM_SIGEVENT_ADD_CALL, 00298 FTDM_SIGEVENT_RESTART, 00299 FTDM_SIGEVENT_SIGSTATUS_CHANGED, 00300 FTDM_SIGEVENT_COLLISION, 00301 FTDM_SIGEVENT_INVALID 00302 } ftdm_signal_event_t;
Signaling status on a given span or specific channel on protocols that support it.
00340 { 00341 /* The signaling link is down (no d-chans up in the span/group, MFC-R2 bit pattern unidentified) */ 00342 FTDM_SIG_STATE_DOWN, 00343 /* The signaling link is suspended (MFC-R2 bit pattern blocked, ss7 blocked?) */ 00344 FTDM_SIG_STATE_SUSPENDED, 00345 /* The signaling link is ready and calls can be placed (ie: d-chan up) */ 00346 FTDM_SIG_STATE_UP, 00347 /* Invalid status */ 00348 FTDM_SIG_STATE_INVALID 00349 } ftdm_signaling_status_t;
enum ftdm_status_t |
FreeTDM APIs possible return codes.
00066 { 00067 FTDM_SUCCESS, 00068 FTDM_FAIL, 00069 FTDM_MEMERR, 00070 FTDM_TIMEOUT, 00071 FTDM_NOTIMPL, 00072 FTDM_BREAK, 00073 FTDM_EINVAL 00074 } ftdm_status_t;
enum ftdm_ton_t |
Type Of Number (TON).
FTDM_TON_UNKNOWN | |
FTDM_TON_INTERNATIONAL | |
FTDM_TON_NATIONAL | |
FTDM_TON_NETWORK_SPECIFIC | |
FTDM_TON_SUBSCRIBER_NUMBER | |
FTDM_TON_ABBREVIATED_NUMBER | |
FTDM_TON_RESERVED | |
FTDM_TON_INVALID |
00215 { 00216 FTDM_TON_UNKNOWN = 0, 00217 FTDM_TON_INTERNATIONAL, 00218 FTDM_TON_NATIONAL, 00219 FTDM_TON_NETWORK_SPECIFIC, 00220 FTDM_TON_SUBSCRIBER_NUMBER, 00221 FTDM_TON_ABBREVIATED_NUMBER, 00222 FTDM_TON_RESERVED, 00223 FTDM_TON_INVALID = 255 00224 } ftdm_ton_t;
enum ftdm_tone_type_t |
user information layer 1 protocol
00253 { 00254 FTDM_USER_LAYER1_PROT_V110 = 0x01, 00255 FTDM_USER_LAYER1_PROT_ULAW = 0x02, 00256 FTDM_USER_LAYER1_PROT_ALAW = 0x03, 00257 } ftdm_user_layer1_prot_t;
enum ftdm_wait_flag_t |
I/O waiting flags.
00374 { 00375 FTDM_NO_FLAGS = 0, 00376 FTDM_READ = (1 << 0), 00377 FTDM_WRITE = (1 << 1), 00378 FTDM_EVENTS = (1 << 2) 00379 } ftdm_wait_flag_t;
ftdm_status_t _ftdm_channel_call_answer | ( | const char * | file, | |
const char * | func, | |||
int | line, | |||
ftdm_channel_t * | ftdmchan | |||
) |
Answer call recording the source code point where the it was called (see ftdm_channel_call_answer for an easy to use macro).
ftdm_status_t _ftdm_channel_call_hangup | ( | const char * | file, | |
const char * | func, | |||
int | line, | |||
ftdm_channel_t * | ftdmchan | |||
) |
Hangup the call without cause recording the source code point where it was called (see ftdm_channel_call_hangup for an easy to use macro).
ftdm_status_t _ftdm_channel_call_hangup_with_cause | ( | const char * | file, | |
const char * | func, | |||
int | line, | |||
ftdm_channel_t * | ftdmchan, | |||
ftdm_call_cause_t | ||||
) |
Hangup the call with cause recording the source code point where it was called (see ftdm_channel_call_hangup_with_cause for an easy to use macro).
ftdm_status_t _ftdm_channel_call_hold | ( | const char * | file, | |
const char * | func, | |||
int | line, | |||
ftdm_channel_t * | ftdmchan | |||
) |
Put a call on hold recording the source code point where it was called (see ftdm_channel_call_hold for an easy to use macro).
ftdm_status_t _ftdm_channel_call_indicate | ( | const char * | file, | |
const char * | func, | |||
int | line, | |||
ftdm_channel_t * | ftdmchan, | |||
ftdm_channel_indication_t | indication | |||
) |
Indicate a new condition in an incoming call recording the source code point where it was called (see ftdm_channel_call_indicate for an easy to use macro).
ftdm_status_t _ftdm_channel_call_place | ( | const char * | file, | |
const char * | func, | |||
int | line, | |||
ftdm_channel_t * | ftdmchan | |||
) |
Place an outgoing call recording the source code point where it was called (see ftdm_channel_call_place for an easy to use macro).
ftdm_status_t _ftdm_channel_call_unhold | ( | const char * | file, | |
const char * | func, | |||
int | line, | |||
ftdm_channel_t * | ftdmchan | |||
) |
Unhold a call recording the source code point where it was called (see ftdm_channel_call_unhold for an easy to use macro).
FT_DECLARE_NONSTD | ( | ftdm_status_t | ) |
Basic transcoding functions.
char* ftdm_api_execute | ( | const char * | cmd | ) |
Execute a text command. The text command output will be returned and must be free'd.
cmd | The command to execute |
FTDM_SUCCESS | success | |
FTDM_FAIL | failure |
ftdm_status_t ftdm_channel_add_to_group | ( | const char * | name, | |
ftdm_channel_t * | ftdmchan | |||
) |
Add the channel to a hunt group.
ftdm_status_t ftdm_channel_add_token | ( | ftdm_channel_t * | ftdmchan, | |
char * | token, | |||
int | end | |||
) |
Add a new token to the channel.
ftdmchan | The channel where the token will be added | |
token | The token string to add | |
end | if 0, the token will be added at the beginning of the token list, to the end otherwise |
FTDM_SUCCESS | success | |
FTDM_FAIL | failure |
ftdm_status_t ftdm_channel_add_var | ( | ftdm_channel_t * | ftdmchan, | |
const char * | var_name, | |||
const char * | value | |||
) |
Add a custom variable to the channel.
ftdm_bool_t ftdm_channel_call_check_answered | ( | const ftdm_channel_t * | ftdmchan | ) |
Check if the call is answered already.
ftdm_bool_t ftdm_channel_call_check_busy | ( | const ftdm_channel_t * | ftdmchan | ) |
Check if the call is busy.
ftdm_bool_t ftdm_channel_call_check_done | ( | const ftdm_channel_t * | ftdmchan | ) |
Check if the call is done (final state for a call, just after hangup).
ftdm_bool_t ftdm_channel_call_check_hangup | ( | const ftdm_channel_t * | ftdmchan | ) |
Check if the call is hangup.
ftdm_bool_t ftdm_channel_call_check_hold | ( | const ftdm_channel_t * | ftdmchan | ) |
Check if the call is in hold.
ftdm_status_t ftdm_channel_clear_token | ( | ftdm_channel_t * | ftdmchan, | |
const char * | token | |||
) |
Remove the given token from the channel.
ftdmchan | The channel where the token is | |
token | The token string. If NULL, all tokens in the channel are cleared |
FTDM_SUCCESS | success | |
FTDM_FAIL | failure |
ftdm_status_t ftdm_channel_close | ( | ftdm_channel_t ** | ftdmchan | ) |
Close a previously open channel.
ftdmchan | pointer to the channel to close |
FTDM_SUCCESS | success (a suitable channel was found available) | |
FTDM_FAIL | failure (no suitable channel was found available) |
ftdm_status_t ftdm_channel_command | ( | ftdm_channel_t * | ftdmchan, | |
ftdm_command_t | command, | |||
void * | arg | |||
) |
Execute a command in a channel (same semantics as the ioctl() unix system call).
ftdmchan | The channel to execute the command | |
command | The command to execute | |
arg | The argument for the command |
FTDM_SUCCESS | success (a suitable channel was found available) | |
FTDM_FAIL | failure (no suitable channel was found available) |
ftdm_size_t ftdm_channel_dequeue_dtmf | ( | ftdm_channel_t * | ftdmchan, | |
char * | dtmf, | |||
ftdm_size_t | len | |||
) |
Dequeue DTMF from the given channel.
ftdmchan | The channel to dequeue DTMF from | |
dtmf | DTMF buffer to store the dtmf (you are responsible for its allocation and deallocation) | |
len | The size of the provided DTMF buffer |
The | size of the dequeued DTMF (it might be zero if there is no DTMF in the queue) |
void ftdm_channel_flush_dtmf | ( | ftdm_channel_t * | ftdmchan | ) |
Flush the DTMF queue.
ftdmchan | The channel to flush the dtmf queue of |
ftdm_status_t ftdm_channel_get_alarms | ( | ftdm_channel_t * | ftdmchan, | |
ftdm_alarm_flag_t * | alarmbits | |||
) |
Get the current alarm bitmask for the channel.
ftdmchan | The channel to get the alarm bitmask from | |
alarmbits | The alarm bitmask pointer to store the current alarms (you are responsible for allocation/deallocation) |
FTDM_SUCCESS | success | |
FTDM_FAIL | failure |
ftdm_caller_data_t* ftdm_channel_get_caller_data | ( | ftdm_channel_t * | channel | ) |
Get the caller data for a channel, typically you need this when receiving FTDM_SIGEVENT_START.
ftdm_codec_t ftdm_channel_get_codec | ( | const ftdm_channel_t * | ftdmchan | ) |
Get the I/O read/write codec.
ftdmchan | The channel to get the codec from |
The | codec type |
ftdm_status_t ftdm_channel_get_current_var | ( | ftdm_iterator_t * | iter, | |
const char ** | var_name, | |||
const char ** | var_val | |||
) |
Get variable name and value for the current iterator position.
char* ftdm_channel_get_history_str | ( | const ftdm_channel_t * | channel | ) |
For display debugging purposes you can display this string which describes the history of the channel.
channel | The channel to get the history from |
uint32_t ftdm_channel_get_id | ( | const ftdm_channel_t * | ftdmchan | ) |
Get the id associated to the channel.
uint32_t ftdm_channel_get_io_interval | ( | const ftdm_channel_t * | ftdmchan | ) |
Get the I/O read/write interval.
ftdmchan | The channel to get the interval from |
The | interval in milliseconds |
uint32_t ftdm_channel_get_io_packet_len | ( | const ftdm_channel_t * | ftdmchan | ) |
Get the I/O read/write packet length per interval.
ftdmchan | The channel to get the packet length from |
The | packet length interval in bytes |
const char* ftdm_channel_get_last_error | ( | const ftdm_channel_t * | ftdmchan | ) |
Get the last error string for the channel.
ftdmchan | The channel to get the error from |
The | error string (not thread-safe, the string is per channel, not per thread) |
const char* ftdm_channel_get_last_state_str | ( | const ftdm_channel_t * | channel | ) |
For display debugging purposes you can display this string which describes the last channel internal state.
const char* ftdm_channel_get_name | ( | const ftdm_channel_t * | ftdmchan | ) |
Get the name associated to the channel.
const char* ftdm_channel_get_number | ( | const ftdm_channel_t * | ftdmchan | ) |
Get the number associated to the channel.
uint32_t ftdm_channel_get_ph_id | ( | const ftdm_channel_t * | ftdmchan | ) |
Get the number physical id associated to the channel.
uint32_t ftdm_channel_get_ph_span_id | ( | const ftdm_channel_t * | ftdmchan | ) |
Get the physical span id associated to the channel.
void* ftdm_channel_get_private | ( | const ftdm_channel_t * | ftdmchan | ) |
Get user private data in the channel.
ftdmchan | The channel to retrieve the private data |
The | private data (if any or NULL if no data has been stored) |
ftdm_status_t ftdm_channel_get_sig_status | ( | ftdm_channel_t * | ftdmchan, | |
ftdm_signaling_status_t * | status | |||
) |
Get channel signaling status (ie: whether protocol layer is up or down).
ftdm_span_t* ftdm_channel_get_span | ( | const ftdm_channel_t * | ftdmchan | ) |
Get the span pointer associated to the channel.
uint32_t ftdm_channel_get_span_id | ( | const ftdm_channel_t * | ftdmchan | ) |
Get the span pointer associated to the channel.
const char* ftdm_channel_get_span_name | ( | const ftdm_channel_t * | ftdmchan | ) |
Get the span name associated to the channel.
const char* ftdm_channel_get_state_str | ( | const ftdm_channel_t * | channel | ) |
For display debugging purposes you can display this string which describes the current channel internal state.
const char* ftdm_channel_get_token | ( | const ftdm_channel_t * | ftdmchan, | |
uint32_t | tokenid | |||
) |
Get the requested token.
ftdmchan | The channel where the token is | |
tokenid | The id of the token |
The | token character string | |
NULL | token not found |
uint32_t ftdm_channel_get_token_count | ( | const ftdm_channel_t * | ftdmchan | ) |
Get the token count.
ftdmchan | The channel to get the token count from |
The | token count |
ftdm_chan_type_t ftdm_channel_get_type | ( | const ftdm_channel_t * | ftdmchan | ) |
Get the channel type.
ftdmchan | The channel to get the type from |
channel | type (FXO, FXS, B-channel, D-channel, etc) |
const char* ftdm_channel_get_var | ( | ftdm_channel_t * | ftdmchan, | |
const char * | var_name | |||
) |
Get a custom variable from the channel.
ftdm_iterator_t* ftdm_channel_get_var_iterator | ( | const ftdm_channel_t * | ftdmchan, | |
ftdm_iterator_t * | iter | |||
) |
Get an iterator to iterate over the channel variables.
ftdmchan | The channel structure containing the variables | |
iter | Optional iterator. You can reuse an old iterator (not previously freed) to avoid the extra allocation of a new iterator. |
ftdm_status_t ftdm_channel_init | ( | ftdm_channel_t * | ftdmchan | ) |
Initialize channel state for an outgoing call.
ftdm_status_t ftdm_channel_open | ( | uint32_t | span_id, | |
uint32_t | chan_id, | |||
ftdm_channel_t ** | ftdmchan | |||
) |
Open a channel specifying the span id and chan id (required before placing a call on the channel).
span_id | The span id the channel belongs to | |
chan_id | Channel id of the channel you want to open | |
ftdmchan | Pointer to store the channel once is open |
FTDM_SUCCESS | success (the channel was found and is available) | |
FTDM_FAIL | failure (channel was not found or not available) |
ftdm_status_t ftdm_channel_open_by_group | ( | uint32_t | group_id, | |
ftdm_direction_t | direction, | |||
ftdm_caller_data_t * | caller_data, | |||
ftdm_channel_t ** | ftdmchan | |||
) |
Hunts and opens a channel specifying group id.
group_id | The group id to hunt for a channel | |
direction | The hunting direction | |
caller_data | The calling party information | |
ftdmchan | The channel pointer to store the available channel |
FTDM_SUCCESS | success (a suitable channel was found available) | |
FTDM_FAIL | failure (no suitable channel was found available) |
ftdm_status_t ftdm_channel_open_by_span | ( | uint32_t | span_id, | |
ftdm_direction_t | direction, | |||
ftdm_caller_data_t * | caller_data, | |||
ftdm_channel_t ** | ftdmchan | |||
) |
Hunts and opens a channel specifying the span id only.
span_id | The span id to hunt for a channel | |
direction | The hunting direction | |
caller_data | The calling party information | |
ftdmchan | The channel pointer to store the available channel |
FTDM_SUCCESS | success (a suitable channel was found available) | |
FTDM_FAIL | failure (no suitable channel was found available) |
ftdm_status_t ftdm_channel_read | ( | ftdm_channel_t * | ftdmchan, | |
void * | data, | |||
ftdm_size_t * | datalen | |||
) |
Read data from a channel.
ftdmchan | The channel to read data from | |
data | The pointer to the buffer to store the read data | |
datalen | The size in bytes of the provided buffer |
FTDM_SUCCESS | success (a suitable channel was found available) | |
FTDM_FAIL | failure (no suitable channel was found available) |
ftdm_status_t ftdm_channel_remove_from_group | ( | ftdm_group_t * | group, | |
ftdm_channel_t * | ftdmchan | |||
) |
Remove the channel from a hunt group.
void ftdm_channel_replace_token | ( | ftdm_channel_t * | ftdmchan, | |
const char * | old_token, | |||
const char * | new_token | |||
) |
Replace the given token with the new token.
ftdmchan | The channel where the token is | |
old_token | The token to replace | |
new_token | The token to put in place |
ftdm_status_t ftdm_channel_set_caller_data | ( | ftdm_channel_t * | ftdmchan, | |
ftdm_caller_data_t * | caller_data | |||
) |
Set the caller data for a channel. Be sure to call this before ftdm_channel_call_place().
void ftdm_channel_set_private | ( | ftdm_channel_t * | ftdmchan, | |
void * | pvt | |||
) |
Set user private data in the channel.
ftdmchan | The channel where the private data will be stored | |
pvt | The private pointer to store |
ftdm_status_t ftdm_channel_set_sig_status | ( | ftdm_channel_t * | ftdmchan, | |
ftdm_signaling_status_t | status | |||
) |
Set channel signaling status (ie: put specific circuit down) only if supported by the signaling.
ftdm_status_t ftdm_channel_wait | ( | ftdm_channel_t * | ftdmchan, | |
ftdm_wait_flag_t * | flags, | |||
int32_t | timeout | |||
) |
Wait for I/O events in a channel.
ftdmchan | The channel to wait I/O for | |
flags | The wait I/O flags | |
timeout | The timeout in milliseconds |
FTDM_SUCCESS | success (a suitable channel was found available) | |
FTDM_FAIL | failure (no suitable channel was found available) |
ftdm_status_t ftdm_channel_write | ( | ftdm_channel_t * | ftdmchan, | |
void * | data, | |||
ftdm_size_t | datasize, | |||
ftdm_size_t * | datalen | |||
) |
Write data to a channel.
datasize on the other hand is the size of the entire buffer provided in data, whether all of that buffer is in use or not is a different matter. The difference becomes important only if you are using FreeTDM doing transcoding, for example, providing a ulaw frame of 160 bytes but where the I/O device accepts input in signed linear, the data to write will be 320 bytes, therefore datasize is expected to be at least 320 where datalen would be just 160.
ftdmchan | The channel to write data to | |
data | The pointer to the buffer to write | |
datasize | The maximum number of bytes in data that can be used (in case transcoding is necessary) | |
datalen | The size of the actual data |
FTDM_SUCCESS | success (a suitable channel was found available) | |
FTDM_FAIL | failure (no suitable channel was found available) |
ftdm_status_t ftdm_conf_node_add_param | ( | ftdm_conf_node_t * | node, | |
const char * | param, | |||
const char * | val | |||
) |
Adds a new parameter to the specified configuration node.
node | The configuration node to add the param-val pair to | |
param | The parameter name | |
val | The parameter value |
FTDM_FAIL failure
ftdm_status_t ftdm_conf_node_create | ( | const char * | name, | |
ftdm_conf_node_t ** | node, | |||
ftdm_conf_node_t * | parent | |||
) |
Create a configuration node.
name | The name of the configuration node | |
node | The node pointer to store the new node | |
parent | The parent node if any, or NULL if no parent |
FTDM_FAIL failure
ftdm_status_t ftdm_conf_node_destroy | ( | ftdm_conf_node_t * | node | ) |
Destroy the memory allocated for a configuration node (and all of its descendance).
node | The node to destroy |
FTDM_FAIL failure
ftdm_status_t ftdm_configure_span | ( | ftdm_span_t * | span, | |
const char * | type, | |||
fio_signal_cb_t | sig_cb, | |||
... | ||||
) |
Configure span with a signaling type (deprecated use ftdm_configure_span_signaling instead).
span | The span to configure | |
type | The signaling type ("boost", "isdn" and others, this depends on the available signaling modules) | |
sig_cb | The callback that the signaling stack will use to notify about events | |
... | variable argument list with "var", value sequence, the variable and values are signaling type dependant the last argument must be FTDM_TAG_END |
FTDM_SUCCESS | success | |
FTDM_FAIL | failure |
ftdm_status_t ftdm_configure_span_channels | ( | ftdm_span_t * | span, | |
const char * | str, | |||
ftdm_channel_config_t * | chan_config, | |||
unsigned * | configured | |||
) |
Create and configure channels in the given span.
span | The span container | |
str | The channel range null terminated string. "1-10", "24" etc | |
chan_config | The basic channel configuration for each channel within the range | |
configured | Pointer where the number of channels configured will be stored |
FTDM_FAIL failure
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 | |||
) |
Configure span with a signaling type.
span | The span to configure | |
type | The signaling type ("boost", "isdn" and others, this depends on the available signaling modules) | |
sig_cb | The callback that the signaling stack will use to notify about events | |
parameters | The array if signaling-specific parameters (the last member of the array MUST have its var member set to NULL, ie: .var = NULL) |
FTDM_SUCCESS | success | |
FTDM_FAIL | failure |
ftdm_status_t ftdm_global_add_io_interface | ( | ftdm_io_interface_t * | io_interface | ) |
Register a custom I/O interface with the FreeTDM core.
io_interface | the Interface to register |
FTDM_SUCCESS | success | |
FTDM_FAIL | failure |
ftdm_status_t ftdm_global_configuration | ( | void | ) |
Create spans and channels reading the freetdm.conf file.
ftdm_status_t ftdm_global_destroy | ( | void | ) |
Shutdown the library.
ftdm_status_t ftdm_global_init | ( | void | ) |
Initialize the library.
void ftdm_global_set_config_directory | ( | const char * | path | ) |
Set the directory to look for configs.
void ftdm_global_set_crash_policy | ( | ftdm_crash_policy_t | policy | ) |
Set the crash policy for the library.
void ftdm_global_set_default_logger | ( | int | level | ) |
Set the default logger level.
void ftdm_global_set_logger | ( | ftdm_logger_t | logger | ) |
Set the logger handler for the library.
ftdm_status_t ftdm_global_set_memory_handler | ( | ftdm_memory_handler_t * | handler | ) |
Set memory handler for the library.
void ftdm_global_set_mod_directory | ( | const char * | path | ) |
Set the directory to look for modules.
ftdm_status_t ftdm_global_set_queue_handler | ( | ftdm_queue_handler_t * | handler | ) |
Override the default queue handler.
ftdm_status_t ftdm_group_channel_use_count | ( | ftdm_group_t * | group, | |
uint32_t * | count | |||
) |
Get the number of channels in use on a group.
ftdm_status_t ftdm_group_create | ( | ftdm_group_t ** | group, | |
const char * | name | |||
) |
Create a group with the given name.
ftdm_status_t ftdm_group_find | ( | uint32_t | id, | |
ftdm_group_t ** | group | |||
) |
Find a hunt group by id.
ftdm_status_t ftdm_group_find_by_name | ( | const char * | name, | |
ftdm_group_t ** | group | |||
) |
Find a hunt group by name.
uint32_t ftdm_group_get_id | ( | const ftdm_group_t * | group | ) |
Get the id of a group.
void* ftdm_iterator_current | ( | ftdm_iterator_t * | iter | ) |
Get iterator current value (depends on the iterator type).
ftdm_status_t ftdm_iterator_free | ( | ftdm_iterator_t * | iter | ) |
Free iterator.
ftdm_iterator_t* ftdm_iterator_next | ( | ftdm_iterator_t * | iter | ) |
Advance iterator.
ftdm_bool_t ftdm_running | ( | void | ) |
Check if the FTDM library is initialized and running.
ftdm_status_t ftdm_span_add_channel | ( | ftdm_span_t * | span, | |
ftdm_socket_t | sockfd, | |||
ftdm_chan_type_t | type, | |||
ftdm_channel_t ** | chan | |||
) |
Add a new channel to a span.
span | Where to add the new channel | |
sockfd | The socket device associated to the channel (ie: sangoma device, dahdi device etc) | |
type | Channel type | |
chan | Pointer to store the newly allocated channel |
FTDM_SUCCESS | success (the channel was created) | |
FTDM_FAIL | failure (span was not created) |
ftdm_status_t ftdm_span_channel_use_count | ( | ftdm_span_t * | span, | |
uint32_t * | count | |||
) |
Get the number of channels in use on a span.
ftdm_status_t ftdm_span_create | ( | const char * | iotype, | |
const char * | name, | |||
ftdm_span_t ** | span | |||
) |
Create a new span (not needed if you are using freetdm.conf).
iotype | The I/O interface type this span will use. This depends on the available I/O modules ftmod_wanpipe = "wanpipe" (Sangoma) ftmod_zt = "zt" (DAHDI or Zaptel) ftmod_pika "pika" (this one is most likely broken) | |
name | Name for the span | |
span | Pointer to store the create span |
FTDM_SUCCESS | success (the span was created) | |
FTDM_FAIL | failure (span was not created) |
ftdm_status_t ftdm_span_find | ( | uint32_t | id, | |
ftdm_span_t ** | span | |||
) |
Find a span by its id.
id | The span id | |
span | Pointer to store the span if found |
FTDM_SUCCESS | success (span is valid) | |
FTDM_FAIL | failure (span is not valid) |
ftdm_status_t ftdm_span_find_by_name | ( | const char * | name, | |
ftdm_span_t ** | span | |||
) |
Find a span by name.
uint32_t ftdm_span_get_chan_count | ( | const ftdm_span_t * | span | ) |
Return the channel count number for the given span.
ftdm_iterator_t* ftdm_span_get_chan_iterator | ( | const ftdm_span_t * | span, | |
ftdm_iterator_t * | iter | |||
) |
Get iterator for the span channels.
span | The span containing the channels | |
iter | Optional iterator. You can reuse an old iterator (not previously freed) to avoid the extra allocation of a new iterator. |
ftdm_channel_t* ftdm_span_get_channel | ( | const ftdm_span_t * | span, | |
uint32_t | chanid | |||
) |
Return the channel identified by the provided id.
span | The span where the channel belongs | |
chanid | The channel id within the span |
uint32_t ftdm_span_get_id | ( | const ftdm_span_t * | span | ) |
Get the span id.
const char* ftdm_span_get_last_error | ( | const ftdm_span_t * | span | ) |
Get the last error string for the given span.
span | The span to get the last error from |
character | string for the last error |
const char* ftdm_span_get_name | ( | const ftdm_span_t * | span | ) |
Get the span name.
ftdm_status_t ftdm_span_get_sig_status | ( | ftdm_span_t * | span, | |
ftdm_signaling_status_t * | status | |||
) |
Get span signaling status (ie: whether protocol layer is up or down).
ftdm_trunk_type_t ftdm_span_get_trunk_type | ( | const ftdm_span_t * | span | ) |
Get the trunk type for a span.
span | The span |
ftdm_status_t ftdm_span_poll_event | ( | ftdm_span_t * | span, | |
uint32_t | ms | |||
) |
Wait for an event in the span.
span | The span to wait events for | |
ms | Milliseconds timeout |
FTDM_SUCCESS | success (at least one event available) | |
FTDM_TIMEOUT | Timed out waiting for events | |
FTDM_FAIL | failure |
ftdm_status_t ftdm_span_set_sig_status | ( | ftdm_span_t * | span, | |
ftdm_signaling_status_t | status | |||
) |
Set span signaling status (ie: put the whole span protocol layer down) only if supported by the signaling.
void ftdm_span_set_trunk_type | ( | ftdm_span_t * | span, | |
ftdm_trunk_type_t | type | |||
) |
Set the trunk type for a span This must be called before configuring any channels within the span.
span | The span | |
type | The trunk type |
ftdm_status_t ftdm_span_start | ( | ftdm_span_t * | span | ) |
Start the span signaling (must call ftdm_configure_span_signaling first).
span | The span to start |
FTDM_SUCCESS | success | |
FTDM_FAIL | failure |
ftdm_status_t ftdm_span_stop | ( | ftdm_span_t * | span | ) |
Stop the span signaling (must call ftdm_span_start first).
span | The span to stop |
FTDM_SUCCESS | success | |
FTDM_FAIL | failure |
FTDM_STR2ENUM_P | ( | ftdm_str2ftdm_signaling_status | , | |
ftdm_signaling_status2str | , | |||
ftdm_signaling_status_t | ||||
) |
Move from string to ftdm_signaling_status_t and viceversa Generic signaling message.
< The type of message
< Related channel
< easy access to chan id
< easy access to span_id
< Signaling status (valid if event_id is FTDM_SIGEVENT_SIGSTATUS_CHANGED)
< Message specific data if any
< Data len in case is needed
00356 { 00357 ftdm_signal_event_t event_id; 00358 ftdm_channel_t *channel; 00359 uint32_t chan_id; 00360 uint32_t span_id; 00361 ftdm_signaling_status_t sigstatus; 00362 void *raw_data; 00363 uint32_t raw_data_len; 00364 };
FTDM_STR2ENUM_P | ( | ftdm_str2ftdm_trunk_type | , | |
ftdm_trunk_type2str | , | |||
ftdm_trunk_type_t | ||||
) |
Move from string to ftdm_trunk_type_t and viceversa Basic channel configuration provided to ftdm_configure_span_channels.
00328 { 00329 char name[FTDM_MAX_NAME_STR_SZ]; 00330 char number[FTDM_MAX_NUMBER_STR_SZ]; 00331 char group_name[FTDM_MAX_NAME_STR_SZ]; 00332 ftdm_chan_type_t type; 00333 float rxgain; 00334 float txgain; 00335 } ftdm_channel_config_t;
FTDM_STR2ENUM_P | ( | ftdm_str2ftdm_signal_event | , | |
ftdm_signal_event2str | , | |||
ftdm_signal_event_t | ||||
) |
Move from string to ftdm_signal_event_t and viceversa Span trunk types.
00311 { 00312 FTDM_TRUNK_E1, 00313 FTDM_TRUNK_T1, 00314 FTDM_TRUNK_J1, 00315 FTDM_TRUNK_BRI, 00316 FTDM_TRUNK_BRI_PTMP, 00317 FTDM_TRUNK_FXO, 00318 FTDM_TRUNK_FXS, 00319 FTDM_TRUNK_EM, 00320 FTDM_TRUNK_NONE 00321 } ftdm_trunk_type_t;
FTDM_STR2ENUM_P | ( | ftdm_str2ftdm_chan_type | , | |
ftdm_chan_type2str | , | |||
ftdm_chan_type_t | ||||
) | const |
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_chan_type2str transforms a channel type to string (ie: FTDM_CHAN_TYPE_B to "B") Test if a channel is a voice channel Test if a channel is a D-channel Logging function prototype to be used for all FreeTDM logs you should use ftdm_global_set_logger to set your own logger
ftdm_size_t ftdm_size_t* datalen |
ftdm_size_t ftdm_size_t* datalen |
ftdm_size_t ftdm_size_t* datalen |
ftdm_size_t ftdm_size_t* datalen |
ftdm_size_t ftdm_size_t* datalen |
ftdm_size_t ftdm_size_t* datalen |
const char int int const char* fmt |
FT_DECLARE_DATA ftdm_logger_t ftdm_log |
const char int int const char typedef ftdm_status_t(*) ftdm_queue_create_func_t(ftdm_queue_t **queue, ftdm_size_t capacity) |
Data queue operation functions you can use ftdm_global_set_queue_handler if you want to override the default implementation (not recommended).
const char* func |
const char int int level |
const char int line |
ftdm_size_t max |
ftdm_size_t max |
ftdm_size_t max |
ftdm_size_t max |
ftdm_size_t max |
ftdm_size_t max |