osmo-msc/include/osmocom/msc
Neels Hofmeyr f31a1ccd9a add full SDP codec information to the MNCC socket
This way osmo-msc can benefit from the complete codec information received via
SIP, which was so far terminated at osmo-sip-connector. osmo-sip-connector
could/should have translated the received SDP to MNCC bearer_cap, but this was
never implemented properly. Since osmo-msc already handles SDP towards the MGW,
it makes most sense to pass SDP to osmo-msc transparently.

To be able to send a valid RTP IP:port in the SDP upon the first MNCC_SETUP_IND
going out, move the CN side CRCX to the very start of establishing a voice
call. As a result, first create MGW conns for both RAN and CN before starting.

The voice_call_full.msc chart shows the change in message sequence for MO and
MT voice calls.

Implement cc_sdp.c, which accumulates codec information from various sources
(MS, BSS, Assignment, remote call leg) and provides filtering to get the
available set of codecs at any point in time.

Implement codec_sdp_cc_t9n.c, to translate between SDP and the various
libosmo-mgcp-client, CC and BSSMAP representations of codecs:
- Speech Version,
- Permitted Speech,
- Speech Codec Type,
- default Payload Type numbers,
- enum mgcp_codecs,
- FR/HR compatibility
- SDP audio codec names,
- various AMR configurations.
A codec_map lists these relations in one large data record.
Various functions provide conversions by traversing this map.

Add trans->cc.mnccc_release_sent: so far, avoiding to send an MNCC release
during trans_free() was done by setting the callref = 0. But that also skips CC
Release. On codec mismatch, we send a specific MNCC error code but still want a
normal CC Release: hence send the MNCC message, set mnccc_release_sent = true
and do normal CC Release in trans_free().
(A better way to do this would be to adopt the mncc_call FSM from inter-MSC
handover also for local voice calls, but that is out of scope for now. I want
to try that soon, as time permits.)

Change-Id: I8c3b2de53ffae4ec3a66b9dabf308c290a2c999f
2020-01-06 18:00:40 +01:00
..
Makefile.am add full SDP codec information to the MNCC socket 2020-01-06 18:00:40 +01:00
call_leg.h add full SDP codec information to the MNCC socket 2020-01-06 18:00:40 +01:00
cc_sdp.h add full SDP codec information to the MNCC socket 2020-01-06 18:00:40 +01:00
cell_id_list.h large refactoring: support inter-BSC and inter-MSC Handover 2019-05-08 17:02:32 +02:00
codec_sdp_cc_t9n.h add full SDP codec information to the MNCC socket 2020-01-06 18:00:40 +01:00
db.h remove msc specific db counters 2019-05-15 18:27:12 +00:00
debug.h add DSS logging category 2019-05-12 10:32:42 +00:00
e_link.h large refactoring: support inter-BSC and inter-MSC Handover 2019-05-08 17:02:32 +02:00
gsm_04_08.h add full SDP codec information to the MNCC socket 2020-01-06 18:00:40 +01:00
gsm_04_11.h libmsc/gsm_04_11.c: properly handle MMTS indication 2019-05-19 07:34:35 +00:00
gsm_04_11_gsup.h large refactoring: support inter-BSC and inter-MSC Handover 2019-05-08 17:02:32 +02:00
gsm_04_14.h large refactoring: support inter-BSC and inter-MSC Handover 2019-05-08 17:02:32 +02:00
gsm_04_80.h large refactoring: support inter-BSC and inter-MSC Handover 2019-05-08 17:02:32 +02:00
gsm_09_11.h large refactoring: support inter-BSC and inter-MSC Handover 2019-05-08 17:02:32 +02:00
gsm_data.h counters: polish documentation of cm_service_request / paging_resp 2019-12-02 08:44:42 +00:00
gsm_data_shared.h large refactoring: support inter-BSC and inter-MSC Handover 2019-05-08 17:02:32 +02:00
gsm_subscriber.h large refactoring: support inter-BSC and inter-MSC Handover 2019-05-08 17:02:32 +02:00
gsup_client_mux.h large refactoring: support inter-BSC and inter-MSC Handover 2019-05-08 17:02:32 +02:00
mncc.h MNCC v6: add optional SDP to the socket protocol 2019-11-28 02:52:55 +01:00
mncc_call.h mncc: send payload type matching chosen codec 2019-08-28 21:22:45 +00:00
mncc_int.h rename include/openbsc to include/osmocom/msc 2017-09-06 16:41:25 +02:00
msc_a.h add full SDP codec information to the MNCC socket 2020-01-06 18:00:40 +01:00
msc_a_remote.h large refactoring: support inter-BSC and inter-MSC Handover 2019-05-08 17:02:32 +02:00
msc_common.h large refactoring: support inter-BSC and inter-MSC Handover 2019-05-08 17:02:32 +02:00
msc_ho.h add full SDP codec information to the MNCC socket 2020-01-06 18:00:40 +01:00
msc_i.h large refactoring: support inter-BSC and inter-MSC Handover 2019-05-08 17:02:32 +02:00
msc_i_remote.h large refactoring: support inter-BSC and inter-MSC Handover 2019-05-08 17:02:32 +02:00
msc_roles.h Fix some typos 2019-11-19 01:04:34 +00:00
msc_t.h large refactoring: support inter-BSC and inter-MSC Handover 2019-05-08 17:02:32 +02:00
msc_t_remote.h large refactoring: support inter-BSC and inter-MSC Handover 2019-05-08 17:02:32 +02:00
msub.h large refactoring: support inter-BSC and inter-MSC Handover 2019-05-08 17:02:32 +02:00
neighbor_ident.h large refactoring: support inter-BSC and inter-MSC Handover 2019-05-08 17:02:32 +02:00
osmux.h vty: Add option to enable osmux towards BSCs 2019-05-19 07:28:02 +00:00
paging.h large refactoring: support inter-BSC and inter-MSC Handover 2019-05-08 17:02:32 +02:00
ran_conn.h large refactoring: support inter-BSC and inter-MSC Handover 2019-05-08 17:02:32 +02:00
ran_infra.h large refactoring: support inter-BSC and inter-MSC Handover 2019-05-08 17:02:32 +02:00
ran_msg.h BSSMAP: decode Codec List (BSS Supported) 2019-11-05 01:33:30 +01:00
ran_msg_a.h large refactoring: support inter-BSC and inter-MSC Handover 2019-05-08 17:02:32 +02:00
ran_msg_iu.h large refactoring: support inter-BSC and inter-MSC Handover 2019-05-08 17:02:32 +02:00
ran_peer.h bssap: Detect BSC Osmux support on RESET (ACK) recv 2019-05-19 07:28:02 +00:00
rrlp.h RRLP: migrate and share mode definitions from msc_vty.c 2018-08-05 11:33:20 +00:00
rtp_stream.h add full SDP codec information to the MNCC socket 2020-01-06 18:00:40 +01:00
sccp_ran.h comment: apply function renames to message cycle explanation 2019-05-09 11:45:59 +00:00
sdp_msg.h add full SDP codec information to the MNCC socket 2020-01-06 18:00:40 +01:00
sgs_iface.h paging: Send SGsAP-SERVICE-ABORT-REQUEST on paging timeout 2019-09-26 19:23:54 +00:00
sgs_server.h Fix some typos 2019-11-19 01:04:34 +00:00
sgs_vty.h Add SGs Interface 2019-02-04 13:36:26 +01:00
signal.h fix spelling detected by lintian 2019-07-16 20:12:03 +00:00
silent_call.h large refactoring: support inter-BSC and inter-MSC Handover 2019-05-08 17:02:32 +02:00
smpp.h rename include/openbsc to include/osmocom/msc 2017-09-06 16:41:25 +02:00
sms_queue.h large refactoring: support inter-BSC and inter-MSC Handover 2019-05-08 17:02:32 +02:00
transaction.h add full SDP codec information to the MNCC socket 2020-01-06 18:00:40 +01:00
vlr.h Fix some typos 2019-11-19 01:04:34 +00:00
vlr_sgs.h sgs_iface: detect and react to VLR/HLR failure 2019-05-27 11:49:50 +00:00
vty.h Add SGs Interface 2019-02-04 13:36:26 +01:00