X-Git-Url: http://git.eversberg.eu/gitweb.cgi?p=lcr.git;a=blobdiff_plain;f=message.h;h=c2076af32828e300e43ffd0260138d0f1f302298;hp=9fc01b2e2e27c85bc0c04eded9e3c9c1c72bcf9b;hb=0eebd3a28e968844ec459298ac36e16305cc07bb;hpb=20a671d76854520ad9d5ea9d481e008240465e62 diff --git a/message.h b/message.h index 9fc01b2..c2076af 100644 --- a/message.h +++ b/message.h @@ -9,8 +9,6 @@ ** ** \*****************************************************************************/ -#define ISDN_TRANSMIT 256 // samples - enum { /* interface types */ INFO_ITYPE_ISDN, /* call from external */ INFO_ITYPE_ISDN_EXTENSION, /* call from internal extension */ @@ -34,6 +32,8 @@ enum { /* number presentation */ enum { /* number presentation */ INFO_SCREEN_USER, /* user provided */ + INFO_SCREEN_USER_VERIFIED_PASSED, + INFO_SCREEN_USER_VERIFIED_FAILED, INFO_SCREEN_NETWORK /* network provided */ }; @@ -165,6 +165,7 @@ struct caller_info { int ntype2; /* second type of number */ int present2; /* second presentation */ int screen2; /* second who provided the number */ + char imsi[16]; /* IMSI for gsm originated calls */ }; /* call-info structure DIALING */ @@ -175,6 +176,7 @@ struct dialing_info { int ntype; /* type of number */ int sending_complete; /* end of dialing */ char display[84]; /* display information */ + char keypad[33]; /* send keypad facility */ }; /* call-info structure CONNECT */ @@ -189,6 +191,7 @@ struct connect_info { int present; /* presentation */ int screen; /* who provided the number */ char display[84]; /* display information */ + char imsi[16]; /* IMSI for gsm terminated calls */ }; /* call-info structure DISCONNECT */ @@ -196,6 +199,7 @@ struct disconnect_info { int cause; /* reason for disconnect */ int location; /* disconnect location */ char display[84]; /* optional display information */ + int force; /* special flag to release imediately */ }; /* call-info structure REDIR */ @@ -233,6 +237,12 @@ struct notify_info { int local; /* if set, endpoints gets information about audio channel (open/close) */ }; +/* call-info structure PROGRESS */ +struct progress_info { + int progress; /* progress indicator */ + int location; /* progress location */ +}; + /* call-info structure FACILITY */ struct facility_info { char data[256]; /* data info about facility */ @@ -257,6 +267,7 @@ struct message_setup { struct redir_info redirinfo; /* info on redirection (to the calling user) */ struct capa_info capainfo; /* info on l2,l3 capability */ struct useruser_info useruser; /* user-user */ +// struct progress_info progress; /* info on call progress */ char context[128]; /* asterisk context */ }; @@ -266,10 +277,11 @@ struct park_info { int len; }; +#define ISDN_TRANSMIT 256 /* DATA */ struct param_data { - unsigned char data[ISDN_TRANSMIT]; /* audio/hdlc data */ - int len; /* audio/hdlc data */ + unsigned char data[ISDN_TRANSMIT]; /* audio data */ + int len; /* audio data */ }; struct param_play { @@ -312,6 +324,7 @@ struct param_hello { struct param_bchannel { int type; /* BCHANNEL_* */ unsigned int handle; /* bchannel stack/portid */ + int isloopback; /* in this case the application behaves like an interface, dsp should not be used */ int tx_gain, rx_gain; char pipeline[256]; unsigned char crypt[128]; @@ -319,6 +332,11 @@ struct param_bchannel { int crypt_type; /* 1 = blowfish */ }; +struct param_newref { + int direction; /* who requests a refe? */ + int mode; /* 0 = direct-mode, 1 = PBX mode */ +}; + /* structure of message parameter */ union parameter { struct param_tone tone; /* MESSAGE_TONE */ @@ -328,6 +346,7 @@ union parameter { struct connect_info connectinfo; /* CONNECT INFO */ struct disconnect_info disconnectinfo; /* DISCONNECT INFO */ struct notify_info notifyinfo; /* some notifications */ + struct progress_info progressinfo; /* some progress */ struct facility_info facilityinfo; /* some notifications */ struct park_info parkinfo; /* MESSAGE_SUSPEND, MESSAGE_RESUME */ int state; /* MESSAGE_TIMEOUT */ @@ -342,7 +361,7 @@ union parameter { struct param_crypt crypt; /* MESSAGE_CRYPT */ struct param_hello hello; /* MESSAGE_HELLO */ struct param_bchannel bchannel; /* MESSAGE_BCHANNEL */ - int direction; /* MESSAGE_NEWREF */ + struct param_newref newref; /* MESSAGE_NEWREF */ }; enum { /* message flow */ @@ -378,7 +397,8 @@ enum { /* messages between entities */ MESSAGE_DISCONNECT, /* disconnect with cause */ MESSAGE_RELEASE, /* release with cause */ MESSAGE_TIMEOUT, /* protocol state has timed out (port->epoint) */ - MESSAGE_NOTIFY, /* used to send progress and notify infos */ + MESSAGE_NOTIFY, /* used to send notify info */ + MESSAGE_PROGRESS, /* used to send progress info */ MESSAGE_FACILITY, /* used to facility infos, like aocd */ MESSAGE_SUSPEND, /* suspend port */ MESSAGE_RESUME, /* resume port */ @@ -414,6 +434,7 @@ enum { /* messages between entities */ "MESSAGE_RELEASE", \ "MESSAGE_TIMEOUT", \ "MESSAGE_NOTIFY", \ + "MESSAGE_PROGRESS", \ "MESSAGE_FACILITY", \ "MESSAGE_SUSPEND", \ "MESSAGE_RESUME", \ @@ -439,6 +460,7 @@ void message_put(struct lcr_msg *message); struct lcr_msg *message_forward(int id_from, int id_to, int flow, union parameter *param); struct lcr_msg *message_get(void); void message_free(struct lcr_msg *message); - +void init_message(void); +void cleanup_message(void);