neels has submitted this change. (
https://gerrit.osmocom.org/c/osmo-msc/+/32069 )
Change subject: 3G: decapsulate IuUP to AMR at the MGW; allow 3G<-AMR->2G
......................................................................
3G: decapsulate IuUP to AMR at the MGW; allow 3G<-AMR->2G
For all 3G calls, convert IuUP <-> plain AMR/RTP on the MSC's MGW hop
like this:
Before this patch:
hNodeB <--IuUP--> MGW@hnbgw <--IuUP--> MGW@msc <--IuUP--> other call
leg
After this patch:
hNodeB <--IuUP--> MGW@hnbgw <--IuUP--> MGW@msc <--AMR--> other call
leg
^
This allows, in principle, 2G to 3G calls without expensive transcoding,
like this:
hNodeB <--IuUP--> MGW@hnbgw <--IuUP--> MGW@msc <--AMR--> MGW@msc
<--AMR--> MGW@bsc <--AMR--> 2G-BTS
^
(So far only proven to work with AMR-FR at 12k2.)
3G to 3G calls now look like this:
hNodeB <--IuUP--> MGW@hnbgw <--IuUP--> MGW@MSC <--AMR--> MGW@MSC
<--IuUP--> MGW@hnbgw <--IuUP--> hNodeB
^
Implementatino: get rid of the shim that was put in place to still send
IuUP (VND.3GPP.IUFP) to the CN. So now, for all 3G voice, the IuUP gets
decapsulated to plain AMR/RTP at the MSC's MGW hop.
What is proven to work with this patch:
successful voice call between 2G and 3G with these conditions:
- a hNodeB that stubbornly accepts only 12k2 AMR;
- a 2G BTS configured to use only TCH/F and only FR3, with only 12k2 as
allowed AMR rate.
We have not yet seen a call working for TCH/H HR3 <-> 3G, because of the
lab hNodeB's limitation to 12k2.
Future work we probably need:
- properly request and negotiate AMR rates via SDP fmtp:mode-set.
- request more RFCIs in our RANAP RAB Assignment requests
(see I61e0e9e75e3239662846fd797532acdefa9f73dc).
- Convert IuUP to AMR already at the HNBGW's MGW?
Solving this is not part of this patch.
Related: SYS#5092
Change-Id: I386a6a426c318040b019ab5541689c67e94672a1
---
M src/libmsc/msc_a.c
M tests/msc_vlr/msc_vlr_test_call.err
2 files changed, 119 insertions(+), 58 deletions(-)
Approvals:
neels: Looks good to me, approved
Jenkins Builder: Verified
diff --git a/src/libmsc/msc_a.c b/src/libmsc/msc_a.c
index c022ee2..e8dc58b 100644
--- a/src/libmsc/msc_a.c
+++ b/src/libmsc/msc_a.c
@@ -1389,7 +1389,6 @@
struct rtp_stream *rtps_to_ran = msc_a->cc.call_leg ?
msc_a->cc.call_leg->rtp[RTP_TO_RAN] : NULL;
const struct gsm0808_speech_codec *codec_if_known =
ac->assignment_complete.codec_present ?
&ac->assignment_complete.codec : NULL;
- const struct codec_mapping *codec_cn;
if (!rtps_to_ran) {
LOG_MSC_A(msc_a, LOGL_ERROR, "Rx Assignment Complete, but no RTP stream is set
up\n");
@@ -1408,27 +1407,27 @@
}
if (codec_if_known) {
- if (ac->assignment_complete.codec_with_iuup) {
- /* FUTURE: soon, we want to tell the MGW to decapsulate IuUP to plain AMR-FR/RTP. So
far,
- * continue to forward IuUP to the CN.
- *
- * ran_msg_iu now returns AMR-FR as the assigned codec. If we use that directly, that
will
- * instruct the MGW to decapsulate IuUP into plain RTP. Let's keep this change to
an explicit
- * patch, while various codecs patches are still being applied.
- *
- * So instruct MGW to forward IuUP to CN:
- */
- codec_cn = codec_mapping_by_subtype_name("VND.3GPP.IUFP");
- OSMO_ASSERT(codec_cn);
- } else {
- codec_cn = codec_mapping_by_gsm0808_speech_codec_type(codec_if_known->type);
- /* TODO: use codec_mapping_by_gsm0808_speech_codec() to also match on
codec_if_known->cfg */
- if (!codec_cn) {
- LOG_TRANS(cc_trans, LOGL_ERROR, "Unknown codec in Assignment Complete:
%s\n",
- gsm0808_speech_codec_type_name(codec_if_known->type));
- call_leg_release(msc_a->cc.call_leg);
- return;
- }
+ const struct codec_mapping *codec_cn;
+ /* For 2G:
+ * - The Assignment Complete has returned a specific codec (e.g. FR3 for AMR FR).
+ * - Set this codec at the MGW endpoint facing the RAN.
+ * - Also set this codec at the MGW endpoint facing the CN -- we require an exact match
on both call
+ * legs.
+ * - TODO: be aware of transcoding that the MGW is capable of, e.g. AMR octet-aligned
to AMR
+ * bandwidth-efficient...
+ *
+ * For 3G:
+ * - ran_infra->force_mgw_codecs_to_ran sets VND.3GPP.IUFP as single codec at the
MGW towards RAN.
+ * - ran_msg_iu.c always returns FR3 (AMR FR) for the assigned codec. Set that at the
MGW towards CN.
+ * - So the MGW decapsulates IuUP <-> AMR
+ */
+ codec_cn = codec_mapping_by_gsm0808_speech_codec_type(codec_if_known->type);
+ /* TODO: use codec_mapping_by_gsm0808_speech_codec() to also match on
codec_if_known->cfg */
+ if (!codec_cn) {
+ LOG_TRANS(cc_trans, LOGL_ERROR, "Unknown codec in Assignment Complete:
%s\n",
+ gsm0808_speech_codec_type_name(codec_if_known->type));
+ call_leg_release(msc_a->cc.call_leg);
+ return;
}
/* Update RAN-side endpoint CI from Assignment result -- unless it is forced by the
ran_infra, in which
diff --git a/tests/msc_vlr/msc_vlr_test_call.err b/tests/msc_vlr/msc_vlr_test_call.err
index 0fb396d..2a14f51 100644
--- a/tests/msc_vlr/msc_vlr_test_call.err
+++ b/tests/msc_vlr/msc_vlr_test_call.err
@@ -337,17 +337,18 @@
DIUCS
msc_a(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:CM_SERVICE_REQ){MSC_A_ST_COMMUNICATING}:
RAN decode: ASSIGNMENT_COMPLETE
DCC
rtp_stream(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:CM_SERVICE_REQ:trans-8:call-2147483649:RTP_TO_RAN:no-CI){UNINITIALIZED}:
setting remote addr to 1.2.3.4:1234
DCC
rtp_stream(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:CM_SERVICE_REQ:trans-8:call-2147483649:RTP_TO_RAN:no-CI:local-10-23-23-1-23:remote-1-2-3-4-1234){UNINITIALIZED}:
Not committing: no MGW endpoint CI set up
-DCC trans(CC:INITIATED
IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:CM_SERVICE_REQ
callref-0x80000001 tid-8) Assignment Complete: RAN: VND.3GPP.IUFP/16000#96, CN:
VND.3GPP.IUFP/16000#96
-DCC trans(CC:INITIATED
IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:CM_SERVICE_REQ
callref-0x80000001 tid-8) codecs: 10.23.23.1:23{VND.3GPP.IUFP/16000#96} (from:
assigned=VND.3GPP.IUFP/16000#96 MS={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111}
RAN={AMR:octet-align=1#112,AMR-WB/16000:octet-align=1#113})
-DMNCC trans(CC:INITIATED
IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:CM_SERVICE_REQ
callref-0x80000001 tid-8) tx MNCC_RTP_CREATE (RTP=10.23.23.1:23{VND.3GPP.IUFP/16000#96})
+DCC trans(CC:INITIATED
IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:CM_SERVICE_REQ
callref-0x80000001 tid-8) Assignment Complete: RAN: VND.3GPP.IUFP/16000#96, CN:
AMR:octet-align=1#112
+DCC trans(CC:INITIATED
IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:CM_SERVICE_REQ
callref-0x80000001 tid-8) codecs: 10.23.23.1:23{AMR:octet-align=1#112} (from:
assigned=AMR:octet-align=1#112 MS={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111}
RAN={AMR:octet-align=1#112,AMR-WB/16000:octet-align=1#113})
+DMNCC trans(CC:INITIATED
IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:CM_SERVICE_REQ
callref-0x80000001 tid-8) tx MNCC_RTP_CREATE (RTP=10.23.23.1:23{AMR:octet-align=1#112})
MSC --> MNCC: callref 0x80000001: MNCC_RTP_CREATE
v=0
o=OsmoMSC 0 0 IN IP4 10.23.23.1
s=GSM Call
c=IN IP4 10.23.23.1
t=0 0
-m=audio 23 RTP/AVP 96
-a=rtpmap:96 VND.3GPP.IUFP/16000
+m=audio 23 RTP/AVP 112
+a=rtpmap:112 AMR/8000
+a=fmtp:112 octet-align=1
a=ptime:20
- MNCC says that's fine
@@ -836,7 +837,7 @@
DIUCS
msc_a(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:PAGING_RESP){MSC_A_ST_COMMUNICATING}:
RAN decode: ASSIGNMENT_COMPLETE
DCC
rtp_stream(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:PAGING_RESP:trans-0:call-1059:RTP_TO_RAN:no-CI){UNINITIALIZED}:
setting remote addr to 1.2.3.4:1234
DCC
rtp_stream(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:PAGING_RESP:trans-0:call-1059:RTP_TO_RAN:no-CI:local-10-23-23-1-23:remote-1-2-3-4-1234){UNINITIALIZED}:
Not committing: no MGW endpoint CI set up
-DCC trans(CC:MO_TERM_CALL_CONF
IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:PAGING_RESP callref-0x423
tid-0) Assignment Complete: RAN: VND.3GPP.IUFP/16000#96, CN: VND.3GPP.IUFP/16000#96
+DCC trans(CC:MO_TERM_CALL_CONF
IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:PAGING_RESP callref-0x423
tid-0) Assignment Complete: RAN: VND.3GPP.IUFP/16000#96, CN: AMR:octet-align=1#112
DCC trans(CC:MO_TERM_CALL_CONF
IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:PAGING_RESP callref-0x423
tid-0) Assignment complete, but still waiting for the CRCX OK on the CN side RTP
- MNCC sends MNCC_RTP_CREATE, which first waits for the CN side RTP
MSC <-- MNCC: callref 0x423: MNCC_RTP_CREATE
@@ -848,16 +849,17 @@
DCC
call_leg(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:PAGING_RESP){ESTABLISHING}:
Received Event CALL_LEG_EV_RTP_STREAM_ADDR_AVAILABLE
DMSC
msc_a(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:PAGING_RESP){MSC_A_ST_COMMUNICATING}:
Received Event MSC_EV_CALL_LEG_RTP_LOCAL_ADDR_AVAILABLE
DIUCS
msc_a(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:PAGING_RESP){MSC_A_ST_COMMUNICATING}:
MGW endpoint's RTP address available for the CI RTP_TO_CN: 10.23.23.1:23
(osmux=no:-2)
-DCC trans(CC:MO_TERM_CALL_CONF
IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:PAGING_RESP callref-0x423
tid-0) codecs: 10.23.23.1:23{VND.3GPP.IUFP/16000#96} (from:
assigned=VND.3GPP.IUFP/16000#96 remote=10.23.23.1:23{AMR:octet-align=1#112}
MS={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111}
RAN={AMR:octet-align=1#112,AMR-WB/16000:octet-align=1#113})
-DMNCC trans(CC:MO_TERM_CALL_CONF
IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:PAGING_RESP callref-0x423
tid-0) tx MNCC_RTP_CREATE (RTP=10.23.23.1:23{VND.3GPP.IUFP/16000#96})
+DCC trans(CC:MO_TERM_CALL_CONF
IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:PAGING_RESP callref-0x423
tid-0) codecs: 10.23.23.1:23{AMR:octet-align=1#112} (from: assigned=AMR:octet-align=1#112
remote=10.23.23.1:23{AMR:octet-align=1#112}
MS={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111}
RAN={AMR:octet-align=1#112,AMR-WB/16000:octet-align=1#113})
+DMNCC trans(CC:MO_TERM_CALL_CONF
IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:PAGING_RESP callref-0x423
tid-0) tx MNCC_RTP_CREATE (RTP=10.23.23.1:23{AMR:octet-align=1#112})
MSC --> MNCC: callref 0x423: MNCC_RTP_CREATE
v=0
o=OsmoMSC 0 0 IN IP4 10.23.23.1
s=GSM Call
c=IN IP4 10.23.23.1
t=0 0
-m=audio 23 RTP/AVP 96
-a=rtpmap:96 VND.3GPP.IUFP/16000
+m=audio 23 RTP/AVP 112
+a=rtpmap:112 AMR/8000
+a=fmtp:112 octet-align=1
a=ptime:20
- Total time passed: 1.000023 s
@@ -869,16 +871,17 @@
DCC trans(CC:MO_TERM_CALL_CONF
IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:PAGING_RESP callref-0x423
tid-0) stopping pending timer T310
DCC trans(CC:MO_TERM_CALL_CONF
IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:PAGING_RESP callref-0x423
tid-0) starting timer T301 with 180 seconds
DCC trans(CC:MO_TERM_CALL_CONF
IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:PAGING_RESP callref-0x423
tid-0) new state MO_TERM_CALL_CONF -> CALL_RECEIVED
-DCC trans(CC:CALL_RECEIVED
IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:PAGING_RESP callref-0x423
tid-0) codecs: 10.23.23.1:23{VND.3GPP.IUFP/16000#96} (from:
assigned=VND.3GPP.IUFP/16000#96 remote=10.23.23.1:23{AMR:octet-align=1#112}
MS={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111}
RAN={AMR:octet-align=1#112,AMR-WB/16000:octet-align=1#113})
-DMNCC trans(CC:CALL_RECEIVED
IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:PAGING_RESP callref-0x423
tid-0) tx MNCC_ALERT_IND (RTP=10.23.23.1:23{VND.3GPP.IUFP/16000#96})
+DCC trans(CC:CALL_RECEIVED
IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:PAGING_RESP callref-0x423
tid-0) codecs: 10.23.23.1:23{AMR:octet-align=1#112} (from: assigned=AMR:octet-align=1#112
remote=10.23.23.1:23{AMR:octet-align=1#112}
MS={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111}
RAN={AMR:octet-align=1#112,AMR-WB/16000:octet-align=1#113})
+DMNCC trans(CC:CALL_RECEIVED
IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:PAGING_RESP callref-0x423
tid-0) tx MNCC_ALERT_IND (RTP=10.23.23.1:23{AMR:octet-align=1#112})
MSC --> MNCC: callref 0x423: MNCC_ALERT_IND
v=0
o=OsmoMSC 0 0 IN IP4 10.23.23.1
s=GSM Call
c=IN IP4 10.23.23.1
t=0 0
-m=audio 23 RTP/AVP 96
-a=rtpmap:96 VND.3GPP.IUFP/16000
+m=audio 23 RTP/AVP 112
+a=rtpmap:112 AMR/8000
+a=fmtp:112 octet-align=1
a=ptime:20
DREF
msc_a(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:PAGING_RESP){MSC_A_ST_COMMUNICATING}:
- rx_from_ms: now used by 1 (cc)
@@ -890,15 +893,16 @@
DCC trans(CC:CALL_RECEIVED
IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:PAGING_RESP callref-0x423
tid-0) rx CONNECT in state CALL_RECEIVED
DCC trans(CC:CALL_RECEIVED
IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:PAGING_RESP callref-0x423
tid-0) stopping pending timer T301
DCC trans(CC:CALL_RECEIVED
IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:PAGING_RESP callref-0x423
tid-0) new state CALL_RECEIVED -> CONNECT_REQUEST
-DMNCC trans(CC:CONNECT_REQUEST
IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:PAGING_RESP callref-0x423
tid-0) tx MNCC_SETUP_CNF (RTP=10.23.23.1:23{VND.3GPP.IUFP/16000#96})
+DMNCC trans(CC:CONNECT_REQUEST
IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:PAGING_RESP callref-0x423
tid-0) tx MNCC_SETUP_CNF (RTP=10.23.23.1:23{AMR:octet-align=1#112})
MSC --> MNCC: callref 0x423: MNCC_SETUP_CNF
v=0
o=OsmoMSC 0 0 IN IP4 10.23.23.1
s=GSM Call
c=IN IP4 10.23.23.1
t=0 0
-m=audio 23 RTP/AVP 96
-a=rtpmap:96 VND.3GPP.IUFP/16000
+m=audio 23 RTP/AVP 112
+a=rtpmap:112 AMR/8000
+a=fmtp:112 octet-align=1
a=ptime:20
DREF
msc_a(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:PAGING_RESP){MSC_A_ST_COMMUNICATING}:
- rx_from_ms: now used by 1 (cc)
@@ -1362,23 +1366,24 @@
DIUCS
msc_a(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:PAGING_RESP){MSC_A_ST_COMMUNICATING}:
RAN decode: ASSIGNMENT_COMPLETE
DCC
rtp_stream(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:PAGING_RESP:trans-0:call-1059:RTP_TO_RAN:no-CI){UNINITIALIZED}:
setting remote addr to 1.2.3.4:1234
DCC
rtp_stream(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:PAGING_RESP:trans-0:call-1059:RTP_TO_RAN:no-CI:local-10-23-23-1-23:remote-1-2-3-4-1234){UNINITIALIZED}:
Not committing: no MGW endpoint CI set up
-DCC trans(CC:MO_TERM_CALL_CONF
IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:PAGING_RESP callref-0x423
tid-0) Assignment Complete: RAN: VND.3GPP.IUFP/16000#96, CN: VND.3GPP.IUFP/16000#96
+DCC trans(CC:MO_TERM_CALL_CONF
IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:PAGING_RESP callref-0x423
tid-0) Assignment Complete: RAN: VND.3GPP.IUFP/16000#96, CN: AMR:octet-align=1#112
DCC trans(CC:MO_TERM_CALL_CONF
IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:PAGING_RESP callref-0x423
tid-0) Assignment complete, but still waiting for the CRCX OK on the CN side RTP
- When the CN side RTP address is known, ack MNCC_RTP_CREATE with full SDP
MGW --CRCX OK to RTP_TO_CN--> MSC
DCC
call_leg(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:PAGING_RESP){ESTABLISHING}:
Received Event CALL_LEG_EV_RTP_STREAM_ADDR_AVAILABLE
DMSC
msc_a(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:PAGING_RESP){MSC_A_ST_COMMUNICATING}:
Received Event MSC_EV_CALL_LEG_RTP_LOCAL_ADDR_AVAILABLE
DIUCS
msc_a(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:PAGING_RESP){MSC_A_ST_COMMUNICATING}:
MGW endpoint's RTP address available for the CI RTP_TO_CN: 10.23.23.1:23
(osmux=no:-2)
-DCC trans(CC:MO_TERM_CALL_CONF
IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:PAGING_RESP callref-0x423
tid-0) codecs: 10.23.23.1:23{VND.3GPP.IUFP/16000#96} (from:
assigned=VND.3GPP.IUFP/16000#96 remote=10.23.23.1:23{AMR:octet-align=1#112}
MS={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111}
RAN={AMR:octet-align=1#112,AMR-WB/16000:octet-align=1#113})
-DMNCC trans(CC:MO_TERM_CALL_CONF
IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:PAGING_RESP callref-0x423
tid-0) tx MNCC_RTP_CREATE (RTP=10.23.23.1:23{VND.3GPP.IUFP/16000#96})
+DCC trans(CC:MO_TERM_CALL_CONF
IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:PAGING_RESP callref-0x423
tid-0) codecs: 10.23.23.1:23{AMR:octet-align=1#112} (from: assigned=AMR:octet-align=1#112
remote=10.23.23.1:23{AMR:octet-align=1#112}
MS={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111}
RAN={AMR:octet-align=1#112,AMR-WB/16000:octet-align=1#113})
+DMNCC trans(CC:MO_TERM_CALL_CONF
IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:PAGING_RESP callref-0x423
tid-0) tx MNCC_RTP_CREATE (RTP=10.23.23.1:23{AMR:octet-align=1#112})
MSC --> MNCC: callref 0x423: MNCC_RTP_CREATE
v=0
o=OsmoMSC 0 0 IN IP4 10.23.23.1
s=GSM Call
c=IN IP4 10.23.23.1
t=0 0
-m=audio 23 RTP/AVP 96
-a=rtpmap:96 VND.3GPP.IUFP/16000
+m=audio 23 RTP/AVP 112
+a=rtpmap:112 AMR/8000
+a=fmtp:112 octet-align=1
a=ptime:20
- Total time passed: 1.000023 s
@@ -1390,16 +1395,17 @@
DCC trans(CC:MO_TERM_CALL_CONF
IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:PAGING_RESP callref-0x423
tid-0) stopping pending timer T310
DCC trans(CC:MO_TERM_CALL_CONF
IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:PAGING_RESP callref-0x423
tid-0) starting timer T301 with 180 seconds
DCC trans(CC:MO_TERM_CALL_CONF
IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:PAGING_RESP callref-0x423
tid-0) new state MO_TERM_CALL_CONF -> CALL_RECEIVED
-DCC trans(CC:CALL_RECEIVED
IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:PAGING_RESP callref-0x423
tid-0) codecs: 10.23.23.1:23{VND.3GPP.IUFP/16000#96} (from:
assigned=VND.3GPP.IUFP/16000#96 remote=10.23.23.1:23{AMR:octet-align=1#112}
MS={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111}
RAN={AMR:octet-align=1#112,AMR-WB/16000:octet-align=1#113})
-DMNCC trans(CC:CALL_RECEIVED
IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:PAGING_RESP callref-0x423
tid-0) tx MNCC_ALERT_IND (RTP=10.23.23.1:23{VND.3GPP.IUFP/16000#96})
+DCC trans(CC:CALL_RECEIVED
IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:PAGING_RESP callref-0x423
tid-0) codecs: 10.23.23.1:23{AMR:octet-align=1#112} (from: assigned=AMR:octet-align=1#112
remote=10.23.23.1:23{AMR:octet-align=1#112}
MS={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111}
RAN={AMR:octet-align=1#112,AMR-WB/16000:octet-align=1#113})
+DMNCC trans(CC:CALL_RECEIVED
IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:PAGING_RESP callref-0x423
tid-0) tx MNCC_ALERT_IND (RTP=10.23.23.1:23{AMR:octet-align=1#112})
MSC --> MNCC: callref 0x423: MNCC_ALERT_IND
v=0
o=OsmoMSC 0 0 IN IP4 10.23.23.1
s=GSM Call
c=IN IP4 10.23.23.1
t=0 0
-m=audio 23 RTP/AVP 96
-a=rtpmap:96 VND.3GPP.IUFP/16000
+m=audio 23 RTP/AVP 112
+a=rtpmap:112 AMR/8000
+a=fmtp:112 octet-align=1
a=ptime:20
DREF
msc_a(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:PAGING_RESP){MSC_A_ST_COMMUNICATING}:
- rx_from_ms: now used by 1 (cc)
@@ -1811,17 +1817,18 @@
DIUCS
msc_a(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:CM_SERVICE_REQ){MSC_A_ST_COMMUNICATING}:
RAN decode: ASSIGNMENT_COMPLETE
DCC
rtp_stream(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:CM_SERVICE_REQ:trans-8:call-2147483650:RTP_TO_RAN:no-CI){UNINITIALIZED}:
setting remote addr to 1.2.3.4:1234
DCC
rtp_stream(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:CM_SERVICE_REQ:trans-8:call-2147483650:RTP_TO_RAN:no-CI:local-10-23-23-1-23:remote-1-2-3-4-1234){UNINITIALIZED}:
Not committing: no MGW endpoint CI set up
-DCC trans(CC:INITIATED
IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:CM_SERVICE_REQ
callref-0x80000002 tid-8) Assignment Complete: RAN: VND.3GPP.IUFP/16000#96, CN:
VND.3GPP.IUFP/16000#96
-DCC trans(CC:INITIATED
IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:CM_SERVICE_REQ
callref-0x80000002 tid-8) codecs: 10.23.23.1:23{VND.3GPP.IUFP/16000#96} (from:
assigned=VND.3GPP.IUFP/16000#96 MS={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111}
RAN={AMR:octet-align=1#112,AMR-WB/16000:octet-align=1#113})
-DMNCC trans(CC:INITIATED
IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:CM_SERVICE_REQ
callref-0x80000002 tid-8) tx MNCC_RTP_CREATE (RTP=10.23.23.1:23{VND.3GPP.IUFP/16000#96})
+DCC trans(CC:INITIATED
IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:CM_SERVICE_REQ
callref-0x80000002 tid-8) Assignment Complete: RAN: VND.3GPP.IUFP/16000#96, CN:
AMR:octet-align=1#112
+DCC trans(CC:INITIATED
IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:CM_SERVICE_REQ
callref-0x80000002 tid-8) codecs: 10.23.23.1:23{AMR:octet-align=1#112} (from:
assigned=AMR:octet-align=1#112 MS={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111}
RAN={AMR:octet-align=1#112,AMR-WB/16000:octet-align=1#113})
+DMNCC trans(CC:INITIATED
IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:CM_SERVICE_REQ
callref-0x80000002 tid-8) tx MNCC_RTP_CREATE (RTP=10.23.23.1:23{AMR:octet-align=1#112})
MSC --> MNCC: callref 0x80000002: MNCC_RTP_CREATE
v=0
o=OsmoMSC 0 0 IN IP4 10.23.23.1
s=GSM Call
c=IN IP4 10.23.23.1
t=0 0
-m=audio 23 RTP/AVP 96
-a=rtpmap:96 VND.3GPP.IUFP/16000
+m=audio 23 RTP/AVP 112
+a=rtpmap:112 AMR/8000
+a=fmtp:112 octet-align=1
a=ptime:20
- MNCC says that's fine
@@ -2261,17 +2268,18 @@
DIUCS
msc_a(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:CM_SERVICE_REQ){MSC_A_ST_COMMUNICATING}:
RAN decode: ASSIGNMENT_COMPLETE
DCC
rtp_stream(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:CM_SERVICE_REQ:trans-8:call-2147483651:RTP_TO_RAN:no-CI){UNINITIALIZED}:
setting remote addr to 1.2.3.4:1234
DCC
rtp_stream(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:CM_SERVICE_REQ:trans-8:call-2147483651:RTP_TO_RAN:no-CI:local-10-23-23-1-23:remote-1-2-3-4-1234){UNINITIALIZED}:
Not committing: no MGW endpoint CI set up
-DCC trans(CC:INITIATED
IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:CM_SERVICE_REQ
callref-0x80000003 tid-8) Assignment Complete: RAN: VND.3GPP.IUFP/16000#96, CN:
VND.3GPP.IUFP/16000#96
-DCC trans(CC:INITIATED
IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:CM_SERVICE_REQ
callref-0x80000003 tid-8) codecs: 10.23.23.1:23{VND.3GPP.IUFP/16000#96} (from:
assigned=VND.3GPP.IUFP/16000#96 MS={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111}
RAN={AMR:octet-align=1#112,AMR-WB/16000:octet-align=1#113})
-DMNCC trans(CC:INITIATED
IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:CM_SERVICE_REQ
callref-0x80000003 tid-8) tx MNCC_RTP_CREATE (RTP=10.23.23.1:23{VND.3GPP.IUFP/16000#96})
+DCC trans(CC:INITIATED
IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:CM_SERVICE_REQ
callref-0x80000003 tid-8) Assignment Complete: RAN: VND.3GPP.IUFP/16000#96, CN:
AMR:octet-align=1#112
+DCC trans(CC:INITIATED
IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:CM_SERVICE_REQ
callref-0x80000003 tid-8) codecs: 10.23.23.1:23{AMR:octet-align=1#112} (from:
assigned=AMR:octet-align=1#112 MS={AMR:octet-align=1#112,GSM-EFR#110,GSM#3,GSM-HR-08#111}
RAN={AMR:octet-align=1#112,AMR-WB/16000:octet-align=1#113})
+DMNCC trans(CC:INITIATED
IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:CM_SERVICE_REQ
callref-0x80000003 tid-8) tx MNCC_RTP_CREATE (RTP=10.23.23.1:23{AMR:octet-align=1#112})
MSC --> MNCC: callref 0x80000003: MNCC_RTP_CREATE
v=0
o=OsmoMSC 0 0 IN IP4 10.23.23.1
s=GSM Call
c=IN IP4 10.23.23.1
t=0 0
-m=audio 23 RTP/AVP 96
-a=rtpmap:96 VND.3GPP.IUFP/16000
+m=audio 23 RTP/AVP 112
+a=rtpmap:112 AMR/8000
+a=fmtp:112 octet-align=1
a=ptime:20
- MNCC says that's fine
--
To view, visit
https://gerrit.osmocom.org/c/osmo-msc/+/32069
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Change-Id: I386a6a426c318040b019ab5541689c67e94672a1
Gerrit-Change-Number: 32069
Gerrit-PatchSet: 4
Gerrit-Owner: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: merged