X-Git-Url: http://git.eversberg.eu/gitweb.cgi?p=lcr.git;a=blobdiff_plain;f=message.h;h=9b8833adebcc14a0fb466091af245c97aa6b3113;hp=6330654cdf7eea7ae681c23dc0b8603fb2794ed6;hb=refs%2Fheads%2Fbackup2;hpb=5463e1b62a39ce417b610584e3d34a8bc30ac15e diff --git a/message.h b/message.h index 6330654..9b8833a 100644 --- a/message.h +++ b/message.h @@ -126,33 +126,35 @@ enum { /* isdnsignal */ mISDNSIGNAL_DELAY, /* use delay or adaptive jitter */ }; -enum { /* bchannel assignment */ - BCHANNEL_REQUEST, /* application requests bchannel */ - BCHANNEL_RELEASE, /* application releases bchannel */ - BCHANNEL_ASSIGN, /* bchannel assigned by LCR */ - BCHANNEL_ASSIGN_ACK, /* application acknowledges */ - BCHANNEL_REMOVE, /* bchannel removed by LCR */ - BCHANNEL_REMOVE_ACK, /* application acknowledges */ -}; enum { B_STATE_IDLE, /* not open */ B_STATE_ACTIVATING, /* DL_ESTABLISH sent */ B_STATE_ACTIVE, /* channel active */ B_STATE_DEACTIVATING, /* DL_RELEASE sent */ - B_STATE_EXPORTING, /* BCHANNEL_ASSIGN sent */ - B_STATE_REMOTE, /* bchannel assigned to remote application */ - B_STATE_IMPORTING, /* BCHANNEL_REMOVE sent */ }; + enum { B_MODE_TRANSPARENT, /* normal transparent audio */ B_MODE_HDLC, /* hdlc data mode */ }; +enum { + MEDIA_TYPE_ALAW = 1, + MEDIA_TYPE_ULAW, + MEDIA_TYPE_GSM, + MEDIA_TYPE_GSM_EFR, + MEDIA_TYPE_AMR, + MEDIA_TYPE_GSM_HR, + MEDIA_TYPE_ANALOG, /* just send analog data via MNCC */ +}; + /* rtp-info structure */ struct rtp_info { - int payload_type; - unsigned int ip; - unsigned short port; + int payloads; /* number of payloads offered */ + unsigned char payload_types[32];/* rtp payload types */ + int media_types[32]; /* media type of given payload */ + unsigned int ip; /* peer's IP */ + unsigned short port; /* peer's port */ }; /* call-info structure CALLER */ @@ -183,6 +185,8 @@ struct dialing_info { int sending_complete; /* end of dialing */ char display[84]; /* display information */ char keypad[33]; /* send keypad facility */ + char context[32]; /* asterisk context */ + int flash; /* flash key caused setup of call */ }; /* call-info structure CONNECT */ @@ -277,7 +281,6 @@ struct message_setup { struct useruser_info useruser; /* user-user */ struct progress_info progress; /* info on call progress */ struct rtp_info rtpinfo; /* info about RTP peer */ - char context[128]; /* asterisk context */ }; /* call-info structure PARK */ @@ -335,7 +338,31 @@ struct param_bchannel { struct param_newref { int direction; /* who requests a refe? */ - int mode; /* 0 = direct-mode, 1 = PBX mode */ + char interface[32]; /* interface name for selecting remote interface */ +}; + +struct param_traffic { + int len; /* how much data */ + unsigned char data[160]; /* 20ms */ +}; + +struct param_3pty { + int begin, end; + int invoke, result, error; + unsigned char invoke_id; +}; + +struct param_vootp { + int enable; + int failed; + char id[32]; +}; + +struct param_dov { + int type; /* dov_type coding */ + int level; /* volume of sending signals */ + int length; + unsigned char data[255]; }; /* structure of message parameter */ @@ -363,6 +390,11 @@ union parameter { struct param_bchannel bchannel; /* MESSAGE_BCHANNEL */ struct param_newref newref; /* MESSAGE_NEWREF */ unsigned int bridge_id; /* MESSAGE_BRIDGE */ + struct param_traffic traffic; /* MESSAGE_TRAFFIC */ + struct param_3pty threepty; /* MESSAGE_TRAFFIC */ + struct param_dov dov; /* MESSAGE_DOV */ + unsigned int queue; /* MESSAGE_DISABLE_DEJITTER */ + struct param_vootp vootp; /* MESSAGE_VOOTP */ }; enum { /* message flow */ @@ -416,6 +448,15 @@ enum { /* messages between entities */ MESSAGE_HELLO, /* hello message for remote application */ MESSAGE_NEWREF, /* special message to create and inform ref */ MESSAGE_BRIDGE, /* control port bridge */ + MESSAGE_TRAFFIC, /* exchange bchannel traffic */ + MESSAGE_3PTY, /* 3PTY call invoke */ + MESSAGE_TRANSFER, /* call transfer invoke */ + MESSAGE_DISABLE_DEJITTER,/* tell (mISDN) port not to dejitter */ + MESSAGE_UPDATEBRIDGE, /* tell join to update bridge. (sent by mISDN port) */ + MESSAGE_VOOTP, /* enable/disable VoOTP */ + MESSAGE_DOV_INDICATION, /* data over voice message received */ + MESSAGE_DOV_REQUEST, /* sending data over voice message */ + MESSAGE_DOV_LISTEN, /* listen order to data over voice message */ }; #define MESSAGES static const char *messages_txt[] = { \ @@ -451,9 +492,19 @@ enum { /* messages between entities */ "MESSAGE_HELLO", \ "MESSAGE_NEWREF", \ "MESSAGE_BRIDGE", \ + "MESSAGE_TRAFFIC", \ + "MESSAGE_3PTY", \ + "MESSAGE_TRANSFER", \ + "MESSAGE_DISABLE_DEJITTER", \ + "MESSAGE_UPDATEBRIDGE", \ + "MESSAGE_VOOTP", \ + "MESSAGE_DOV_INDIVATION", \ + "MESSAGE_DOV_REQUEST", \ + "MESSAGE_DOV_LISTEN", \ }; +extern unsigned int lcr_random; struct lcr_msg *message_create(int id_from, int id_to, int flow, int type); #define message_put(m) _message_put(m, __FILE__, __LINE__) void _message_put(struct lcr_msg *message, const char *file, int line);