neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-msc/+/35305?usp=email )
Change subject: cc: remove code dup for / fix reading codecs from MNCC ...................................................................... cc: remove code dup for / fix reading codecs from MNCC To parse and handle SDP included in incoming MNCC, use rx_mncc_sdp() everywhere. So now rx_mncc_sdp() is the single implementation for parsing the SDP string and taking action for codecs if needed. One current dup of this code has a fall-back to use legacy bearer cap -- absorb that into rx_mncc_sdp(), so that we now also do that fall-back for all of the incoming MNCC that contains bcap. This is a cosmetic preparation for implementing MO Re-Assignment to match MT's codec limitations. Change-Id: I94ae11654e1f88fbd64361b639a4c583836dc13e --- M src/libmsc/gsm_04_08_cc.c M tests/msc_vlr/msc_vlr_test_call.err 2 files changed, 77 insertions(+), 71 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/05/35305/1 diff --git a/src/libmsc/gsm_04_08_cc.c b/src/libmsc/gsm_04_08_cc.c index 31fcb23..fe34127 100644 --- a/src/libmsc/gsm_04_08_cc.c +++ b/src/libmsc/gsm_04_08_cc.c @@ -745,15 +745,36 @@ mncc_recvmsg(trans->net, trans, MNCC_SETUP_IND, &setup); } -static void rx_mncc_sdp(struct gsm_trans *trans, uint32_t mncc_msg_type, const char *sdp) +static void rx_mncc_sdp(struct gsm_trans *trans, uint32_t mncc_msg_type, const char *sdp, + const struct gsm_mncc_bearer_cap *bcap) { - int rc; - if (!sdp[0]) - return; - rc = sdp_msg_from_sdp_str(&trans->cc.remote, sdp); - if (rc) - LOG_TRANS_CAT(trans, DMNCC, LOGL_ERROR, "rx %s: Failed to parse SDP: %d\n", - get_mncc_name(mncc_msg_type), rc); + struct call_leg *cl = trans->msc_a ? trans->msc_a->cc.call_leg : NULL; + struct rtp_stream *rtp_cn = cl ? cl->rtp[RTP_TO_CN] : NULL; + + if (sdp[0]) { + int rc = sdp_msg_from_sdp_str(&trans->cc.remote, sdp); + if (rc) + LOG_TRANS_CAT(trans, DMNCC, LOGL_ERROR, "rx %s: Failed to parse SDP: %d. Trying anyway.\n", + get_mncc_name(mncc_msg_type), rc); + } + + /* if there is no SDP information or we failed to parse it, try using the Bearer Cap from MNCC, if any. */ + if (!trans->cc.remote.audio_codecs.count && bcap) { + trans->cc.remote = (struct sdp_msg){}; + trans_cc_set_remote_from_bc(trans, bcap); + LOG_TRANS_CAT(trans, DMNCC, LOGL_DEBUG, "rx %s Bearer Cap: remote=%s\n", + get_mncc_name(mncc_msg_type), sdp_msg_to_str(&trans->cc.remote)); + } + + if (!trans->cc.remote.audio_codecs.count) + LOG_TRANS(trans, LOGL_INFO, + "Got no information of remote audio codecs: neither SDP nor Bearer Capability. Trying anyway.\n"); + + trans_cc_filter_run(trans); + if (rtp_cn) { + rtp_stream_set_remote_addr_and_codecs(rtp_cn, &trans->cc.remote); + rtp_stream_commit(rtp_cn); + } } static int gsm48_cc_tx_setup(struct gsm_trans *trans, void *arg) @@ -811,19 +832,10 @@ switch (trans->bearer_cap.transfer) { case GSM48_BCAP_ITCAP_SPEECH: - /* sdp.remote: if SDP is included in the MNCC, take that as definitive list of remote audio codecs. */ - rx_mncc_sdp(trans, setup->msg_type, setup->sdp); - /* sdp.remote: if there is no SDP information or we failed to parse it, try using the Bearer Capability from - * MNCC, if any. */ - if (!trans->cc.remote.audio_codecs.count && (setup->fields & MNCC_F_BEARER_CAP)) { - trans->cc.remote = (struct sdp_msg){}; - trans_cc_set_remote_from_bc(trans, &setup->bearer_cap); - LOG_TRANS_CAT(trans, DMNCC, LOGL_DEBUG, "rx %s Bearer Cap: remote=%s\n", - get_mncc_name(setup->msg_type), sdp_msg_to_str(&trans->cc.remote)); - } - if (!trans->cc.remote.audio_codecs.count) - LOG_TRANS(trans, LOGL_INFO, - "Got no information of remote audio codecs: neither SDP nor Bearer Capability. Trying anyway.\n"); + /* if SDP is included in the MNCC, take that as definitive list of remote audio codecs. */ + rx_mncc_sdp(trans, setup->msg_type, setup->sdp, + (setup->fields & MNCC_F_BEARER_CAP) ? &setup->bearer_cap : NULL); + /* rx_mncc_sdp() has called trans_cc_filter_run(trans); */ break; case GSM48_BCAP_ITCAP_3k1_AUDIO: case GSM48_BCAP_ITCAP_FAX_G3: @@ -838,14 +850,14 @@ "Got no information of remote Bearer Capability. Trying anyway.\n"); sdp_audio_codecs_set_csd(&trans->cc.codecs.ms); } + trans_cc_filter_run(trans); break; default: LOG_TRANS(trans, LOGL_ERROR, "Handling of information transfer capability %d not implemented\n", trans->bearer_cap.transfer); + break; } - trans_cc_filter_run(trans); - /* Compose Bearer Capability information that reflects only the codecs (Speech Versions) / CSD bearer services * remaining after intersecting MS, BSS and remote call leg restrictions. To store in trans for later use, and * to include in the outgoing CC Setup message. */ @@ -1147,23 +1159,13 @@ new_cc_state(trans, GSM_CSTATE_CALL_DELIVERED); - if (alerting->sdp[0]) { - struct call_leg *cl = trans->msc_a->cc.call_leg; - struct rtp_stream *rtp_cn = cl ? cl->rtp[RTP_TO_CN] : NULL; + if (alerting->sdp[0]) + rx_mncc_sdp(trans, alerting->msg_type, alerting->sdp, + (alerting->fields & MNCC_F_BEARER_CAP) ? &alerting->bearer_cap : NULL); - rc = sdp_msg_from_sdp_str(&trans->cc.remote, alerting->sdp); - if (rc < 0) - return rc; - - trans_cc_filter_run(trans); - LOG_TRANS(trans, LOGL_DEBUG, "msg_type=%s\n", get_mncc_name(alerting->msg_type)); - if (rtp_cn) { - rtp_stream_set_remote_addr_and_codecs(rtp_cn, &trans->cc.remote); - rtp_stream_commit(rtp_cn); - } - } - - return trans_tx_gsm48(trans, msg); + /* handle the MNCC event */ + rc = trans_tx_gsm48(trans, msg); + return rc; } static int gsm48_cc_tx_progress(struct gsm_trans *trans, void *arg) @@ -1209,18 +1211,9 @@ new_cc_state(trans, GSM_CSTATE_CONNECT_IND); - /* Received an MNCC_SETUP_RSP with the remote leg's SDP information. Apply codec choice. */ - if (connect->sdp[0]) { - struct call_leg *cl = trans->msc_a->cc.call_leg; - struct rtp_stream *rtp_cn = cl ? cl->rtp[RTP_TO_CN] : NULL; - rx_mncc_sdp(trans, connect->msg_type, connect->sdp); - trans_cc_filter_run(trans); - LOG_TRANS(trans, LOGL_DEBUG, "msg_type=%s\n", get_mncc_name(connect->msg_type)); - if (rtp_cn) { - rtp_stream_set_remote_addr_and_codecs(rtp_cn, &trans->cc.remote); - rtp_stream_commit(rtp_cn); - } - } + if (connect->sdp[0]) + rx_mncc_sdp(trans, connect->msg_type, connect->sdp, + (connect->fields & MNCC_F_BEARER_CAP) ? &connect->bearer_cap : NULL); return trans_tx_gsm48(trans, msg); } @@ -2147,19 +2140,11 @@ log_mncc_rx_tx(trans, "rx", (const union mncc_msg *)rtp); + rx_mncc_sdp(trans, rtp->msg_type, rtp->sdp, NULL); + cl = trans->msc_a->cc.call_leg; rtps = cl ? cl->rtp[RTP_TO_CN] : NULL; - - if (!rtps) { - LOG_TRANS_CAT(trans, DMNCC, LOGL_ERROR, "RTP connect for trans without ongoing call\n"); - mncc_recv_rtp_err(net, trans, rtp->callref, MNCC_RTP_CONNECT); - return -EINVAL; - } - - rx_mncc_sdp(trans, rtp->msg_type, rtp->sdp); - rtp_stream_set_remote_addr_and_codecs(rtps, &trans->cc.remote); - - if (!osmo_sockaddr_str_is_nonzero(&rtps->remote)) { + if (rtps && !osmo_sockaddr_str_is_nonzero(&rtps->remote)) { /* Didn't get an IP address from SDP. Try legacy MNCC IP address */ struct osmo_sockaddr_str rtp_addr; if (osmo_sockaddr_str_from_sockaddr(&rtp_addr, &rtp->addr) < 0) { @@ -2168,9 +2153,8 @@ return -EINVAL; } rtp_stream_set_remote_addr(rtps, &rtp_addr); + rtp_stream_commit(rtps); } - - rtp_stream_commit(rtps); return 0; } @@ -2352,7 +2336,8 @@ } /* Remember remote SDP, if any */ - rx_mncc_sdp(trans, data->msg_type, data->sdp); + rx_mncc_sdp(trans, data->msg_type, data->sdp, + (data->fields & MNCC_F_BEARER_CAP) ? &data->bearer_cap : NULL); /* If subscriber has no conn */ if (!msc_a) { diff --git a/tests/msc_vlr/msc_vlr_test_call.err b/tests/msc_vlr/msc_vlr_test_call.err index a1da0f7..4af1bce 100644 --- a/tests/msc_vlr/msc_vlr_test_call.err +++ b/tests/msc_vlr/msc_vlr_test_call.err @@ -707,6 +707,7 @@ DREF VLR subscr IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 + mncc_tx_to_gsm_cc: now used by 2 (attached,mncc_tx_to_gsm_cc) DREF VLR subscr IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 + CC: now used by 3 (attached,mncc_tx_to_gsm_cc,CC) DCC trans(CC:NULL IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 callref-0x423 tid-255) New transaction +DCC trans(CC:NULL IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 callref-0x423 tid-255) codecs: :0{(no-codecs)} (from: remote=10.23.23.1:23{AMR:octet-align=1#112} RAN={(no-codecs)}) DMNCC trans(CC:NULL IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 callref-0x423 tid-255) rx MNCC_SETUP_REQ (RTP=10.23.23.1:23{AMR:octet-align=1#112}) DPAG Paging: IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 for MNCC: establish call: Starting paging paging request (CALL_CONVERSATIONAL) to IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 on UTRAN-Iu @@ -1226,6 +1227,7 @@ DREF VLR subscr IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 + mncc_tx_to_gsm_cc: now used by 2 (attached,mncc_tx_to_gsm_cc) DREF VLR subscr IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 + CC: now used by 3 (attached,mncc_tx_to_gsm_cc,CC) DCC trans(CC:NULL IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 callref-0x423 tid-255) New transaction +DCC trans(CC:NULL IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 callref-0x423 tid-255) codecs: :0{(no-codecs)} (from: remote=10.23.23.1:23{AMR:octet-align=1#112} RAN={(no-codecs)}) DMNCC trans(CC:NULL IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 callref-0x423 tid-255) rx MNCC_SETUP_REQ (RTP=10.23.23.1:23{AMR:octet-align=1#112}) DPAG Paging: IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 for MNCC: establish call: Starting paging paging request (CALL_CONVERSATIONAL) to IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100 on UTRAN-Iu @@ -2681,7 +2683,6 @@ DCC trans(CC:MO_CALL_PROC IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ callref-0x80000004 tid-8) starting guard timer with 180 seconds DCC trans(CC:MO_CALL_PROC IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ callref-0x80000004 tid-8) new state MO_CALL_PROC -> CALL_DELIVERED DCC trans(CC:CALL_DELIVERED IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ callref-0x80000004 tid-8) codecs: 10.23.23.1:23{AMR:octet-align=1#112} (from: assigned=AMR:octet-align=1#112 remote=1.2.3.4:56{AMR:octet-align=1#112} MS={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111} bss={GSM#3,GSM-EFR#110,AMR:octet-align=1#112,GSM-HR-08#111} RAN={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111}) -DCC trans(CC:CALL_DELIVERED IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ callref-0x80000004 tid-8) msg_type=MNCC_ALERT_REQ DCC rtp_stream(IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ:trans-8:call-6:RTP_TO_CN:no-CI){UNINITIALIZED}: setting codecs to AMR:octet-align=1#112 DCC rtp_stream(IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ:trans-8:call-6:RTP_TO_CN:no-CI:local-10-23-23-1-23){UNINITIALIZED}: setting remote addr to 1.2.3.4:56 DCC rtp_stream(IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ:trans-8:call-6:RTP_TO_CN:no-CI:local-10-23-23-1-23:remote-1-2-3-4-56){UNINITIALIZED}: Not committing: no MGW endpoint CI set up @@ -2707,7 +2708,6 @@ DCC trans(CC:CALL_DELIVERED IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ callref-0x80000004 tid-8) starting timer T313 with 30 seconds DCC trans(CC:CALL_DELIVERED IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ callref-0x80000004 tid-8) new state CALL_DELIVERED -> CONNECT_IND DCC trans(CC:CONNECT_IND IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ callref-0x80000004 tid-8) codecs: 10.23.23.1:23{AMR:octet-align=1#112} (from: assigned=AMR:octet-align=1#112 remote=1.2.3.4:56{AMR:octet-align=1#112} MS={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111} bss={GSM#3,GSM-EFR#110,AMR:octet-align=1#112,GSM-HR-08#111} RAN={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111}) -DCC trans(CC:CONNECT_IND IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ callref-0x80000004 tid-8) msg_type=MNCC_SETUP_RSP DCC rtp_stream(IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ:trans-8:call-6:RTP_TO_CN:no-CI:local-10-23-23-1-23:remote-1-2-3-4-56){UNINITIALIZED}: no change: codecs already set to AMR:octet-align=1#112 DCC rtp_stream(IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ:trans-8:call-6:RTP_TO_CN:no-CI:local-10-23-23-1-23:remote-1-2-3-4-56){UNINITIALIZED}: remote addr already 1.2.3.4:56, no change DCC rtp_stream(IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ:trans-8:call-6:RTP_TO_CN:no-CI:local-10-23-23-1-23:remote-1-2-3-4-56){UNINITIALIZED}: Not committing: no MGW endpoint CI set up @@ -2851,6 +2851,7 @@ DREF VLR subscr IMSI-901700000010650:MSISDN-46071 + mncc_tx_to_gsm_cc: now used by 2 (attached,mncc_tx_to_gsm_cc) DREF VLR subscr IMSI-901700000010650:MSISDN-46071 + CC: now used by 3 (attached,mncc_tx_to_gsm_cc,CC) DCC trans(CC:NULL IMSI-901700000010650:MSISDN-46071 callref-0x423 tid-255) New transaction +DCC trans(CC:NULL IMSI-901700000010650:MSISDN-46071 callref-0x423 tid-255) codecs: :0{(no-codecs)} (from: remote=1.2.3.4:56{AMR:octet-align=1#112} RAN={(no-codecs)}) DMNCC trans(CC:NULL IMSI-901700000010650:MSISDN-46071 callref-0x423 tid-255) rx MNCC_SETUP_REQ (RTP=1.2.3.4:56{AMR:octet-align=1#112}) DPAG Paging: IMSI-901700000010650:MSISDN-46071 for MNCC: establish call: Starting paging paging request (CALL_CONVERSATIONAL) to IMSI-901700000010650:MSISDN-46071 on GERAN-A @@ -3291,7 +3292,6 @@ DCC trans(CC:MO_CALL_PROC IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ callref-0x80000005 tid-8) starting guard timer with 180 seconds DCC trans(CC:MO_CALL_PROC IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ callref-0x80000005 tid-8) new state MO_CALL_PROC -> CALL_DELIVERED DCC trans(CC:CALL_DELIVERED IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ callref-0x80000005 tid-8) codecs: 10.23.23.1:23{GSM#3} (from: assigned=GSM#3 remote=1.2.3.4:56{GSM#3} MS={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111} bss={GSM#3} RAN={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111}) -DCC trans(CC:CALL_DELIVERED IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ callref-0x80000005 tid-8) msg_type=MNCC_ALERT_REQ DCC rtp_stream(IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ:trans-8:call-8:RTP_TO_CN:no-CI){UNINITIALIZED}: no change: codecs already set to GSM#3 DCC rtp_stream(IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ:trans-8:call-8:RTP_TO_CN:no-CI){UNINITIALIZED}: setting remote addr to 1.2.3.4:56 DCC rtp_stream(IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ:trans-8:call-8:RTP_TO_CN:no-CI:local-10-23-23-1-23:remote-1-2-3-4-56){UNINITIALIZED}: Not committing: no MGW endpoint CI set up @@ -3316,7 +3316,6 @@ DCC trans(CC:CALL_DELIVERED IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ callref-0x80000005 tid-8) starting timer T313 with 30 seconds DCC trans(CC:CALL_DELIVERED IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ callref-0x80000005 tid-8) new state CALL_DELIVERED -> CONNECT_IND DCC trans(CC:CONNECT_IND IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ callref-0x80000005 tid-8) codecs: 10.23.23.1:23{GSM#3} (from: assigned=GSM#3 remote=1.2.3.4:56{GSM#3} MS={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111} bss={GSM#3} RAN={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111}) -DCC trans(CC:CONNECT_IND IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ callref-0x80000005 tid-8) msg_type=MNCC_SETUP_RSP DCC rtp_stream(IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ:trans-8:call-8:RTP_TO_CN:no-CI:local-10-23-23-1-23:remote-1-2-3-4-56){UNINITIALIZED}: no change: codecs already set to GSM#3 DCC rtp_stream(IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ:trans-8:call-8:RTP_TO_CN:no-CI:local-10-23-23-1-23:remote-1-2-3-4-56){UNINITIALIZED}: remote addr already 1.2.3.4:56, no change DCC rtp_stream(IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ:trans-8:call-8:RTP_TO_CN:no-CI:local-10-23-23-1-23:remote-1-2-3-4-56){UNINITIALIZED}: Not committing: no MGW endpoint CI set up @@ -3458,6 +3457,7 @@ DREF VLR subscr IMSI-901700000010650:MSISDN-46071 + mncc_tx_to_gsm_cc: now used by 2 (attached,mncc_tx_to_gsm_cc) DREF VLR subscr IMSI-901700000010650:MSISDN-46071 + CC: now used by 3 (attached,mncc_tx_to_gsm_cc,CC) DCC trans(CC:NULL IMSI-901700000010650:MSISDN-46071 callref-0x423 tid-255) New transaction +DCC trans(CC:NULL IMSI-901700000010650:MSISDN-46071 callref-0x423 tid-255) codecs: :0{(no-codecs)} (from: remote=1.2.3.4:56{GSM#3} RAN={(no-codecs)}) DMNCC trans(CC:NULL IMSI-901700000010650:MSISDN-46071 callref-0x423 tid-255) rx MNCC_SETUP_REQ (RTP=1.2.3.4:56{GSM#3}) DPAG Paging: IMSI-901700000010650:MSISDN-46071 for MNCC: establish call: Starting paging paging request (CALL_CONVERSATIONAL) to IMSI-901700000010650:MSISDN-46071 on GERAN-A @@ -3895,7 +3895,6 @@ DCC trans(CC:MO_CALL_PROC IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ callref-0x80000006 tid-8) starting guard timer with 180 seconds DCC trans(CC:MO_CALL_PROC IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ callref-0x80000006 tid-8) new state MO_CALL_PROC -> CALL_DELIVERED DCC trans(CC:CALL_DELIVERED IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ callref-0x80000006 tid-8) codecs: 10.23.23.1:23{GSM#3} (from: assigned=GSM#3 remote=1.2.3.4:56{GSM#3} MS={GSM#3} bss={GSM#3,GSM-EFR#110,AMR:octet-align=1#112,GSM-HR-08#111} RAN={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111}) -DCC trans(CC:CALL_DELIVERED IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ callref-0x80000006 tid-8) msg_type=MNCC_ALERT_REQ DCC rtp_stream(IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ:trans-8:call-10:RTP_TO_CN:no-CI){UNINITIALIZED}: no change: codecs already set to GSM#3 DCC rtp_stream(IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ:trans-8:call-10:RTP_TO_CN:no-CI){UNINITIALIZED}: setting remote addr to 1.2.3.4:56 DCC rtp_stream(IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ:trans-8:call-10:RTP_TO_CN:no-CI:local-10-23-23-1-23:remote-1-2-3-4-56){UNINITIALIZED}: Not committing: no MGW endpoint CI set up @@ -3920,7 +3919,6 @@ DCC trans(CC:CALL_DELIVERED IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ callref-0x80000006 tid-8) starting timer T313 with 30 seconds DCC trans(CC:CALL_DELIVERED IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ callref-0x80000006 tid-8) new state CALL_DELIVERED -> CONNECT_IND DCC trans(CC:CONNECT_IND IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ callref-0x80000006 tid-8) codecs: 10.23.23.1:23{GSM#3} (from: assigned=GSM#3 remote=1.2.3.4:56{GSM#3} MS={GSM#3} bss={GSM#3,GSM-EFR#110,AMR:octet-align=1#112,GSM-HR-08#111} RAN={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111}) -DCC trans(CC:CONNECT_IND IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ callref-0x80000006 tid-8) msg_type=MNCC_SETUP_RSP DCC rtp_stream(IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ:trans-8:call-10:RTP_TO_CN:no-CI:local-10-23-23-1-23:remote-1-2-3-4-56){UNINITIALIZED}: no change: codecs already set to GSM#3 DCC rtp_stream(IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ:trans-8:call-10:RTP_TO_CN:no-CI:local-10-23-23-1-23:remote-1-2-3-4-56){UNINITIALIZED}: remote addr already 1.2.3.4:56, no change DCC rtp_stream(IMSI-901700000010650:MSISDN-46071:GERAN-A:CM_SERVICE_REQ:trans-8:call-10:RTP_TO_CN:no-CI:local-10-23-23-1-23:remote-1-2-3-4-56){UNINITIALIZED}: Not committing: no MGW endpoint CI set up @@ -4062,6 +4060,7 @@ DREF VLR subscr IMSI-901700000010650:MSISDN-46071 + mncc_tx_to_gsm_cc: now used by 2 (attached,mncc_tx_to_gsm_cc) DREF VLR subscr IMSI-901700000010650:MSISDN-46071 + CC: now used by 3 (attached,mncc_tx_to_gsm_cc,CC) DCC trans(CC:NULL IMSI-901700000010650:MSISDN-46071 callref-0x423 tid-255) New transaction +DCC trans(CC:NULL IMSI-901700000010650:MSISDN-46071 callref-0x423 tid-255) codecs: :0{(no-codecs)} (from: remote=1.2.3.4:56{GSM#3} RAN={(no-codecs)}) DMNCC trans(CC:NULL IMSI-901700000010650:MSISDN-46071 callref-0x423 tid-255) rx MNCC_SETUP_REQ (RTP=1.2.3.4:56{GSM#3}) DPAG Paging: IMSI-901700000010650:MSISDN-46071 for MNCC: establish call: Starting paging paging request (CALL_CONVERSATIONAL) to IMSI-901700000010650:MSISDN-46071 on GERAN-A @@ -4638,6 +4637,7 @@ DREF VLR subscr IMSI-901700000010650:MSISDN-46071 + mncc_tx_to_gsm_cc: now used by 2 (attached,mncc_tx_to_gsm_cc) DREF VLR subscr IMSI-901700000010650:MSISDN-46071 + CC: now used by 3 (attached,mncc_tx_to_gsm_cc,CC) DCC trans(CC:NULL IMSI-901700000010650:MSISDN-46071 callref-0x423 tid-255) New transaction +DCC trans(CC:NULL IMSI-901700000010650:MSISDN-46071 callref-0x423 tid-255) codecs: :0{(no-codecs)} (from: remote=1.2.3.4:56{AMR:octet-align=1#112} RAN={(no-codecs)}) DMNCC trans(CC:NULL IMSI-901700000010650:MSISDN-46071 callref-0x423 tid-255) rx MNCC_SETUP_REQ (RTP=1.2.3.4:56{AMR:octet-align=1#112}) DPAG Paging: IMSI-901700000010650:MSISDN-46071 for MNCC: establish call: Starting paging paging request (CALL_CONVERSATIONAL) to IMSI-901700000010650:MSISDN-46071 on GERAN-A @@ -5039,6 +5039,7 @@ DREF VLR subscr IMSI-901700000010650:MSISDN-46071 + mncc_tx_to_gsm_cc: now used by 2 (attached,mncc_tx_to_gsm_cc) DREF VLR subscr IMSI-901700000010650:MSISDN-46071 + CC: now used by 3 (attached,mncc_tx_to_gsm_cc,CC) DCC trans(CC:NULL IMSI-901700000010650:MSISDN-46071 callref-0x423 tid-255) New transaction +DCC trans(CC:NULL IMSI-901700000010650:MSISDN-46071 callref-0x423 tid-255) codecs: :0{(no-codecs)} (from: remote=1.2.3.4:56{AMR:octet-align=1#112} RAN={(no-codecs)}) DMNCC trans(CC:NULL IMSI-901700000010650:MSISDN-46071 callref-0x423 tid-255) rx MNCC_SETUP_REQ (RTP=1.2.3.4:56{AMR:octet-align=1#112}) DPAG Paging: IMSI-901700000010650:MSISDN-46071 for MNCC: establish call: Starting paging paging request (CALL_CONVERSATIONAL) to IMSI-901700000010650:MSISDN-46071 on GERAN-A -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/35305?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I94ae11654e1f88fbd64361b639a4c583836dc13e Gerrit-Change-Number: 35305 Gerrit-PatchSet: 1 Gerrit-Owner: neels <nhofm...@sysmocom.de> Gerrit-MessageType: newchange