X-Git-Url: http://git.eversberg.eu/gitweb.cgi?p=lcr.git;a=blobdiff_plain;f=message.h;h=6330654cdf7eea7ae681c23dc0b8603fb2794ed6;hp=c2076af32828e300e43ffd0260138d0f1f302298;hb=5463e1b62a39ce417b610584e3d34a8bc30ac15e;hpb=3a8f58ec8946b7f1683208d1cc3b054486f12e6c diff --git a/message.h b/message.h index c2076af..6330654 100644 --- a/message.h +++ b/message.h @@ -122,7 +122,6 @@ enum { /* diversion types */ enum { /* isdnsignal */ 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 */ }; @@ -149,6 +148,13 @@ enum { B_MODE_HDLC, /* hdlc data mode */ }; +/* rtp-info structure */ +struct rtp_info { + int payload_type; + unsigned int ip; + unsigned short port; +}; + /* call-info structure CALLER */ struct caller_info { char id[32]; /* id of caller (user number) */ @@ -192,6 +198,7 @@ struct connect_info { int screen; /* who provided the number */ char display[84]; /* display information */ char imsi[16]; /* IMSI for gsm terminated calls */ + struct rtp_info rtpinfo; /* info about RTP peer */ }; /* call-info structure DISCONNECT */ @@ -241,6 +248,7 @@ struct notify_info { struct progress_info { int progress; /* progress indicator */ int location; /* progress location */ + struct rtp_info rtpinfo; /* info about RTP peer */ }; /* call-info structure FACILITY */ @@ -267,7 +275,8 @@ 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 */ + struct progress_info progress; /* info on call progress */ + struct rtp_info rtpinfo; /* info about RTP peer */ char context[128]; /* asterisk context */ }; @@ -277,13 +286,6 @@ struct park_info { int len; }; -#define ISDN_TRANSMIT 256 -/* DATA */ -struct param_data { - unsigned char data[ISDN_TRANSMIT]; /* audio data */ - int len; /* audio data */ -}; - struct param_play { char file[512]; /* file name */ int offset; /* offset to start file at (in seconds) */ @@ -304,7 +306,6 @@ struct param_mISDNsignal { int tx_gain; int rx_gain; int conf; - int joindata; int tone; int echo; int delay; @@ -352,7 +353,6 @@ union parameter { int state; /* MESSAGE_TIMEOUT */ int knock; /* MESSAGE_KNOCK 0=off !0=on */ 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 */ struct param_counter counter; /* MESSAGE_TONE_COUNTER */ @@ -362,6 +362,7 @@ union parameter { struct param_hello hello; /* MESSAGE_HELLO */ struct param_bchannel bchannel; /* MESSAGE_BCHANNEL */ struct param_newref newref; /* MESSAGE_NEWREF */ + unsigned int bridge_id; /* MESSAGE_BRIDGE */ }; enum { /* message flow */ @@ -403,11 +404,9 @@ enum { /* messages between entities */ MESSAGE_SUSPEND, /* suspend port */ MESSAGE_RESUME, /* resume port */ 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 */ MESSAGE_CRYPT, /* encryption message */ - MESSAGE_DATA, /* audio/hdlc data */ MESSAGE_VBOX_PLAY, /* play recorded file */ MESSAGE_VBOX_PLAY_SPEED,/* change speed of file */ MESSAGE_VBOX_TONE, /* set answering VBOX tone */ @@ -416,6 +415,7 @@ enum { /* messages between entities */ MESSAGE_BCHANNEL, /* request/assign/remove bchannel */ MESSAGE_HELLO, /* hello message for remote application */ MESSAGE_NEWREF, /* special message to create and inform ref */ + MESSAGE_BRIDGE, /* control port bridge */ }; #define MESSAGES static const char *messages_txt[] = { \ @@ -439,11 +439,9 @@ enum { /* messages between entities */ "MESSAGE_SUSPEND", \ "MESSAGE_RESUME", \ "MESSAGE_AUDIOPATH", \ -/* "MESSAGE_REMOTE_AUDIO",*/ \ "MESSAGE_PATTERN", \ "MESSAGE_NOPATTERN", \ "MESSAGE_CRYPT", \ - "MESSAGE_DATA", \ "MESSAGE_VBOX_PLAY", \ "MESSAGE_VBOX_PLAY_SPEED", \ "MESSAGE_VBOX_TONE", \ @@ -452,11 +450,13 @@ enum { /* messages between entities */ "MESSAGE_BCHANNEL", \ "MESSAGE_HELLO", \ "MESSAGE_NEWREF", \ + "MESSAGE_BRIDGE", \ }; struct lcr_msg *message_create(int id_from, int id_to, int flow, int type); -void message_put(struct lcr_msg *message); +#define message_put(m) _message_put(m, __FILE__, __LINE__) +void _message_put(struct lcr_msg *message, const char *file, int line); 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);