mirror of
https://github.com/signalwire/freeswitch.git
synced 2026-07-23 20:51:58 +00:00
improve dmachine stuff some more
This commit is contained in:
@@ -846,24 +846,31 @@ SWITCH_DECLARE(switch_bool_t) switch_ivr_uuid_exists(const char *uuid);
|
||||
|
||||
|
||||
SWITCH_DECLARE(switch_status_t) switch_ivr_dmachine_create(switch_ivr_dmachine_t **dmachine_p,
|
||||
switch_memory_pool_t *pool,
|
||||
uint32_t digit_timeout, uint32_t input_timeout);
|
||||
const char *name,
|
||||
switch_memory_pool_t *pool,
|
||||
uint32_t digit_timeout, uint32_t input_timeout,
|
||||
switch_ivr_dmachine_callback_t match_callback,
|
||||
switch_ivr_dmachine_callback_t nonmatch_callback,
|
||||
void *user_data);
|
||||
|
||||
SWITCH_DECLARE(void) switch_ivr_dmachine_destroy(switch_ivr_dmachine_t **dmachine);
|
||||
|
||||
SWITCH_DECLARE(switch_status_t) switch_ivr_dmachine_bind(switch_ivr_dmachine_t *dmachine,
|
||||
const char *digits,
|
||||
int32_t key,
|
||||
switch_ivr_dmachine_callback_t callback,
|
||||
void *user_data);
|
||||
const char *realm,
|
||||
const char *digits,
|
||||
int32_t key,
|
||||
switch_ivr_dmachine_callback_t callback,
|
||||
void *user_data);
|
||||
|
||||
SWITCH_DECLARE(switch_status_t) switch_ivr_dmachine_feed(switch_ivr_dmachine_t *dmachine, const char *digits, switch_ivr_dmachine_match_t **match);
|
||||
SWITCH_DECLARE(switch_status_t) switch_ivr_dmachine_clear(switch_ivr_dmachine_t *dmachine);
|
||||
SWITCH_DECLARE(switch_status_t) switch_ivr_dmachine_ping(switch_ivr_dmachine_t *dmachine, switch_ivr_dmachine_match_t **match_p);
|
||||
SWITCH_DECLARE(switch_ivr_dmachine_match_t *) switch_ivr_dmachine_get_match(switch_ivr_dmachine_t *dmachine);
|
||||
SWITCH_DECLARE(const char *) switch_ivr_dmachine_get_failed_digits(switch_ivr_dmachine_t *dmachine);
|
||||
SWITCH_DECLARE(void) switch_ivr_dmachine_set_digit_timeout_ms(switch_ivr_dmachine_t *dmachine, uint32_t digit_timeout_ms);
|
||||
SWITCH_DECLARE(void) switch_ivr_dmachine_set_input_timeout_ms(switch_ivr_dmachine_t *dmachine, uint32_t input_timeout_ms);
|
||||
|
||||
SWITCH_DECLARE(switch_status_t) switch_ivr_dmachine_clear_realm(switch_ivr_dmachine_t *dmachine, const char *realm);
|
||||
SWITCH_DECLARE(switch_status_t) switch_ivr_dmachine_set_realm(switch_ivr_dmachine_t *dmachine, const char *realm);
|
||||
|
||||
/** @} */
|
||||
|
||||
|
||||
@@ -190,9 +190,14 @@ SWITCH_BEGIN_EXTERN_C
|
||||
#define SWITCH_DTMF_LOG_LEN 1000
|
||||
typedef uint8_t switch_byte_t;
|
||||
|
||||
typedef enum {
|
||||
DTMF_FLAG_SKIP_PROCESS = (1 << 0)
|
||||
} dtmf_flag_t;
|
||||
|
||||
typedef struct {
|
||||
char digit;
|
||||
uint32_t duration;
|
||||
int32_t flags;
|
||||
} switch_dtmf_t;
|
||||
|
||||
typedef enum {
|
||||
@@ -1689,6 +1694,13 @@ typedef switch_status_t (*switch_input_callback_function_t) (switch_core_session
|
||||
typedef switch_status_t (*switch_read_frame_callback_function_t) (switch_core_session_t *session, switch_frame_t *frame, void *user_data);
|
||||
typedef struct switch_say_interface switch_say_interface_t;
|
||||
|
||||
#define DMACHINE_MAX_DIGIT_LEN 512
|
||||
|
||||
typedef enum {
|
||||
DM_MATCH_POSITIVE,
|
||||
DM_MATCH_NEGATIVE
|
||||
} dm_match_type_t;
|
||||
|
||||
struct switch_ivr_dmachine;
|
||||
typedef struct switch_ivr_dmachine switch_ivr_dmachine_t;
|
||||
|
||||
@@ -1696,6 +1708,7 @@ struct switch_ivr_dmachine_match {
|
||||
switch_ivr_dmachine_t *dmachine;
|
||||
const char *match_digits;
|
||||
int32_t match_key;
|
||||
dm_match_type_t type;
|
||||
void *user_data;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user