From 2ed0fee489c37a6e2d4473f6185ebbe3e746ac11 Mon Sep 17 00:00:00 2001 From: Super User Date: Sun, 6 May 2007 15:54:52 +0200 Subject: only for backup, still in coding state - no compile!!! --- extension.h | 187 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 187 insertions(+) create mode 100644 extension.h (limited to 'extension.h') diff --git a/extension.h b/extension.h new file mode 100644 index 0000000..c59bb6d --- /dev/null +++ b/extension.h @@ -0,0 +1,187 @@ +/*****************************************************************************\ +** ** +** PBX4Linux ** +** ** +**---------------------------------------------------------------------------** +** Copyright: Andreas Eversberg ** +** ** +** extension header file ** +** ** +\*****************************************************************************/ + +/* display of callerid on internal numbers */ + +enum { + DISPLAY_CID_ASIS, /* with type as defined */ + DISPLAY_CID_NUMBER, /* "5551212" */ + DISPLAY_CID_ABBREVIATION, /* "05" */ + DISPLAY_CID_NAME, /* "Axel" */ + DISPLAY_CID_NAME_NUMBER, /* "Axel 5551212" */ + DISPLAY_CID_NUMBER_NAME, /* "5551212 Axel" */ + DISPLAY_CID_ABBREV_NUMBER, /* "05 5551212" */ + DISPLAY_CID_ABBREV_NAME, /* "05 Axel" */ + DISPLAY_CID_ABBREV_NUMBER_NAME, /* "05 5551212 Axel" */ + DISPLAY_CID_ABBREV_NAME_NUMBER, /* "05 Axel 5551212" */ +}; +enum { + DISPLAY_CID_INTERNAL_OFF, /* "20" */ + DISPLAY_CID_INTERNAL_ON, /* "Intern 20" */ +}; + +/* display of clear causes using display messages */ + +enum { + DISPLAY_CAUSE_NONE, + DISPLAY_CAUSE_ENGLISH, /* "34 - no channel" */ + DISPLAY_CAUSE_GERMAN, /* "34 - kein Kanal" */ + DISPLAY_LOCATION_ENGLISH, /* "34 - Network (Remote)" */ + DISPLAY_LOCATION_GERMAN, /* "34 - Vermittlung (Gegenstelle)" */ + DISPLAY_CAUSE_NUMBER, /* "Cause 34" */ +}; + +/* clip */ + +enum { + CLIP_ASIS, /* use colp as presented by caller */ + CLIP_HIDE, /* use extension's caller id */ +}; + +/* colp */ + +enum { + COLP_ASIS, /* use colp as presented by called */ + COLP_HIDE, /* use extension's caller id */ + COLP_FORCE, /* use colp even if called dosn't provide or allow */ +}; + +/* codec to use */ + +enum { + CODEC_OFF, /* record wave off */ + CODEC_MONO, /* record wave mono */ + CODEC_STEREO, /* record wave stereo */ + CODEC_8BIT, /* record wave mono 8bit */ + CODEC_LAW, /* record LAW */ +}; + +/* VBOX mode */ + +enum { + VBOX_MODE_NORMAL, /* normal mode: send announcement, then record */ + VBOX_MODE_PARALLEL, /* parallel mode: send announcement and record during announcement */ + VBOX_MODE_ANNOUNCEMENT, /* announcement mode: send announcement and disconnect */ +}; + +/* VBOX display */ + +enum { + VBOX_DISPLAY_BRIEF, /* parallel mode: send announcement and record during announcement */ + VBOX_DISPLAY_DETAILED, /* announcement mode: send announcement and disconnect */ + VBOX_DISPLAY_OFF, /* normal mode: send announcement, then record */ +}; + +/* VBOX language */ + +enum { + VBOX_LANGUAGE_ENGLISH, /* display and announcements are in english */ + VBOX_LANGUAGE_GERMAN, /* display and announcements are in german */ +}; + +/* dsptones */ + +enum { + DSP_NONE, + DSP_AMERICAN, + DSP_GERMAN, + DSP_OLDGERMAN, +}; + + +/* extensions + * + * extensions are settings saved at //settings + * they carry all information and permissions about an extension + * they will be loaded when needed and saved when changed + */ + +struct extension { + char name[16]; + char prefix[32]; + char next[32]; /* next number to dial when pickup (temp prefix) */ + char alarm[32]; + char cfb[256]; + char cfu[256]; + char cfnr[256]; + int cfnr_delay; + int change_forward; + char cfp[256]; + char interfaces[128]; + char callerid[32]; + int callerid_type; + int callerid_present; + char id_next_call[32]; + int id_next_call_type; + int id_next_call_present; + int change_callerid; + int clip; /* how to present caller id on forwarded calls */ + int colp; /* how to present called line id on forwarded calls */ + char clip_prefix[32]; /* prefix for screening incomming clip */ + int keypad; /* support keypad for call control */ + int centrex; /* present name of caller/called on internal extension */ + int anon_ignore; /* ignore anonymouse calls */ + int rights; + int delete_ext; /* delete function for external dialing */ + int noknocking; /* deny knocking of incoming call */ + char last_out[MAX_REMEMBER][64]; /* numbers to redail */ + char last_in[MAX_REMEMBER][64]; /* numbers to reply */ + int txvol; + int rxvol; + int display_cause; /* clear cause using display message */ + int display_ext; /* display external caller ids */ + int display_int; /* display internal caller ids */ + int display_voip; /* display h323 caller ids */ + int display_fake; /* display fake caller ids */ + int display_anon; /* display anonymouse caller ids */ + int display_menu; /* display menu */ + int display_dialing; /* display interpreted digits while dialing */ + int display_name; /* display caller's name if available (CNIP) */ + char tones_dir[64]; /* directory of all tones/patterns */ + int record; /* SEE RECORD_* */ + char password[64]; /* callback / login password */ + + int vbox_mode; /* see VBOX_MODE_* */ + int vbox_codec; /* see CODEC_* */ + int vbox_time; /* time to recorde, 0=infinite */ + int vbox_display; /* see VBOX_DISPLAY_* */ + int vbox_language; /* see VBOX_LANGUAGE_* */ + char vbox_email[128]; /* send mail if given */ + int vbox_email_file; /* set, if also the audio fille will be attached */ + int vbox_free; /* if vbox shall connect after announcment */ + + int tout_setup; + int tout_dialing; + int tout_proceeding; + int tout_alerting; + int tout_disconnect; +// int tout_hold; +// int tout_park; + int own_setup; + int own_proceeding; + int own_alerting; + int own_cause; + + int facility; /* must be set to forward facility to terminal */ + int datacall; /* data calls are handled as voice calls */ + int no_seconds; /* don't include seconds in the connect message */ +}; + +int read_extension(struct extension *ext, char *number); +int write_extension(struct extension *ext, char *number); +int write_log(char *number, char *callerid, char *calledid, time_t start, time_t stop, int aoce, int cause, int location); +int parse_phonebook(char *number, char **abbrev_pointer, char **phone_pointer, char **name_pointer); +int parse_secrets(char *number, char *remote_id, char **auth_pointer, char **crypt_pointer, char **key_pointer); +char *parse_directory(char *number, int type); +int parse_callbackauth(char *number, struct caller_info *callerinfo); +void append_callbackauth(char *number, struct caller_info *callerinfo); + + -- cgit v1.2.3-55-g7522