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,
+};
+
+/* rtp-info structure */
+struct rtp_info {
+ 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 */
struct caller_info {
char id[32]; /* id of caller (user number) */
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 */
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 */
struct progress_info {
int progress; /* progress indicator */
int location; /* progress location */
+ struct rtp_info rtpinfo; /* info about RTP peer */
};
/* call-info structure FACILITY */
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 */
+ struct progress_info progress; /* info on call progress */
+ struct rtp_info rtpinfo; /* info about RTP peer */
};
/* call-info structure PARK */
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 */
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 */
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[] = { \
"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);