aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/include/openbsc
diff options
context:
space:
mode:
authorPhilipp Maier <pmaier@sysmocom.de>2017-07-14 15:18:11 +0200
committerPhilipp Maier <pmaier@sysmocom.de>2017-07-14 15:18:11 +0200
commit7941a94244d2f3e7ffed811fca41d7849c7d398e (patch)
treefaf55fe35f3beb20b3e3ddb7ce35cf99b8fcb991 /openbsc/include/openbsc
parentbd85cdf71acc0d043ad978afaba830d603888c7b (diff)
mncc: make external mncc work
The external mncc currently does not work properly since the MNCC_RTP_CREATE commands are removed due to the MSC-Split. It is possible to operate without these commands, but then it is not possible to route the RTP streams to an outside leg. Only internal bridging is currenlty possible. This method is used when the internal MNCC is enabled. Add the missing MNCC_RTP_CREATE implementation. Add logic to keep the old bridging mode working.
Diffstat (limited to 'openbsc/include/openbsc')
-rw-r--r--openbsc/include/openbsc/gsm_04_08.h2
-rw-r--r--openbsc/include/openbsc/msc_ifaces.h1
-rw-r--r--openbsc/include/openbsc/transaction.h7
3 files changed, 10 insertions, 0 deletions
diff --git a/openbsc/include/openbsc/gsm_04_08.h b/openbsc/include/openbsc/gsm_04_08.h
index 05aa6c00e..1dd27aaa2 100644
--- a/openbsc/include/openbsc/gsm_04_08.h
+++ b/openbsc/include/openbsc/gsm_04_08.h
@@ -84,4 +84,6 @@ void allocate_security_operation(struct gsm_subscriber_connection *conn);
int gsm48_multirate_config(uint8_t *lv, const struct amr_multirate_conf *mr, const struct amr_mode *modes);
+int gsm48_tch_rtp_create(struct gsm_trans *trans);
+
#endif
diff --git a/openbsc/include/openbsc/msc_ifaces.h b/openbsc/include/openbsc/msc_ifaces.h
index 620859b7c..a1071ae9b 100644
--- a/openbsc/include/openbsc/msc_ifaces.h
+++ b/openbsc/include/openbsc/msc_ifaces.h
@@ -39,3 +39,4 @@ int msc_tx_common_id(struct gsm_subscriber_connection *conn);
int msc_call_assignment(struct gsm_trans *trans);
int msc_call_bridge(struct gsm_trans *trans1, struct gsm_trans *trans2);
void msc_call_release(struct gsm_trans *trans);
+int msc_call_connect(struct gsm_trans *trans, uint16_t port, uint32_t ip);
diff --git a/openbsc/include/openbsc/transaction.h b/openbsc/include/openbsc/transaction.h
index 4ed1d3ad4..4930fbd32 100644
--- a/openbsc/include/openbsc/transaction.h
+++ b/openbsc/include/openbsc/transaction.h
@@ -49,6 +49,13 @@ struct gsm_trans {
/* bearer capabilities (rate and codec) */
struct gsm_mncc_bearer_cap bearer_cap;
+ /* status of the assignment, true when done */
+ bool assignment_done;
+
+ /* if true, TCH_RTP_CREATE is sent after the
+ * assignment is done */
+ bool tch_rtp_create;
+
union {
struct {