mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-08-13 09:36:46 +00:00
add fsk callerid stuff to analog fxo
git-svn-id: http://svn.openzap.org/svn/openzap/trunk@220 a93c3328-9c30-0410-af19-c9cd2b2d52af
This commit is contained in:
@@ -223,13 +223,28 @@ struct zap_event {
|
||||
#define ZAP_TOKEN_STRLEN 128
|
||||
#define ZAP_MAX_TOKENS 10
|
||||
|
||||
static __inline__ char *zap_clean_string(char *s)
|
||||
{
|
||||
char *p;
|
||||
|
||||
for (p = s; p && *p; p++) {
|
||||
uint8_t x = (uint8_t) *p;
|
||||
if (x < 32 || x > 127) {
|
||||
*p = ' ';
|
||||
}
|
||||
}
|
||||
|
||||
return s;
|
||||
}
|
||||
|
||||
struct zap_caller_data {
|
||||
char cid_name[80];
|
||||
char cid_num[80];
|
||||
char cid_date[8];
|
||||
char ani[25];
|
||||
char aniII[25];
|
||||
char dnis[25];
|
||||
char rdnis[25];
|
||||
};
|
||||
|
||||
struct zap_channel {
|
||||
@@ -271,6 +286,8 @@ struct zap_channel {
|
||||
char chan_name[128];
|
||||
char chan_number[32];
|
||||
zap_filehandle_t fds[2];
|
||||
zap_fsk_data_state_t fsk;
|
||||
uint8_t fsk_buf[80];
|
||||
struct zap_caller_data caller_data;
|
||||
struct zap_span *span;
|
||||
struct zap_io_interface *zio;
|
||||
@@ -343,7 +360,7 @@ struct zap_io_interface {
|
||||
zio_span_next_event_t next_event;
|
||||
};
|
||||
|
||||
zap_status_t zap_fsk_data_parse(zap_fsk_data_state_t *state, zap_size_t *type, zap_size_t *len, char *data, size_t datalen);
|
||||
zap_status_t zap_fsk_data_parse(zap_fsk_data_state_t *state, zap_size_t *type, char **data, zap_size_t *len);
|
||||
zap_status_t zap_fsk_demod_feed(zap_fsk_data_state_t *state, int16_t *data, size_t samples);
|
||||
zap_status_t zap_fsk_demod_destroy(zap_fsk_data_state_t *state);
|
||||
int zap_fsk_demod_init(zap_fsk_data_state_t *state, int rate, uint8_t *buf, size_t bufsize);
|
||||
|
@@ -63,14 +63,22 @@ struct zap_io_interface;
|
||||
|
||||
typedef uint64_t zap_time_t;
|
||||
|
||||
typedef enum {
|
||||
ZAP_CID_TYPE_SDMF = 0x04,
|
||||
ZAP_CID_TYPE_MDMF = 0x80
|
||||
} zap_cid_type_t;
|
||||
|
||||
typedef enum {
|
||||
MDMF_DATETIME = 1,
|
||||
MDMF_PHONE_NUM = 2,
|
||||
MDMF_DDN = 3,
|
||||
MDMF_NO_NUM = 4,
|
||||
MDMF_NAME = 7,
|
||||
MDMF_NO_NAME = 8
|
||||
MDMF_PHONE_NAME = 7,
|
||||
MDMF_NO_NAME = 8,
|
||||
MDMF_INVALID = 9
|
||||
} zap_mdmf_type_t;
|
||||
|
||||
#define MDMF_STRINGS "X", "DATETIME", "PHONE_NUM", "DDN", "NO_NUM", "X", "X", "PHONE_NAME", "NO_NAME", "INVALID"
|
||||
ZAP_STR2ENUM_P(zap_str2zap_mdmf_type, zap_mdmf_type2str, zap_mdmf_type_t)
|
||||
|
||||
struct zap_fsk_data_state {
|
||||
dsp_fsk_handle_t *fsk1200_handle;
|
||||
@@ -216,6 +224,8 @@ typedef enum {
|
||||
ZAP_COMMAND_DISABLE_PROGRESS_DETECT,
|
||||
ZAP_COMMAND_TRACE_INPUT,
|
||||
ZAP_COMMAND_TRACE_OUTPUT,
|
||||
ZAP_COMMAND_ENABLE_CALLERID_DETECT,
|
||||
ZAP_COMMAND_DISABLE_CALLERID_DETECT,
|
||||
ZAP_COMMAND_COUNT
|
||||
} zap_command_t;
|
||||
|
||||
@@ -236,7 +246,8 @@ typedef enum {
|
||||
typedef enum {
|
||||
ZAP_CHANNEL_FEATURE_DTMF = (1 << 0),
|
||||
ZAP_CHANNEL_FEATURE_CODECS = (1 << 1),
|
||||
ZAP_CHANNEL_FEATURE_INTERVAL = (1 << 2)
|
||||
ZAP_CHANNEL_FEATURE_INTERVAL = (1 << 2),
|
||||
ZAP_CHANNEL_FEATURE_CALLERID = (1 << 3)
|
||||
} zap_channel_feature_t;
|
||||
|
||||
typedef enum {
|
||||
@@ -252,9 +263,11 @@ typedef enum {
|
||||
ZAP_CHANNEL_STATE_IDLE,
|
||||
ZAP_CHANNEL_STATE_GENRING,
|
||||
ZAP_CHANNEL_STATE_DIALING,
|
||||
ZAP_CHANNEL_STATE_GET_CALLERID,
|
||||
ZAP_CHANNEL_STATE_INVALID
|
||||
} zap_channel_state_t;
|
||||
#define CHANNEL_STATE_STRINGS "DOWN", "UP", "HANGUP", "HOLD", "DIALTONE", "COLLECT", "RING", "BUSY", "ATTN", "IDLE", "GENRING", "DIALING", "INVALID"
|
||||
#define CHANNEL_STATE_STRINGS "DOWN", "UP", "HANGUP", "HOLD", "DIALTONE", "COLLECT", \
|
||||
"RING", "BUSY", "ATTN", "IDLE", "GENRING", "DIALING", "GET_CALLERID", "INVALID"
|
||||
ZAP_STR2ENUM_P(zap_str2zap_channel_state, zap_channel_state2str, zap_channel_state_t)
|
||||
|
||||
typedef enum {
|
||||
@@ -274,7 +287,8 @@ typedef enum {
|
||||
ZAP_CHANNEL_INUSE = (1 << 13),
|
||||
ZAP_CHANNEL_OFFHOOK = (1 << 14),
|
||||
ZAP_CHANNEL_RINGING = (1 << 15),
|
||||
ZAP_CHANNEL_PROGRESS_DETECT = (1 << 16)
|
||||
ZAP_CHANNEL_PROGRESS_DETECT = (1 << 16),
|
||||
ZAP_CHANNEL_CALLERID_DETECT = (1 << 17)
|
||||
} zap_channel_flag_t;
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user