X-Git-Url: http://git.eversberg.eu/gitweb.cgi?p=lcr.git;a=blobdiff_plain;f=message.h;h=ae1e8fdbebcaf63a81d9c2c01e820e1d5a19091f;hp=e95e8e7f53d6765db5ff371d26487e93e0ac2d9e;hb=701b046a45c2c79cc6d07ac3a4f84f499f7ed376;hpb=559ff64e3062b70f27ddceba825f40642a6c5725 diff --git a/message.h b/message.h index e95e8e7..ae1e8fd 100644 --- a/message.h +++ b/message.h @@ -118,10 +118,11 @@ enum { /* diversion types */ #define INFO_HLC_AUDIOVISUAL 0xe0 enum { /* isdnsignal */ - mISDNSIGNAL_VOLUME, - mISDNSIGNAL_CONF, - mISDNSIGNAL_NODATA, /* no data required */ - mISDNSIGNAL_ECHO, + mISDNSIGNAL_VOLUME, /* change volume */ + mISDNSIGNAL_CONF, /* joint/split conference */ + mISDNSIGNAL_JOINDATA, /* data required by join instance */ + mISDNSIGNAL_ECHO, /* enable/disable echoe */ + mISDNSIGNAL_DELAY, /* use delay or adaptive jitter */ }; /* call-info structure CALLER */ @@ -140,7 +141,7 @@ struct caller_info { /* call-info structure DIALING */ struct dialing_info { - char number[256]; /* number dialing (so far) */ + char id[256]; /* number dialing (so far) */ char interfaces[128]; /* interfaces for extenal calls */ int itype; /* type of interface */ int ntype; /* type of number */ @@ -150,11 +151,10 @@ struct dialing_info { /* call-info structure CONNECT */ struct connect_info { char id[32]; /* id of caller (user number) */ - char voip[64]; /* URI of voip (or gateway) */ - char intern[32]; /* internal id */ + char extension[32]; /* internal id */ char name[16]; int isdn_port; /* internal/external port (if call is isdn) */ - char interfaces[128]; /* interfaces for extenal calls */ + char interface[128]; /* interface for extenal calls */ int itype; /* type of interface */ int ntype; /* type of number */ int present; /* presentation */ @@ -172,8 +172,7 @@ struct disconnect_info { /* call-info structure REDIR */ struct redir_info { char id[32]; /* id of caller (user number) */ - char voip[64]; /* host of voip (or gateway) */ - char intern[32]; /* internal id */ + char extension[32]; /* internal id */ int isdn_port; /* internal/external port (if call is isdn) */ int itype; /* type of interface */ int ntype; /* type of number */ @@ -195,8 +194,7 @@ struct capa_info { struct notify_info { int notify; /* notifications (see INFO_NOTIFY_*) */ char id[32]; /* redirection id (user number) */ - char voip[64]; /* host of voip (or gateway) */ - char intern[32]; /* internal id */ + char extension[32]; /* internal id */ int isdn_port; /* internal/external port (if call is isdn) */ int itype; /* type of interface */ int ntype; /* type of number */ @@ -241,9 +239,6 @@ struct park_info { struct param_data { unsigned char data[512]; /* audio/hdlc data */ int len; /* audio/hdlc data */ - int compressed; /* 0 for law-data, 1 for 16-bit data */ - unsigned long port_id; /* to identify the source of this data */ - int port_type; /* type of the source's port */ }; struct param_play { @@ -266,9 +261,10 @@ struct param_mISDNsignal { int rxvol; int txvol; int conf; - int nodata; + int joindata; int tone; int echo; + int delay; }; /* encryption control structure CRYPT */ @@ -278,6 +274,10 @@ struct param_crypt { unsigned char data[512+32]; /* a block of 512 byte + some overhead */ }; +struct param_hello { + char application[32]; /* name of remote application */ +}; + /* structure of message parameter */ union parameter { struct param_tone tone; /* MESSAGE_TONE */ @@ -291,7 +291,7 @@ union parameter { struct park_info parkinfo; /* MESSAGE_SUSPEND, MESSAGE_RESUME */ int state; /* MESSAGE_TIMEOUT */ int knock; /* MESSAGE_KNOCK 0=off !0=on */ - int channel; /* MESSAGE_CHANNEL see RELATION_CHANNEL_* (call.h) */ + int audiopath; /* MESSAGE_audiopath see RELATION_CHANNEL_* (join.h) */ struct param_data data; /* MESSAGE_DATA */ struct param_play play; /* MESSAGE_VBOX_PLAY */ int speed; /* MESSAGE_VBOX_PLAY_SPEED */ @@ -299,12 +299,13 @@ union parameter { struct param_mISDNsignal mISDNsignal; /* MESSAGE_mISDNSIGNAL */ struct extension ext; /* tell port about extension information */ struct param_crypt crypt; /* MESSAGE_CRYPT */ + struct param_hello hello; /* MESSAGE_HELLO */ }; enum { /* message flow */ PORT_TO_EPOINT, - EPOINT_TO_CALL, - CALL_TO_EPOINT, + EPOINT_TO_JOIN, + JOIN_TO_EPOINT, EPOINT_TO_PORT, }; @@ -315,6 +316,7 @@ struct message { int flow; /* from where to where */ unsigned long id_from; /* in case of flow==PORT_TO_EPOINT: id_from is the port's serial, id_to is the epoint's serial */ unsigned long id_to; + int keep; union parameter param; }; @@ -339,7 +341,7 @@ enum { /* messages between entities */ MESSAGE_SUSPEND, /* suspend port */ MESSAGE_RESUME, /* resume port */ - MESSAGE_CHANNEL, /* set status of audio path to endpoint (to call, audio is also set) */ + MESSAGE_AUDIOPATH, /* set status of audio path to endpoint (to call, audio is also set) */ // MESSAGE_REMOTE_AUDIO, /* tell remote to set audio status */ MESSAGE_PATTERN, /* pattern information tones available */ MESSAGE_NOPATTERN, /* pattern information tones unavailable */ @@ -352,7 +354,9 @@ enum { /* messages between entities */ MESSAGE_VBOX_TONE, /* set answering VBOX tone */ MESSAGE_TONE_COUNTER, /* tone counter (for VBOX tone use) */ MESSAGE_TONE_EOF, /* tone is end of file */ - MESSAGE_VBOX_RECORD, /* tell endpoint to start recording */ + MESSAGE_BCHANNEL, /* request/assign bchannel */ + MESSAGE_HELLO, /* hello message for remote application */ + MESSAGE_NEWREF, /* special message to create and inform ref */ }; #define MESSAGES static const char *messages_txt[] = { \ @@ -373,7 +377,7 @@ enum { /* messages between entities */ "MESSAGE_FACILITY", \ "MESSAGE_SUSPEND", \ "MESSAGE_RESUME", \ - "MESSAGE_CHANNEL", \ + "MESSAGE_AUDIOPATH", \ /* "MESSAGE_REMOTE_AUDIO",*/ \ "MESSAGE_PATTERN", \ "MESSAGE_NOPATTERN", \ @@ -384,12 +388,15 @@ enum { /* messages between entities */ "MESSAGE_VBOX_TONE", \ "MESSAGE_TONE_COUNTER", \ "MESSAGE_TONE_EOF", \ - "MESSAGE_VBOX_RECORD", \ + "MESSAGE_BCHANNEL", \ + "MESSAGE_HELLO", \ + "MESSAGE_NEWREF", \ }; struct message *message_create(int id_from, int id_to, int flow, int type); void message_put(struct message *message); +void message_forward(int id_from, int id_to, int flow, union parameter *param); struct message *message_get(void); void message_free(struct message *message);