32#define ANALOG_SMDI_MD_WAIT_TIMEOUT 1500
33#define ANALOG_MAX_CID 300
35#define RING_PATTERNS 3
38#define ANALOG_FIRST_DIGIT_TIMEOUT 16000
40#define ANALOG_INTER_DIGIT_TIMEOUT 8000
42#define ANALOG_MATCH_DIGIT_TIMEOUT 3000
static int cidrings[NUM_CADENCE_MAX]
cidrings says in which pause to transmit the cid information, where the first pause is 1,...
General Asterisk PBX channel definitions.
#define AST_MAX_EXTENSION
Asterisk internal frame definitions.
struct stasis_forward * sub
enum analog_sigtype sigtype
int analog_hangup(struct analog_pvt *p, struct ast_channel *ast)
int analog_available(struct analog_pvt *p)
struct ast_frame * analog_exception(struct analog_pvt *p, struct ast_channel *ast)
struct analog_callback analog_callbacks
int analog_dnd(struct analog_pvt *p, int flag)
int analog_config_complete(struct analog_pvt *p)
int analog_call(struct analog_pvt *p, struct ast_channel *ast, const char *rdest, int timeout)
void analog_delete(struct analog_pvt *doomed)
Delete the analog private structure.
struct analog_pvt * analog_new(enum analog_sigtype signallingtype, void *private_data)
const char * analog_cidtype_to_str(unsigned int cid_type)
void analog_free(struct analog_pvt *p)
void analog_handle_dtmf(struct analog_pvt *p, struct ast_channel *ast, enum analog_sub index, struct ast_frame **dest)
int analog_fixup(struct ast_channel *oldchan, struct ast_channel *newchan, void *newp)
@ ANALOG_EVENT_HOOKCOMPLETE
@ ANALOG_EVENT_PULSE_START
@ ANALOG_EVENT_TX_CED_DETECTED
@ ANALOG_EVENT_NEONMWI_ACTIVE
@ ANALOG_EVENT_EC_DISABLED
@ ANALOG_EVENT_PULSEDIGIT
@ ANALOG_EVENT_RX_CED_DETECTED
@ ANALOG_EVENT_DIALCOMPLETE
@ ANALOG_EVENT_EC_NLP_ENABLED
@ ANALOG_EVENT_NEONMWI_INACTIVE
@ ANALOG_EVENT_EC_NLP_DISABLED
@ ANALOG_EVENT_RINGOFFHOOK
int analog_ss_thread_start(struct analog_pvt *p, struct ast_channel *ast)
const char * analog_cidstart_to_str(enum analog_cid_start cid_start)
struct ast_channel * analog_request(struct analog_pvt *p, int *callwait, const struct ast_channel *requestor)
void * analog_handle_init_event(struct analog_pvt *i, int event)
unsigned int analog_str_to_cidtype(const char *name)
int analog_answer(struct analog_pvt *p, struct ast_channel *ast)
const char * analog_sigtype_to_str(enum analog_sigtype sigtype)
enum analog_sigtype analog_str_to_sigtype(const char *name)
enum analog_cid_start analog_str_to_cidstart(const char *value)
@ ANALOG_CID_START_DTMF_NOALERT
@ ANALOG_CID_START_POLARITY
@ ANALOG_CID_START_POLARITY_IN
SMDI support for Asterisk.
int(*const stop_cid_detect)(void *pvt)
int(*const set_echocanceller)(void *pvt, int enable)
void(*const deadlock_avoidance_private)(void *pvt)
int(*const unallocate_sub)(void *pvt, enum analog_sub sub)
int(*const distinctive_ring)(struct ast_channel *chan, void *pvt, int idx, int *ringdata)
int(*const stop_callwait)(void *pvt)
void(*const set_confirmanswer)(void *pvt, int flag)
void(*const set_callwaiting)(void *pvt, int callwaiting_enable)
void(*const unlock_private)(void *pvt)
int(*const check_confirmanswer)(void *pvt)
const char *(*const get_orig_dialstring)(void *pvt)
int(*const send_fsk)(void *pvt, struct ast_channel *ast, char *fsk)
void(*const set_cadence)(void *pvt, int *cidrings, struct ast_channel *chan)
int(*const have_progressdetect)(void *pvt)
void(*const hangup_polarityswitch)(void *pvt)
Switch FXS line polarity, based on answeronpolarityswitch and hanguponpolarityswitch.
int(*const is_off_hook)(void *pvt)
void(*const decrease_ss_count)(void)
int(*const is_dialing)(void *pvt, enum analog_sub sub)
int(*const get_matchdigit_timeout)(void *pvt)
int(*const train_echocanceller)(void *pvt)
void(*const set_pulsedial)(void *pvt, int flag)
int(*const check_waitingfordt)(void *pvt)
int(*const get_callerid)(void *pvt, char *name, char *num, enum analog_event *ev, size_t timeout)
int(*const conf_add)(void *pvt, enum analog_sub sub)
int(*const ring)(void *pvt)
void(*const handle_dtmf)(void *pvt, struct ast_channel *ast, enum analog_sub analog_index, struct ast_frame **dest)
int(*const flash)(void *pvt)
int(*const start_cid_detect)(void *pvt, int cid_signalling)
void(*const swap_subs)(void *pvt, enum analog_sub a, struct ast_channel *new_a_owner, enum analog_sub b, struct ast_channel *new_b_owner)
int(*const confmute)(void *pvt, int mute)
void(*const handle_notify_message)(struct ast_channel *chan, void *pvt, int cid_flags, int neon_mwievent)
int(*const set_linear_mode)(void *pvt, enum analog_sub sub, int linear_mode)
int(*const complete_conference_update)(void *pvt, int needconf)
void(*const set_outgoing)(void *pvt, int is_outgoing)
int(*const on_hook)(void *pvt)
Set channel on hook.
int(*const get_firstdigit_timeout)(void *pvt)
void(*const set_dialing)(void *pvt, int is_dialing)
void(*const answer_polarityswitch)(void *pvt)
Switch FXS line polarity, based on answeronpolarityswitch=yes.
int(*const dsp_set_digitmode)(void *pvt, enum analog_dsp_digitmode mode)
void(*const set_alarm)(void *pvt, int in_alarm)
void(*const set_new_owner)(void *pvt, struct ast_channel *new_owner)
int(*const send_callerid)(void *pvt, int cwcid, struct ast_party_caller *caller)
void(*const set_inthreeway)(void *pvt, enum analog_sub sub, int inthreeway)
void(*const increase_ss_count)(void)
void(*const cancel_cidspill)(void *pvt)
int(*const dial_digits)(void *pvt, enum analog_sub sub, struct analog_dialoperation *dop)
int(*const conf_del)(void *pvt, enum analog_sub sub)
int(*const has_voicemail)(void *pvt)
int(*const check_for_conference)(void *pvt)
int(*const allocate_sub)(void *pvt, enum analog_sub sub)
int(*const wink)(void *pvt, enum analog_sub sub)
int(*const off_hook)(void *pvt)
Set channel off hook.
int(*const dsp_reset_and_flush_digits)(void *pvt)
void(*const set_ringtimeout)(void *pvt, int ringt)
void(*const lock_private)(void *pvt)
void(*const all_subchannels_hungup)(void *pvt)
int(*const play_tone)(void *pvt, enum analog_sub sub, enum analog_tone tone)
void(*const get_and_handle_alarms)(void *pvt)
int(*const start)(void *pvt)
int(*const callwait)(void *pvt)
void(*const set_waitingfordt)(void *pvt, struct ast_channel *ast)
void(*const start_polarityswitch)(void *pvt)
Reset FXS line polarity to IDLE, based on answeronpolarityswitch and hanguponpolarityswitch.
struct ast_channel *(*const new_ast_channel)(void *pvt, int state, int startpbx, enum analog_sub sub, const struct ast_channel *requestor)
int(*const get_event)(void *pvt)
void(*const set_needringing)(void *pvt, int value)
void *(*const get_sigpvt_bridged_channel)(struct ast_channel *chan)
void(*const set_polarity)(void *pvt, int value)
Set FXS line polarity to 0=IDLE NZ=REVERSED.
int(*const get_sub_fd)(void *pvt, enum analog_sub sub)
int(*const get_interdigit_timeout)(void *pvt)
int(*const wait_event)(void *pvt)
unsigned int immediatering
unsigned int threewaysilenthold
unsigned int permcallwaiting
unsigned int dahditrcallerid
struct analog_dialoperation dop
int polarityonanswerdelay
char cid_num[AST_MAX_EXTENSION]
unsigned int permhidecallerid
unsigned int callwaitingcallerid
unsigned int ani_wink_time
enum analog_sigtype outsigmod
unsigned int usedistinctiveringdetection
unsigned int answeronpolarityswitch
unsigned int threewaycalling
char callwait_num[AST_MAX_EXTENSION]
int msgstate
-1 = unknown, 0 = no messages, 1 = new messages available
struct timeval polaritydelaytv
unsigned int hanguponpolarityswitch
char call_forward[AST_MAX_EXTENSION]
enum analog_cid_start cid_start
unsigned int callwaitcas
TRUE if Call Waiting (CW) CPE Alert Signal (CAS) is being sent.
unsigned int hidecallerid
struct ast_channel * owner
unsigned int use_smdi
TRUE if SMDI (Simplified Message Desk Interface) is enabled.
char lastcid_name[AST_MAX_EXTENSION]
unsigned int call_qualifier
unsigned int ani_info_digits
enum analog_dialmode dialmode
unsigned int cancallforward
char lastcid_num[AST_MAX_EXTENSION]
struct analog_subchannel subs[3]
unsigned int transfertobusy
char cid_name[AST_MAX_EXTENSION]
unsigned int calledsubscriberheld
char mohsuggest[MAX_MUSICCLASS]
unsigned int use_callerid
struct ast_channel * ss_astchan
char callwait_name[AST_MAX_EXTENSION]
struct ast_smdi_interface * smdi_iface
The SMDI interface to get SMDI messages from.
struct ast_party_caller caller
struct ast_channel * owner
Main Channel structure associated with a channel.
Data structure associated with a single frame of data.
Caller Party information.