36 #ifndef SANGOMA_INTERFACE_H
37 #define SANGOMA_INTERFACE_H
43 #if defined(__WINDOWS__)
45 # include <winioctl.h>
48 # include "wanpipe_time.h"
50 #elif defined(__LINUX__)
58 # include <sys/stat.h>
59 # include <sys/ioctl.h>
60 # include <sys/types.h>
63 # include <sys/socket.h>
66 # include <sys/wait.h>
71 # error "sangoma_interface.h: undefined OS type"
80 #define USE_STELEPHONY_API 1
84 #include "sangoma_cthread.h"
89 #if USE_STELEPHONY_API
90 # include "libstelephony.h"
95 #define SANGOMA_INTERFACE_NUMBER_OF_WAIT_OBJECTS 1
96 #define SANGOMA_TX_WAIT_OBJECT 0
97 #define SANGOMA_RX_AND_EVENT_WAIT_OBJECT 0
111 sangoma_wait_obj_t *
sng_wait_obj[SANGOMA_INTERFACE_NUMBER_OF_WAIT_OBJECTS];
197 #if USE_STELEPHONY_API
199 stelephony_callback_functions_t
scf;
203 void TxStelEncoderBuffer(
void *pStelEncoderBuffer);
204 CRITICAL_SECTION StelTxCriticalSection;
209 char terminate_tx_rx_threads;
214 unsigned char rx_data[SAMPLE_CPP_MAX_DATA_LEN];
219 unsigned char tx_data[SAMPLE_CPP_MAX_DATA_LEN];
231 wan_debug_t wan_debug_rx_timing;
237 virtual unsigned long threadFunction(
struct ThreadParam& thParam);
240 char device_name[DEV_NAME_LEN];
250 virtual int init(callback_functions_t *callback_functions_ptr);
260 void bit_swap_a_buffer(
unsigned char *data,
int len);
262 void get_te1_56k_stat(
void);
263 void set_lb_modes(
unsigned char type,
unsigned char mode);
264 int loopback_command(u_int8_t type, u_int8_t mode, u_int32_t chan_map);
267 virtual int flush_operational_stats (
void);
269 int CreateSwDtmfTxThread(
void *buffer);
270 int CreateFskCidTxThread(
void *buffer);
272 int enable_rbs_monitoring();
273 char get_rbs(rbs_management_t *rbs_management_ptr);
274 char set_rbs(rbs_management_t *rbs_management_ptr);
276 int tdm_enable_rbs_events(
int polls_per_second);
277 int tdm_disable_rbs_events();
279 int set_tx_idle_flag(
unsigned char new_idle_flag);
280 int get_open_handles_counter();
283 int flush_tx_buffers (
void);
285 unsigned char get_adapter_type();
286 unsigned int get_sub_media();
287 void set_fe_debug_mode(sdla_fe_debug_t *fe_debug);
291 void get_card_customer_id(u_int8_t *customer_id);
293 #if USE_STELEPHONY_API
294 int resetFSKCID(
void);
295 int sendCallerID(
char *name,
char *number);
296 int sendSwDTMF(
char dtmf_char);
301 int tdm_enable_rxhook_events();
302 int tdm_disable_rxhook_events();
305 int tdm_enable_rm_dtmf_events();
306 int tdm_disable_rm_dtmf_events();
309 int tdm_enable_dtmf_events(uint8_t channel);
310 int tdm_disable_dtmf_events(uint8_t channel);
312 int tdm_enable_ring_detect_events();
313 int tdm_disable_ring_detect_events();
315 int tdm_enable_ring_trip_detect_events();
316 int tdm_disable_ring_trip_detect_events();
318 int tdm_enable_ring_events();
319 int tdm_disable_ring_events();
321 int tdm_txsig_onhook();
322 int tdm_txsig_offhook();
323 int tdm_txsig_kewl();
327 int tdm_txsig_onhooktransfer();
329 int tdm_enable_tone_events(uint16_t tone_id);
330 int tdm_disable_tone_events();
332 int tdm_front_end_activate();
333 int tdm_front_end_deactivate();
335 int tdm_control_flash_events(
int rxflashtime);
343 int tdm_control_rm_txgain(
int txgain);
344 int tdm_control_rm_rxgain(
int rxgain);
349 int tdm_set_rm_polarity(
int polarity);
352 int tdm_get_front_end_status(
unsigned char *status);
354 int tdm_set_user_period(
unsigned int usr_period);
359 int reset_interface_state();
361 int start_ring_tone();
362 int stop_ring_tone();
364 int start_congestion_tone();
365 int stop_congestion_tone();
367 int start_busy_tone();
368 int stop_busy_tone();
370 int stop_all_tones();
372 int start_dial_tone();
373 int stop_dial_tone();
375 int start_ringing_phone();
376 int stop_ringing_phone();
378 int fxo_go_off_hook();
379 int fxo_go_on_hook();
381 int fxs_txsig_offhook();
384 int tdm_enable_bri_bchan_loopback(u_int8_t channel);
385 int tdm_disable_bri_bchan_loopback(u_int8_t channel);
394 virtual int init(callback_functions_t *callback_functions_ptr);
399 wp_logger_cmd_t logger_cmd;
404 virtual int init(callback_functions_t *callback_functions_ptr);
407 virtual int flush_operational_stats (
void);
408 int get_logger_dev_operational_stats(wp_logger_stats_t *stats);
411 #endif//SANGOMA_INTERFACE_H
wanpipe_api_cmd_t tdm_api_cmd
unsigned char rx_data[SAMPLE_CPP_MAX_DATA_LEN]
Wanpipe API Library header for Sangoma AFT T1/E1/Analog/BRI/Serial Hardware -.
callback_functions_t callback_functions
stelephony_callback_functions_t scf
int get_fe_type(unsigned char *adapter_type)
int receive(wp_api_hdr_t *hdr, void *data)
Sangoma Interface Class that deals with span/chan IO (read/write/events)
int get_interface_configuration(if_cfg_t *wanif_conf_ptr)
Wanpipe API Device Command Structure used with WANPIPE_IOCTL_API_CMD.
unsigned char tx_data[SAMPLE_CPP_MAX_DATA_LEN]
ULONG bad_rx_frames_count
int sng_fd_t
Windows/Unix file handle abstraction.
Wanpipe UDP Structure used for Maintenance and Debugging.
unsigned char adapter_type
TDM API channel statistics.
unsigned char wp_brt[256]
unsigned char set_wan_udphdr_data_byte(unsigned char off, unsigned char data)
int wanpipe_api_ioctl(wan_cmd_api_t *api_cmd)
Wanpipe UDP CMD Structure.
int DWORD
DWORD type is int, Ported from Windows.
WANPIPE(tm) Driver API - Provides FULL Wanpipe Driver API Support.
Wanpipe API Command Structure.
unsigned char * get_wan_udphdr_data_ptr(unsigned char off)
sangoma_wait_obj_t * sng_wait_obj[SANGOMA_INTERFACE_NUMBER_OF_WAIT_OBJECTS]
if_cfg_t wanif_conf_struct
void generate_bit_rev_table()
unsigned char get_wan_udphdr_data_byte(unsigned char off)
Wanpipe API Header Structure.
int transmit(wp_api_hdr_t *hdr, void *data)
char is_rbs_monitoring_enabled