r2chan.h   r2chan.h 
skipping to change at line 26 skipping to change at line 26
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU Lesser General Public License * You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
* *
*/ */
#ifndef _OPENR2_CHAN_H_ #ifndef _OPENR2_CHAN_H_
#define _OPENR2_CHAN_H_ #define _OPENR2_CHAN_H_
#include <stdio.h> #include <stdarg.h>
#include <sys/time.h>
#include "r2proto.h" #include "r2proto.h"
#include "r2log.h" #include "r2log.h"
#include "r2context.h" #include "r2context.h"
#if defined(__cplusplus) #if defined(__cplusplus)
extern "C" { extern "C" {
#endif #endif
#ifdef __OR2_COMPILING_LIBRARY__ #ifdef __OR2_COMPILING_LIBRARY__
struct openr2_chan_s; struct openr2_chan_s;
skipping to change at line 59 skipping to change at line 58
#define OR2_CHAN_READ_SIZE 160 #define OR2_CHAN_READ_SIZE 160
/* callback for logging channel related info */ /* callback for logging channel related info */
typedef void (*openr2_logging_func_t)(openr2_chan_t *r2chan, openr2_log_lev el_t level, const char *fmt, va_list ap); typedef void (*openr2_logging_func_t)(openr2_chan_t *r2chan, openr2_log_lev el_t level, const char *fmt, va_list ap);
openr2_chan_t *openr2_chan_new(openr2_context_t *r2context, int channo, voi d *mf_write_handle, void *mf_read_handle); openr2_chan_t *openr2_chan_new(openr2_context_t *r2context, int channo, voi d *mf_write_handle, void *mf_read_handle);
openr2_chan_t *openr2_chan_new_from_fd(openr2_context_t *r2context, int cha nfd, void *mf_write_handle, void *mf_read_handle); openr2_chan_t *openr2_chan_new_from_fd(openr2_context_t *r2context, int cha nfd, void *mf_write_handle, void *mf_read_handle);
void openr2_chan_delete(openr2_chan_t *r2chan); void openr2_chan_delete(openr2_chan_t *r2chan);
int openr2_chan_process_event(openr2_chan_t *r2chan); int openr2_chan_process_event(openr2_chan_t *r2chan);
int openr2_chan_accept_call(openr2_chan_t *r2chan, openr2_call_mode_t accep t); int openr2_chan_accept_call(openr2_chan_t *r2chan, openr2_call_mode_t accep t);
int openr2_chan_answer_call(openr2_chan_t *r2chan); int openr2_chan_answer_call(openr2_chan_t *r2chan);
int openr2_chan_answer_call_with_mode(openr2_chan_t *r2chan, openr2_answer_ mode_t mode);
int openr2_chan_disconnect_call(openr2_chan_t *r2chan, openr2_call_disconne ct_cause_t cause); int openr2_chan_disconnect_call(openr2_chan_t *r2chan, openr2_call_disconne ct_cause_t cause);
int openr2_chan_make_call(openr2_chan_t *r2chan, const char *ani, const cha r *dnid, openr2_calling_party_category_t category); int openr2_chan_make_call(openr2_chan_t *r2chan, const char *ani, const cha r *dnid, openr2_calling_party_category_t category);
openr2_direction_t openr2_chan_get_direction(openr2_chan_t *r2chan); openr2_direction_t openr2_chan_get_direction(openr2_chan_t *r2chan);
int openr2_chan_write(openr2_chan_t *r2chan, const unsigned char *buf, int len); int openr2_chan_write(openr2_chan_t *r2chan, const unsigned char *buf, int len);
void openr2_chan_set_logging_func(openr2_chan_t *r2chan, openr2_logging_fun c_t logcallback); void openr2_chan_set_logging_func(openr2_chan_t *r2chan, openr2_logging_fun c_t logcallback);
int openr2_chan_get_fd(openr2_chan_t *r2chan); int openr2_chan_get_fd(openr2_chan_t *r2chan);
int openr2_chan_get_number(openr2_chan_t *r2chan); int openr2_chan_get_number(openr2_chan_t *r2chan);
openr2_context_t *openr2_chan_get_context(openr2_chan_t *r2chan); openr2_context_t *openr2_chan_get_context(openr2_chan_t *r2chan);
void openr2_chan_set_client_data(openr2_chan_t *r2chan, void *data); void openr2_chan_set_client_data(openr2_chan_t *r2chan, void *data);
void *openr2_chan_get_client_data(openr2_chan_t *r2chan); void *openr2_chan_get_client_data(openr2_chan_t *r2chan);
skipping to change at line 91 skipping to change at line 91
int openr2_chan_set_blocked(openr2_chan_t *r2chan); int openr2_chan_set_blocked(openr2_chan_t *r2chan);
int openr2_chan_handle_cas(openr2_chan_t *r2chan); int openr2_chan_handle_cas(openr2_chan_t *r2chan);
const char *openr2_chan_get_rx_cas_string(openr2_chan_t *r2chan); const char *openr2_chan_get_rx_cas_string(openr2_chan_t *r2chan);
const char *openr2_chan_get_tx_cas_string(openr2_chan_t *r2chan); const char *openr2_chan_get_tx_cas_string(openr2_chan_t *r2chan);
const char *openr2_chan_get_call_state_string(openr2_chan_t *r2chan); const char *openr2_chan_get_call_state_string(openr2_chan_t *r2chan);
const char *openr2_chan_get_r2_state_string(openr2_chan_t *r2chan); const char *openr2_chan_get_r2_state_string(openr2_chan_t *r2chan);
const char *openr2_chan_get_mf_state_string(openr2_chan_t *r2chan); const char *openr2_chan_get_mf_state_string(openr2_chan_t *r2chan);
const char *openr2_chan_get_mf_group_string(openr2_chan_t *r2chan); const char *openr2_chan_get_mf_group_string(openr2_chan_t *r2chan);
int openr2_chan_get_tx_mf_signal(openr2_chan_t *r2chan); int openr2_chan_get_tx_mf_signal(openr2_chan_t *r2chan);
int openr2_chan_get_rx_mf_signal(openr2_chan_t *r2chan); int openr2_chan_get_rx_mf_signal(openr2_chan_t *r2chan);
int openr2_chan_set_dtmf_write_handle(openr2_chan_t *r2chan, void *dtmf_wri te_handle);
#ifdef __OR2_COMPILING_LIBRARY__ #ifdef __OR2_COMPILING_LIBRARY__
#undef openr2_chan_t #undef openr2_chan_t
#undef openr2_context_t #undef openr2_context_t
#endif #endif
#if defined(__cplusplus) #if defined(__cplusplus)
} /* endif extern "C" */ } /* endif extern "C" */
#endif #endif
#endif /* endif defined _OPENR2_CHAN_H_ */ #endif /* endif defined _OPENR2_CHAN_H_ */
 End of changes. 3 change blocks. 
2 lines changed or deleted 3 lines changed or added


 r2context.h   r2context.h 
skipping to change at line 26 skipping to change at line 26
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU Lesser General Public License * You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
* *
*/ */
#ifndef _OPENR2_CONTEXT_H_ #ifndef _OPENR2_CONTEXT_H_
#define _OPENR2_CONTEXT_H_ #define _OPENR2_CONTEXT_H_
#include <pthread.h>
#include <inttypes.h> #include <inttypes.h>
#include <stdarg.h> #include <stdarg.h>
#include "r2proto.h" #include "r2proto.h"
#include "r2log.h" #include "r2log.h"
#if defined(__cplusplus) #if defined(__cplusplus)
extern "C" { extern "C" {
#endif #endif
#ifdef __OR2_COMPILING_LIBRARY__ #ifdef __OR2_COMPILING_LIBRARY__
skipping to change at line 163 skipping to change at line 162
/* Transcoding interface. Users should provide this interface /* Transcoding interface. Users should provide this interface
to provide transcoding services from linear to alaw and to provide transcoding services from linear to alaw and
viceversa */ viceversa */
typedef int16_t (*openr2_alaw_to_linear_func)(uint8_t alaw); typedef int16_t (*openr2_alaw_to_linear_func)(uint8_t alaw);
typedef uint8_t (*openr2_linear_to_alaw_func)(int linear); typedef uint8_t (*openr2_linear_to_alaw_func)(int linear);
typedef struct { typedef struct {
openr2_alaw_to_linear_func alaw_to_linear; openr2_alaw_to_linear_func alaw_to_linear;
openr2_linear_to_alaw_func linear_to_alaw; openr2_linear_to_alaw_func linear_to_alaw;
} openr2_transcoder_interface_t; } openr2_transcoder_interface_t;
/* DTMF transmitter interface */
typedef void *(*openr2_dtmf_tx_init_func)(void *dtmf_write_handle);
typedef void (*openr2_dtmf_tx_set_timing_func)(void *dtmf_write_handle, int
on_time, int off_time);
typedef int (*openr2_dtmf_tx_put_func)(void *dtmf_write_handle, const char
*digits, int len);
typedef int (*openr2_dtmf_tx_func)(void *dtmf_write_handle, int16_t amp[],
int max_samples);
typedef struct {
openr2_dtmf_tx_init_func dtmf_tx_init;
openr2_dtmf_tx_set_timing_func dtmf_tx_set_timing;
openr2_dtmf_tx_put_func dtmf_tx_put;
openr2_dtmf_tx_func dtmf_tx;
} openr2_dtmf_interface_t;
/* Library errors */ /* Library errors */
typedef enum { typedef enum {
/* Failed system call */ /* Failed system call */
OR2_LIBERR_SYSCALL_FAILED, OR2_LIBERR_SYSCALL_FAILED,
/* Invalid channel signaling when creating it */ /* Invalid channel signaling when creating it */
OR2_LIBERR_INVALID_CHAN_SIGNALING, OR2_LIBERR_INVALID_CHAN_SIGNALING,
/* cannot set to IDLE the channel when creating it */ /* cannot set to IDLE the channel when creating it */
OR2_LIBERR_CANNOT_SET_IDLE OR2_LIBERR_CANNOT_SET_IDLE
} openr2_liberr_t; } openr2_liberr_t;
skipping to change at line 184 skipping to change at line 196
openr2_context_t *openr2_context_new(openr2_mflib_interface_t *mflib, openr 2_event_interface_t *callmgmt, openr2_context_t *openr2_context_new(openr2_mflib_interface_t *mflib, openr 2_event_interface_t *callmgmt,
openr2_transcoder_interface_t *transcoder, ope nr2_variant_t variant, int max_ani, int max_dnis); openr2_transcoder_interface_t *transcoder, ope nr2_variant_t variant, int max_ani, int max_dnis);
void openr2_context_delete(openr2_context_t *r2context); void openr2_context_delete(openr2_context_t *r2context);
openr2_liberr_t openr2_context_get_last_error(openr2_context_t *r2context); openr2_liberr_t openr2_context_get_last_error(openr2_context_t *r2context);
const char *openr2_context_error_string(openr2_liberr_t error); const char *openr2_context_error_string(openr2_liberr_t error);
openr2_variant_t openr2_context_get_variant(openr2_context_t *r2context); openr2_variant_t openr2_context_get_variant(openr2_context_t *r2context);
int openr2_context_get_max_ani(openr2_context_t *r2context); int openr2_context_get_max_ani(openr2_context_t *r2context);
int openr2_context_get_max_dnis(openr2_context_t *r2context); int openr2_context_get_max_dnis(openr2_context_t *r2context);
void openr2_context_set_ani_first(openr2_context_t *r2context, int ani_firs t); void openr2_context_set_ani_first(openr2_context_t *r2context, int ani_firs t);
int openr2_context_get_ani_first(openr2_context_t *r2context); int openr2_context_get_ani_first(openr2_context_t *r2context);
void openr2_context_set_skip_category_request(openr2_context_t *r2context,
int skipcategory);
int openr2_context_get_skip_category_request(openr2_context_t *r2context);
void openr2_context_set_immediate_accept(openr2_context_t *r2context, int i mmediate_accept); void openr2_context_set_immediate_accept(openr2_context_t *r2context, int i mmediate_accept);
int openr2_context_get_immediate_accept(openr2_context_t *r2context); int openr2_context_get_immediate_accept(openr2_context_t *r2context);
void openr2_context_set_log_level(openr2_context_t *r2context, openr2_log_l evel_t level); void openr2_context_set_log_level(openr2_context_t *r2context, openr2_log_l evel_t level);
openr2_log_level_t openr2_context_get_log_level(openr2_context_t *r2context ); openr2_log_level_t openr2_context_get_log_level(openr2_context_t *r2context );
void openr2_context_set_mf_threshold(openr2_context_t *r2context, int thres hold); void openr2_context_set_mf_threshold(openr2_context_t *r2context, int thres hold);
int openr2_context_get_mf_threshold(openr2_context_t *r2context); int openr2_context_get_mf_threshold(openr2_context_t *r2context);
int openr2_context_set_log_directory(openr2_context_t *r2context, char *dir ectory); int openr2_context_set_log_directory(openr2_context_t *r2context, char *dir ectory);
char *openr2_context_get_log_directory(openr2_context_t *r2context, char *d irectory, int len); char *openr2_context_get_log_directory(openr2_context_t *r2context, char *d irectory, int len);
void openr2_context_set_mf_back_timeout(openr2_context_t *r2context, int ms ); void openr2_context_set_mf_back_timeout(openr2_context_t *r2context, int ms );
int openr2_context_get_mf_back_timeout(openr2_context_t *r2context); int openr2_context_get_mf_back_timeout(openr2_context_t *r2context);
void openr2_context_set_metering_pulse_timeout(openr2_context_t *r2context, int ms); void openr2_context_set_metering_pulse_timeout(openr2_context_t *r2context, int ms);
int openr2_context_get_metering_pulse_timeout(openr2_context_t *r2context); int openr2_context_get_metering_pulse_timeout(openr2_context_t *r2context);
void openr2_context_set_double_answer(openr2_context_t *r2context, int enab le); void openr2_context_set_double_answer(openr2_context_t *r2context, int enab le);
int openr2_context_get_double_answer(openr2_context_t *r2context); int openr2_context_get_double_answer(openr2_context_t *r2context);
int openr2_context_configure_from_advanced_file(openr2_context_t *r2context , const char *filename); int openr2_context_configure_from_advanced_file(openr2_context_t *r2context , const char *filename);
void openr2_context_set_dtmf_dialing(openr2_context_t *r2context, int enabl
e, int dtmf_on, int dtmf_off);
int openr2_context_get_dtmf_dialing(openr2_context_t *r2context, int *dtmf_
on, int *dtmf_off);
int openr2_context_set_dtmf_interface(openr2_context_t *r2context, openr2_d
tmf_interface_t *dtmf_interface);
#ifdef __OR2_COMPILING_LIBRARY__ #ifdef __OR2_COMPILING_LIBRARY__
#undef openr2_chan_t #undef openr2_chan_t
#undef openr2_context_t #undef openr2_context_t
#endif #endif
#if defined(__cplusplus) #if defined(__cplusplus)
} /* endif extern "C" */ } /* endif extern "C" */
#endif #endif
 End of changes. 4 change blocks. 
1 lines changed or deleted 25 lines changed or added


 r2log.h   r2log.h 
skipping to change at line 26 skipping to change at line 26
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU Lesser General Public License * You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
* *
*/ */
#ifndef _OPENR2_LOG_H_ #ifndef _OPENR2_LOG_H_
#define _OPENR2_LOG_H_ #define _OPENR2_LOG_H_
#include <stdarg.h>
#if defined(__cplusplus) #if defined(__cplusplus)
extern "C" { extern "C" {
#endif #endif
typedef enum { typedef enum {
OR2_LOG_NOTHING = 0, OR2_LOG_NOTHING = 0,
OR2_LOG_ERROR = ( 1 << 0 ), OR2_LOG_ERROR = ( 1 << 0 ),
OR2_LOG_WARNING = ( 1 << 1 ), OR2_LOG_WARNING = ( 1 << 1 ),
OR2_LOG_NOTICE = ( 1 << 2 ), OR2_LOG_NOTICE = ( 1 << 2 ),
OR2_LOG_DEBUG = ( 1 << 3 ), OR2_LOG_DEBUG = ( 1 << 3 ),
 End of changes. 1 change blocks. 
2 lines changed or deleted 0 lines changed or added


 r2proto.h   r2proto.h 
skipping to change at line 45 skipping to change at line 45
#else #else
#ifndef OR2_CHAN_AND_CONTEXT_DEFINED #ifndef OR2_CHAN_AND_CONTEXT_DEFINED
#define OR2_CHAN_AND_CONTEXT_DEFINED #define OR2_CHAN_AND_CONTEXT_DEFINED
typedef void* openr2_chan_t; typedef void* openr2_chan_t;
typedef void* openr2_context_t; typedef void* openr2_context_t;
#endif #endif
#endif #endif
#define OR2_MAX_ANI 80 #define OR2_MAX_ANI 80
#define OR2_MAX_DNIS 80 #define OR2_MAX_DNIS 80
#define OR2_DEFAULT_DTMF_ON 50
#define OR2_DEFAULT_DTMF_OFF 100
/* /*
This are known as Multi Frequency signals ( MF signals). the same 15 int er-register signals This are known as Multi Frequency signals ( MF signals). the same 15 int er-register signals
are used for the distinct groups with distinct meanings for each group. are used for the distinct groups with distinct meanings for each group.
Group A, B and C are the Backward groups, that is, the possible groups w here the state machine Group A, B and C are the Backward groups, that is, the possible groups w here the state machine
of the callee can be at. of the callee can be at.
Groups I, II and III are the Forward groups, that is, the possible group s where the state machine Groups I, II and III are the Forward groups, that is, the possible group s where the state machine
of the caller can be at. of the caller can be at.
skipping to change at line 129 skipping to change at line 131
} openr2_direction_t; } openr2_direction_t;
/* Call modes */ /* Call modes */
typedef enum { typedef enum {
OR2_CALL_WITH_CHARGE, OR2_CALL_WITH_CHARGE,
OR2_CALL_NO_CHARGE, OR2_CALL_NO_CHARGE,
OR2_CALL_SPECIAL, OR2_CALL_SPECIAL,
OR2_CALL_UNKNOWN OR2_CALL_UNKNOWN
} openr2_call_mode_t; } openr2_call_mode_t;
/* Answer modes */
typedef enum {
OR2_ANSWER_SIMPLE,
OR2_ANSWER_DOUBLE
} openr2_answer_mode_t;
/* Disconnect causes */ /* Disconnect causes */
typedef enum { typedef enum {
OR2_CAUSE_BUSY_NUMBER, OR2_CAUSE_BUSY_NUMBER,
OR2_CAUSE_NETWORK_CONGESTION, OR2_CAUSE_NETWORK_CONGESTION,
OR2_CAUSE_UNALLOCATED_NUMBER, OR2_CAUSE_UNALLOCATED_NUMBER,
OR2_CAUSE_OUT_OF_ORDER, OR2_CAUSE_OUT_OF_ORDER,
OR2_CAUSE_UNSPECIFIED, OR2_CAUSE_UNSPECIFIED,
OR2_CAUSE_NO_ANSWER, OR2_CAUSE_NO_ANSWER,
OR2_CAUSE_NORMAL_CLEARING, OR2_CAUSE_NORMAL_CLEARING,
OR2_CAUSE_COLLECT_CALL_REJECTED, OR2_CAUSE_COLLECT_CALL_REJECTED,
 End of changes. 2 change blocks. 
0 lines changed or deleted 8 lines changed or added


 r2utils.h   r2utils.h 
skipping to change at line 26 skipping to change at line 26
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU Lesser General Public License * You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
* *
*/ */
#ifndef _OPENR2_UTILS_H_ #ifndef _OPENR2_UTILS_H_
#define _OPENR2_UTILS_H_ #define _OPENR2_UTILS_H_
#include <sys/types.h> /* mode_t */
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#if defined(__cplusplus) #if defined(__cplusplus)
extern "C" { extern "C" {
#endif #endif
#define OR2_LIB_INTERFACE 2
#define OR2_LIB_REVISION 0
#define OR2_LIB_AGE 1
const char *openr2_get_version(void); const char *openr2_get_version(void);
const char *openr2_get_revision(void); const char *openr2_get_revision(void);
int openr2_strncasecmp(const char *s1, const char *s2, size_t n); int openr2_strncasecmp(const char *s1, const char *s2, size_t n);
#if defined(__cplusplus) #if defined(__cplusplus)
} /* endif extern "C" */ } /* endif extern "C" */
#endif #endif
#endif /* endif defined _OPENR2_UTILS_H_ */ #endif /* endif defined _OPENR2_UTILS_H_ */
 End of changes. 2 change blocks. 
7 lines changed or deleted 3 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/