Applied patch by Daniel: "execute"-action can now be performed on call init or on...
[lcr.git] / apppbx.h
index 7bdf008..78355b5 100644 (file)
--- a/apppbx.h
+++ b/apppbx.h
@@ -33,7 +33,7 @@ enum { /* states as viewed from io port (state of calls are always connected) */
 };
 
 #define EPOINT_STATE_NAMES \
-static char *state_name[] = { \
+static const char *state_name[] = { \
        "EPOINT_STATE_IDLE", \
        "EPOINT_STATE_IN_SETUP", \
        "EPOINT_STATE_OUT_SETUP", \
@@ -64,7 +64,7 @@ class EndpointAppPBX : public EndpointApp
        int                     e_hold;                 /* is this endpoint on hold ? */
        char                    e_tone[256];            /* save tone for resuming ports */
 
-       unsigned long           e_adminid;
+       unsigned int            e_adminid;
 
        /* states */
        int                     e_state;                /* state of endpoint */
@@ -103,9 +103,9 @@ class EndpointAppPBX : public EndpointApp
        int e_powercount;                       /* power count */
        int e_powerlimit;                       /* power limit */
        double e_callback;                      /* time when callback (when idle reached) 0=off */
-       signed long e_cfnr_release;             /* time stamp when to do the release for call forward on no response */
-       signed long e_cfnr_call;                /* time stamp when to do the call for call forward on no response */
-       signed long e_password_timeout;         /* time stamp when to do the release for password timeout */
+       signed int e_cfnr_release;              /* time stamp when to do the release for call forward on no response */
+       signed int e_cfnr_call;         /* time stamp when to do the call for call forward on no response */
+       signed int e_password_timeout;          /* time stamp when to do the release for password timeout */
 
        /* port relation */
        int e_multipoint_cause;                 /* cause value of disconnected multiport calls (highest priority) */
@@ -164,8 +164,8 @@ class EndpointAppPBX : public EndpointApp
        char e_crypt_info[33];                  /* last information text */
        int e_crypt_timeout_sec;                /* timer */
        int e_crypt_timeout_usec;               /* timer */
-       unsigned long e_crypt_random;           /* current random number for ident */
-       unsigned long e_crypt_bogomips;         /* bogomips for ident */
+       unsigned int e_crypt_random;            /* current random number for ident */
+       unsigned int e_crypt_bogomips;          /* bogomips for ident */
        unsigned char e_crypt_key[256];         /* the session key */
        int e_crypt_key_len;
        unsigned char e_crypt_ckey[256];        /* the encrypted session key */
@@ -191,7 +191,7 @@ class EndpointAppPBX : public EndpointApp
 
        /* messages */
        void hookflash(void);
-       void ea_message_port(unsigned long port_id, int message, union parameter *param);
+       void ea_message_port(unsigned int port_id, int message, union parameter *param);
        void port_setup(struct port_list *portlist, int message_type, union parameter *param);
        void port_information(struct port_list *portlist, int message_type, union parameter *param);
        void port_dtmf(struct port_list *portlist, int message_type, union parameter *param);
@@ -206,7 +206,7 @@ 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_join(unsigned long join_id, int message, union parameter *param);
+       void ea_message_join(unsigned int 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);
@@ -224,10 +224,10 @@ class EndpointAppPBX : public EndpointApp
        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 set_tone(struct port_list *portlist, const char *tone);
        void out_setup(void);
        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);
+       char *apply_callerid_display(const char *id, int itype, int ntype, int present, int screen, const char *extension, const char *name);
        void auth(int job, int bit_num);
 
        /* vbox playback stuff */
@@ -237,12 +237,12 @@ class EndpointAppPBX : public EndpointApp
        void vbox_handler(void);
        void efi_message_eof(void);
        void vbox_message_eof(void);
-       void set_tone_vbox(char *tone);
-       void set_play_vbox(char *file, int offset);
+       void set_tone_vbox(const char *tone);
+       void set_play_vbox(const char *file, int offset);
        void set_play_speed(int speed);
 
        /* efi */
-       void set_tone_efi(char *tone);
+       void set_tone_efi(const char *tone);
        
        /* routing */
        struct route_ruleset *rulesetbyname(char *name);
@@ -289,7 +289,9 @@ class EndpointAppPBX : public EndpointApp
        void action_dialing_help(void);
        void action_dialing_deflect(void);
        void action_dialing_setforward(void);
+       void action_init_execute(void);
        void action_hangup_execute(void);
+       void action_execute(void);
        void action_hangup_file(void);
        void action_init_pick(void);
        void action_dialing_password(void);
@@ -304,7 +306,7 @@ class EndpointAppPBX : public EndpointApp
        void encrypt_keyex(void);
        void encrypt_off(void);
        void encrypt_result(int message, char *text);
-       int check_external(char **errstr, class Port **port);
+       int check_external(const char **errstr, class Port **port);
 
        /* crypt */
        void cryptman_keyengine(int job);
@@ -340,14 +342,13 @@ class EndpointAppPBX : public EndpointApp
        int cryptman_sizeofinf(unsigned char *buf, int element);
        unsigned char *cryptman_getinf(unsigned char *buf, int element, unsigned char *to);
        void cryptman_msg2peer(unsigned char *buf);
-       void cryptman_msg2user(int msg, char *text);
+       void cryptman_msg2user(int msg, const char *text);
        void cryptman_msg2crengine(int msg, unsigned char *buf, int len);
        void cryptman_state(int state);
        void cryptman_timeout(int secs);
-
-       void message_disconnect_port(struct port_list *portlist, int cause, int location, char *display);
-       void logmessage(int message_type, union parameter *param, unsigned long port_id, int dir);
-       void trace_header(char *name, int direction);
+       void message_disconnect_port(struct port_list *portlist, int cause, int location, const char *display);
+       void logmessage(int message_type, union parameter *param, unsigned int port_id, int dir);
+       void trace_header(const char *name, int direction);
 };