unified socket application interface (for asterisk and maybe other apps)
[lcr.git] / apppbx.h
index a93a285..43404f9 100644 (file)
--- a/apppbx.h
+++ b/apppbx.h
@@ -1,6 +1,6 @@
 /*****************************************************************************\
 **                                                                           **
-** PBX4Linux                                                                 **
+** Linux Call Router                                                         **
 **                                                                           **
 **---------------------------------------------------------------------------**
 ** Copyright: Andreas Eversberg                                              **
@@ -12,9 +12,9 @@
 
 enum { /* release actions: see epoint.release */
        RELEASE_NONE,
-       RELEASE_CALL,           /* call, hold */
-       RELEASE_PORT_CALLONLY,  /* call, port */
-       RELEASE_ALL,            /* call, hold, port */
+       RELEASE_JOIN,           /* join, hold */
+       RELEASE_PORT_JOINONLY,  /* join, port */
+       RELEASE_ALL,            /* join, hold, port */
 };
 
 enum { /* states as viewed from io port (state of calls are always connected) */
@@ -68,7 +68,7 @@ class EndpointAppPBX : public EndpointApp
 
        /* states */
        int                     e_state;                /* state of endpoint */
-       char                    e_terminal_interface[32];/* current internal isdn interface (usefull for callback to internal phone) */
+       char                    e_extension_interface[32];/* current internal isdn interface (usefull for callback to internal phone) */
        struct caller_info      e_callerinfo;           /* information about the caller */
        struct dialing_info     e_dialinginfo;          /* information about dialing */
        struct connect_info     e_connectinfo;          /* information about connected line */
@@ -92,8 +92,8 @@ class EndpointAppPBX : public EndpointApp
 //     int e_knocking;                         /* true, if knocking */
 //     double e_knocktime;                     /* next time to knock */
 
-//     char e_call_tone[64], e_hold_tone[64];  /* current tone */
-       int e_call_pattern/*, e_hold_pattern*/; /* pattern available */
+//     char e_join_tone[64], e_hold_tone[64];  /* current tone */
+       int e_join_pattern/*, e_hold_pattern*/; /* pattern available */
 
        /* action */
        char e_dialing_queue[32];               /* holds dialing during setup state */
@@ -111,9 +111,9 @@ class EndpointAppPBX : public EndpointApp
        int e_multipoint_cause;                 /* cause value of disconnected multiport calls (highest priority) */
        int e_multipoint_location;              /* location of cause with highest priority */
 
-       /* call relation */
-       int e_call_cause;
-       int e_call_location;    
+       /* join relation */
+       int e_join_cause;
+       int e_join_location;    
 
        /* callback */
        char e_cbdialing[256];                  /* dialing information after callback */
@@ -205,27 +205,28 @@ class EndpointAppPBX : public EndpointApp
        void port_facility(struct port_list *portlist, int message_type, union parameter *param);
        void port_suspend(struct port_list *portlist, int message_type, union parameter *param);
        void port_resume(struct port_list *portlist, int message_type, union parameter *param);
-       void ea_message_call(unsigned long call_id, int message, union parameter *param);
-       void call_crypt(struct port_list *portlist, int message_type, union parameter *param);
-       void call_mISDNsignal(struct port_list *portlist, int message_type, union parameter *param);
-       void call_setup(struct port_list *portlist, int message_type, union parameter *param);
-       void call_information(struct port_list *portlist, int message_type, union parameter *param);
-       void call_overlap(struct port_list *portlist, int message_type, union parameter *param);
-       void call_proceeding(struct port_list *portlist, int message_type, union parameter *param);
-       void call_alerting(struct port_list *portlist, int message_type, union parameter *param);
-       void call_connect(struct port_list *portlist, int message_type, union parameter *param);
-       void call_disconnect_release(struct port_list *portlist, int message_type, union parameter *param);
-       void call_notify(struct port_list *portlist, int message_type, union parameter *param);
-       void call_facility(struct port_list *portlist, int message_type, union parameter *param);
+       void ea_message_join(unsigned long join_id, int message, union parameter *param);
+       void join_crypt(struct port_list *portlist, int message_type, union parameter *param);
+       void join_mISDNsignal(struct port_list *portlist, int message_type, union parameter *param);
+       void join_setup(struct port_list *portlist, int message_type, union parameter *param);
+       void join_information(struct port_list *portlist, int message_type, union parameter *param);
+       void join_overlap(struct port_list *portlist, int message_type, union parameter *param);
+       void join_proceeding(struct port_list *portlist, int message_type, union parameter *param);
+       void join_alerting(struct port_list *portlist, int message_type, union parameter *param);
+       void join_connect(struct port_list *portlist, int message_type, union parameter *param);
+       void join_disconnect_release(struct port_list *portlist, int message_type, union parameter *param);
+       void join_notify(struct port_list *portlist, int message_type, union parameter *param);
+       void join_facility(struct port_list *portlist, int message_type, union parameter *param);
 
        /* epoint */
        void new_state(int state);
-       void release(int release, int calllocation, int callcause, int portlocation, int portcause);
+       void release(int release, int joinlocation, int joincause, int portlocation, int portcause);
        void notify_active(void);
        void keypad_function(char digit);
        void set_tone(struct port_list *portlist, char *tone);
        void out_setup(void);
-       char *apply_callerid_display(char *id, int itype, int ntype, int present, int screen, char *h323, char *intern, char *name);
+       struct mISDNport *hunt_port(char *ifname, int *channel);
+       char *apply_callerid_display(char *id, int itype, int ntype, int present, int screen, char *extension, char *name);
        void auth(int job, int bit_num);
 
        /* vbox playback stuff */
@@ -248,13 +249,13 @@ class EndpointAppPBX : public EndpointApp
        struct route_param *routeparam(struct route_action *action, unsigned long long id);
 
        /* init / dialing / hangup */
-       void _action_init_call(int chan);
+       void _action_init_call(char *remote);
        void action_init_call(void);
-       void action_init_chan(void);
+       void action_init_remote(void);
        void action_dialing_internal(void);
        void action_dialing_external(void);
        void action_dialing_h323(void);
-       void action_dialing_chan(void);
+       void action_dialing_remote(void);
        void action_dialing_vbox_record(void);
        void action_init_partyline(void);
        void action_hangup_call(void);
@@ -296,8 +297,8 @@ class EndpointAppPBX : public EndpointApp
        void process_hangup(int cause, int location);
 
        /* facility function */
-       void pick_call(char *extension);
-       void join_call(void);
+       void pick_join(char *extension);
+       void join_join(void);
        void encrypt_shared(void);
        void encrypt_keyex(void);
        void encrypt_off(void);
@@ -344,13 +345,15 @@ class EndpointAppPBX : public EndpointApp
        void cryptman_timeout(int secs);
 
        void message_disconnect_port(struct port_list *portlist, int cause, int location, char *display);
-       void logmessage(struct message *messsage);
+       void logmessage(int message_type, union parameter *param, unsigned long port_id, int dir);
+       void trace_header(char *name, int direction);
+       void screen(int out, char *id, int idsize, int *type, int *present, struct interface *interface);
 };
 
 
 char *nationalize_callerinfo(char *string, int *type);
 char *numberrize_callerinfo(char *string, int type);
-void apply_callerid_restriction(int anon_ignore, int port_type, char *id, int *ntype, int *present, int *screen, char *h323, char *intern, char *name);
+void apply_callerid_restriction(int anon_ignore, char *id, int *ntype, int *present, int *screen, char *extension, char *name);
 void send_mail(char *filename, char *callerid, char *callerintern, char *callername, char *vbox_email, int vbox_year, int vbox_mon, int vbox_mday, int vbox_hour, int vbox_min, char *terminal);