diff options
author | Philipp Maier <pmaier@sysmocom.de> | 2017-07-14 15:18:11 +0200 |
---|---|---|
committer | Philipp Maier <pmaier@sysmocom.de> | 2017-07-14 15:18:11 +0200 |
commit | 7941a94244d2f3e7ffed811fca41d7849c7d398e (patch) | |
tree | faf55fe35f3beb20b3e3ddb7ce35cf99b8fcb991 /openbsc/include/openbsc | |
parent | bd85cdf71acc0d043ad978afaba830d603888c7b (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.h | 2 | ||||
-rw-r--r-- | openbsc/include/openbsc/msc_ifaces.h | 1 | ||||
-rw-r--r-- | openbsc/include/openbsc/transaction.h | 7 |
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 { |