aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/include/openbsc/mncc.h
diff options
context:
space:
mode:
authorAndreas Eversberg <jolly@eversberg.eu>2012-01-16 09:29:28 +0100
committerAndreas Eversberg <jolly@eversberg.eu>2013-07-29 12:34:03 +0200
commitd1dea065295f825e91cd7f04dc60bc35f4cdbd75 (patch)
tree19ac3873f7bac430348c389ed54a50173eeba247 /openbsc/include/openbsc/mncc.h
parent0af6a32d98640742c14cb7ea3506c3070e25b9f0 (diff)
Adding traffic forwarding via RTP to remote application
Instead of forwarding traffic through MNCC interface, traffic can now be forwarded to a given RTP destination. A special MNCC message is used for that. The traffic can still be forwarded through MNCC interface when this special MNCC message is not used. It also works with E1 based BTSs. In conjunction with LCR's "rtp-bridge" feature, the RTP traffic can be directly exchanged with a remote SIP endpoint, so that the traffic is not forwarded by LCR itself. This way the performance of handling traffic only depends on OpenBSC and the remote SIP endpoint. Also the traffic is exchanged with the SIP endpoint without transcoding, to have maximum performance.
Diffstat (limited to 'openbsc/include/openbsc/mncc.h')
-rw-r--r--openbsc/include/openbsc/mncc.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/openbsc/include/openbsc/mncc.h b/openbsc/include/openbsc/mncc.h
index 4a99bb11b..12a6ec833 100644
--- a/openbsc/include/openbsc/mncc.h
+++ b/openbsc/include/openbsc/mncc.h
@@ -92,9 +92,13 @@ struct gsm_call {
#define MNCC_FRAME_RECV 0x0201
#define MNCC_FRAME_DROP 0x0202
#define MNCC_LCHAN_MODIFY 0x0203
+#define MNCC_RTP_CREATE 0x0204
+#define MNCC_RTP_CONNECT 0x0205
+#define MNCC_RTP_FREE 0x0206
#define GSM_TCHF_FRAME 0x0300
#define GSM_TCHF_FRAME_EFR 0x0301
+#define GSM_TCHF_FRAME_HR 0x0302
#define MNCC_SOCKET_HELLO 0x0400
@@ -176,6 +180,13 @@ struct gsm_mncc_hello {
uint32_t lchan_type_offset;
};
+struct gsm_mncc_rtp {
+ uint32_t msg_type;
+ uint32_t callref;
+ uint32_t ip;
+ uint16_t port;
+};
+
char *get_mncc_name(int value);
void mncc_set_cause(struct gsm_mncc *data, int loc, int val);
void cc_tx_to_mncc(struct gsm_network *net, struct msgb *msg);