mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-08-13 09:36:46 +00:00
state machine and echo test
git-svn-id: http://svn.openzap.org/svn/openzap/trunk@148 a93c3328-9c30-0410-af19-c9cd2b2d52af
This commit is contained in:
@@ -131,6 +131,12 @@
|
||||
|
||||
#define XX if (0)
|
||||
|
||||
#ifdef WIN32
|
||||
#define zap_sleep(x) Sleep(x)
|
||||
#else
|
||||
#define zap_sleep(x) usleep(x * 1000)
|
||||
#endif
|
||||
|
||||
#ifdef NDEBUG
|
||||
#undef assert
|
||||
#define assert(_Expression) ((void)(_Expression))
|
||||
@@ -177,7 +183,10 @@
|
||||
|
||||
#define zap_clear_flag_locked(obj, flag) assert(obj->mutex != NULL); zap_mutex_lock(obj->mutex); (obj)->flags &= ~(flag); zap_mutex_unlock(obj->mutex);
|
||||
|
||||
#define zap_set_state_locked(obj, s) assert(obj->mutex != NULL); zap_mutex_lock(obj->mutex); obj->state = s; zap_mutex_unlock(obj->mutex);
|
||||
#define zap_set_state_locked(obj, s) assert(obj->mutex != NULL); zap_mutex_lock(obj->mutex);\
|
||||
zap_log(ZAP_LOG_DEBUG, "Changing state from %s to %s\n", zap_channel_state2str(obj->state), zap_channel_state2str(s));\
|
||||
zap_set_flag(obj, ZAP_CHANNEL_STATE_CHANGE);\
|
||||
obj->last_state = obj->state; obj->state = s; zap_mutex_unlock(obj->mutex);
|
||||
|
||||
#define zap_is_dtmf(key) ((key > 47 && key < 58) || (key > 64 && key < 69) || (key > 96 && key < 101) || key == 35 || key == 42 || key == 87 || key == 119)
|
||||
|
||||
@@ -218,6 +227,7 @@ struct zap_channel {
|
||||
uint32_t native_interval;
|
||||
uint32_t packet_len;
|
||||
zap_channel_state_t state;
|
||||
zap_channel_state_t last_state;
|
||||
zap_mutex_t *mutex;
|
||||
teletone_dtmf_detect_state_t dtmf_detect;
|
||||
zap_event_t event_header;
|
||||
@@ -239,10 +249,15 @@ struct zap_channel {
|
||||
struct zap_sigmsg {
|
||||
zap_signal_event_t event_id;
|
||||
uint32_t chan_id;
|
||||
uint32_t span_id;
|
||||
zap_channel_t *channel;
|
||||
zap_span_t *span;
|
||||
char cid_name[80];
|
||||
char ani[25];
|
||||
char aniII[25];
|
||||
char dnis[25];
|
||||
void *raw_data;
|
||||
uint32_t raw_data_len;
|
||||
};
|
||||
|
||||
|
||||
@@ -258,6 +273,9 @@ struct zap_isdn_data {
|
||||
|
||||
struct zap_analog_data {
|
||||
uint32_t flags;
|
||||
uint32_t max_dialstr;
|
||||
uint32_t digit_timeout;
|
||||
zio_signal_cb_t sig_cb;
|
||||
};
|
||||
|
||||
struct zap_span {
|
||||
|
@@ -43,5 +43,6 @@ typedef enum {
|
||||
typedef struct zap_analog_data zap_analog_data_t;
|
||||
|
||||
zap_status_t zap_analog_start(zap_span_t *span);
|
||||
zap_status_t zap_analog_configure_span(zap_span_t *span, char *tonemap, zio_signal_cb_t sig_cb);
|
||||
zap_status_t zap_analog_configure_span(zap_span_t *span, char *tonemap, uint32_t digit_timeout, uint32_t max_dialstr, zio_signal_cb_t sig_cb);
|
||||
|
||||
#endif
|
||||
|
@@ -94,15 +94,18 @@ typedef enum {
|
||||
} zap_signal_type_t;
|
||||
|
||||
typedef enum {
|
||||
ZAP_SIGEVENT_CALL_START,
|
||||
ZAP_SIGEVENT_CALL_STOP,
|
||||
ZAP_SIGEVENT_CALL_TRANSFER,
|
||||
ZAP_SIGEVENT_START,
|
||||
ZAP_SIGEVENT_STOP,
|
||||
ZAP_SIGEVENT_TRANSFER,
|
||||
ZAP_SIGEVENT_ANSWER,
|
||||
ZAP_SIGEVENT_PROGRESS,
|
||||
ZAP_SIGEVENT_PROGRESS_MEDIA,
|
||||
ZAP_SIGEVENT_NOTIFY,
|
||||
ZAP_SIGEVENT_MISC
|
||||
ZAP_SIGEVENT_MISC,
|
||||
ZAP_SIGEVENT_INVALID
|
||||
} zap_signal_event_t;
|
||||
#define SIGNAL_STRINGS "START", "STOP", "TRANSFER", "ANSWER", "PROGRESS", "PROGRESS_MEDIA", "NOTIFY", "MISC", "INVALID"
|
||||
ZAP_STR2ENUM_P(zap_str2zap_signal_event, zap_signal_event2str, zap_signal_event_t)
|
||||
|
||||
typedef enum {
|
||||
ZAP_EVENT_NONE,
|
||||
@@ -185,8 +188,15 @@ typedef enum {
|
||||
ZAP_CHANNEL_STATE_DOWN,
|
||||
ZAP_CHANNEL_STATE_UP,
|
||||
ZAP_CHANNEL_STATE_DIALTONE,
|
||||
ZAP_CHANNEL_STATE_COLLECT
|
||||
ZAP_CHANNEL_STATE_COLLECT,
|
||||
ZAP_CHANNEL_STATE_RING,
|
||||
ZAP_CHANNEL_STATE_BUSY,
|
||||
ZAP_CHANNEL_STATE_ATTN,
|
||||
ZAP_CHANNEL_STATE_IDLE,
|
||||
ZAP_CHANNEL_STATE_INVALID
|
||||
} zap_channel_state_t;
|
||||
#define CHANNEL_STATE_STRINGS "DOWN", "UP", "DIALTONE", "COLLECT", "RING", "BUSY", "ATTN", "IDLE", "INVALID"
|
||||
ZAP_STR2ENUM_P(zap_str2zap_channel_state, zap_channel_state2str, zap_channel_state_t)
|
||||
|
||||
typedef enum {
|
||||
ZAP_CHANNEL_CONFIGURED = (1 << 0),
|
||||
@@ -199,7 +209,8 @@ typedef enum {
|
||||
ZAP_CHANNEL_EVENT = (1 << 7),
|
||||
ZAP_CHANNEL_INTHREAD = (1 << 8),
|
||||
ZAP_CHANNEL_WINK = (1 << 9),
|
||||
ZAP_CHANNEL_FLASH = (1 << 10)
|
||||
ZAP_CHANNEL_FLASH = (1 << 10),
|
||||
ZAP_CHANNEL_STATE_CHANGE = (1 << 11)
|
||||
} zap_channel_flag_t;
|
||||
|
||||
|
||||
@@ -210,7 +221,7 @@ typedef struct zap_span zap_span_t;
|
||||
|
||||
#define ZIO_SPAN_POLL_EVENT_ARGS (zap_span_t *span, uint32_t ms)
|
||||
#define ZIO_SPAN_NEXT_EVENT_ARGS (zap_span_t *span, zap_event_t **event)
|
||||
#define ZIO_SIGNAL_CB_ARGS (zap_span_t *span, zap_sigmsg_t *sigmsg, void *raw_data, uint32_t raw_data_len)
|
||||
#define ZIO_SIGNAL_CB_ARGS (zap_sigmsg_t *sigmsg)
|
||||
#define ZIO_EVENT_CB_ARGS (zap_channel_t *zchan, zap_event_t *event)
|
||||
#define ZIO_CODEC_ARGS (void *data, zap_size_t max, zap_size_t *datalen)
|
||||
#define ZIO_CONFIGURE_ARGS (struct zap_io_interface *zio)
|
||||
|
Reference in New Issue
Block a user