X-Git-Url: http://git.eversberg.eu/gitweb.cgi?p=lcr.git;a=blobdiff_plain;f=interface.h;h=040c412166b7f5466a827c9367cd6a67fcd2976a;hp=c7dac41c133563ec60e50dca370a7957d720addb;hb=refs%2Fheads%2Fbackup2;hpb=3754d8f73ff7cb55e204f7ede6569028407a00e5 diff --git a/interface.h b/interface.h index c7dac41..040c412 100644 --- a/interface.h +++ b/interface.h @@ -8,10 +8,6 @@ ** interface header file ** ** ** \*****************************************************************************/ - -#define FLAG_PORT_USE 1 -#define FLAG_PORT_PTP (1<<1) - enum { /* interface type */ IF_TYPE_DIRECT, IF_TYPE_EXTENSION, @@ -48,13 +44,32 @@ struct interface_port { struct interface *interface; /* link to interface */ struct mISDNport *mISDNport; /* link to port */ int portnum; /* port number */ + char portname[64]; /* alternately: port name */ int ptp; /* force load stack in PTP mode */ int ptmp; /* force load stack in PTP mode */ + int nt; /* load stack in NT-mode */ + int tespecial; /* special TE-mode behavior */ + int l1hold; /* hold layer 1 (1=on, 0=off) */ + int l2hold; /* hold layer 2 (1=force, -1=disable, 0=default) */ + unsigned int ss5; /* set, if SS5 signalling enabled, also holds feature bits */ int channel_force; /* forces channel by protocol */ int nodtmf; /* disables DTMF */ + int dtmf_threshold; /* DTMF level threshold */ struct select_channel *out_channel; /* list of channels to select */ struct select_channel *in_channel; /* the same for incoming channels */ int block; /* set if interface is blocked */ + int tout_setup; + int tout_dialing; + int tout_proceeding; + int tout_alerting; + int tout_disconnect; +// int tout_hold; +// int tout_park; + int dialmax; /* maximum number of digits to dial */ + int nonotify; /* blocks outgoing notify messages */ + int pots_flash; /* allow flash button / keypulse to hold active call */ + int pots_ring; /* after hangup let calls on hold ring the phone */ + int pots_transfer; /* after hangup, two calls are transfered */ }; struct interface_msn { @@ -72,33 +87,72 @@ struct interface_screen { int result_present; /* presentation type */ }; -struct interface_filter { - struct interface_filter *next; - int filter; /* filter to use */ - char parameter[256]; /* filter parameter */ -}; - struct interface { struct interface *next; char name[64]; /* name of interface */ + int app; /* application to use for interface (0 = PBX) */ + char bridge_if[64]; /* name of destination interface for bridge application */ + int external; /* interface used for external calls */ int extension; /* calls are handled as extension */ int is_tones; /* generate tones */ int is_earlyb; /* bridge tones during call setup */ + int shutdown; /* interface will not automatically be loaded */ int hunt; /* select algorithm */ int hunt_next; /* ifport index to start hunt */ struct interface_port *ifport; /* link to interface port list */ struct interface_msn *ifmsn; /* link to interface msn list */ struct interface_screen *ifscreen_in; /* link to screening list */ struct interface_screen *ifscreen_out; /* link to screening list */ - struct interface_filter *iffilter; /* link to filter list */ + int tx_gain, rx_gain; /* filter gain */ + char tones_dir[128]; + char pipeline[256]; /* filter pipeline */ + unsigned char bf_key[56]; /* filter blowfish */ + int bf_len; /* filter length of blowfish */ + int remote; /* interface is a remote app interface */ + char remote_app[32]; /* name of remote application */ + char remote_context[128]; /* context feld to use for remote application */ +#ifdef WITH_GSM_BS + int gsm_bs; /* interface is an GSM BS interface */ + char gsm_bs_name[32]; /* name of bs */ + int gsm_bs_hr; /* prefer half rate for MOT calls */ +#if 0 + int gsm_bs_payloads; + unsigned char gsm_bs_payload_types[8]; +#endif +#endif +#ifdef WITH_GSM_MS + int gsm_ms; /* interface is an GSM MS interface */ + char gsm_ms_name[32]; /* name of ms */ +#endif +#ifdef WITH_SIP + int sip; /* interface is a SIP interface */ + char sip_local_peer[128]; + char sip_remote_peer[128]; + char sip_asserted_id[128]; + char sip_auth_user[128]; + char sip_auth_password[128]; + char sip_auth_realm[128]; + int sip_register; + char sip_register_user[128]; + char sip_register_host[128]; + int sip_register_interval; /* interval to register */ + int sip_options_interval; /* timer to keepalive invite/register transactions */ + char sip_public_ip[128]; + char sip_stun_server[128]; + int sip_stun_interval; /* timer to check own IP address */ + void *sip_inst; /* sip instance */ + unsigned short rtp_port_from; + unsigned short rtp_port_to; +#endif + int rtp_bridge; /* bridge RTP directly (for calls comming from interface) */ }; struct interface_param { - char *name; + const char *name; /* return value (pointer of function)(args ...) */ int (*func)(struct interface *, char *, int, char *, char*); - char *usage; - char *help; + const char *usage; + const char *help; }; @@ -109,7 +163,8 @@ extern char interface_error[256]; struct interface *read_interfaces(void); void free_interfaces(struct interface *interface_start); void relink_interfaces(void); -void load_port(struct interface_port *ifport); +void load_mISDN_port(struct interface_port *ifport); void doc_interface(void); - +void do_screen(int out, char *id, int idsize, int *type, int *present, const char *interface_name); +struct interface *getinterfacebyname(const char *name);