neels has submitted this change. (
https://gerrit.osmocom.org/c/osmo-msc/+/31700 )
Change subject: [codecs filter] use codecs filter on crcx ok
......................................................................
[codecs filter] use codecs filter on crcx ok
Change-Id: I03753df567d1dc24852e6fbb681fbba81d2a545d
---
M src/libmsc/msc_a.c
M tests/msc_vlr/msc_vlr_test_call.err
2 files changed, 29 insertions(+), 4 deletions(-)
Approvals:
Jenkins Builder: Verified
laforge: Looks good to me, approved
diff --git a/src/libmsc/msc_a.c b/src/libmsc/msc_a.c
index 387532d..a7424e0 100644
--- a/src/libmsc/msc_a.c
+++ b/src/libmsc/msc_a.c
@@ -577,11 +577,22 @@
return;
}
- /* Once a CI is known, we could also CRCX the CN side of the MGW endpoint, but it makes
sense to wait for the
- * codec to be determined by the Assignment Complete message, first. */
+ codec_filter_run(&cc_trans->cc.codecs);
+ LOG_TRANS(cc_trans, LOGL_DEBUG, "Sending Assignment Command with codecs:
%s\n",
+ codec_filter_to_str(&cc_trans->cc.codecs));
- if (mncc_bearer_cap_to_channel_type(&channel_type, &cc_trans->bearer_cap)) {
- LOG_MSC_A(msc_a, LOGL_ERROR, "Cannot compose Channel Type from bearer
capabilities\n");
+ if (!cc_trans->cc.codecs.result.audio_codecs.count) {
+ LOG_TRANS(cc_trans, LOGL_ERROR, "Assignment not possible, no matching codec:
%s\n",
+ codec_filter_to_str(&cc_trans->cc.codecs));
+ call_leg_release(msc_a->cc.call_leg);
+ return;
+ }
+
+ /* Compose 48.008 Channel Type from the current set of codecs determined from both local
and remote codec
+ * capabilities. */
+ if (sdp_audio_codecs_to_gsm0808_channel_type(&channel_type,
&cc_trans->cc.codecs.result.audio_codecs)) {
+ LOG_MSC_A(msc_a, LOGL_ERROR, "Cannot compose Channel Type (Permitted Speech) from
codecs: %s\n",
+ codec_filter_to_str(&cc_trans->cc.codecs));
trans_free(cc_trans);
return;
}
diff --git a/tests/msc_vlr/msc_vlr_test_call.err b/tests/msc_vlr/msc_vlr_test_call.err
index a86a2b0..4cd2951 100644
--- a/tests/msc_vlr/msc_vlr_test_call.err
+++ b/tests/msc_vlr/msc_vlr_test_call.err
@@ -310,6 +310,7 @@
DCC
call_leg(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:CM_SERVICE_REQ){ESTABLISHING}:
Received Event CALL_LEG_EV_RTP_STREAM_ADDR_AVAILABLE
DMSC
msc_a(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:CM_SERVICE_REQ){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:CM_SERVICE_REQ){MSC_A_ST_COMMUNICATING}:
MGW endpoint's RTP address available for the CI RTP_TO_RAN: 10.23.23.1:23
(osmux=no:-2)
+DCC trans(CC:INITIATED
IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:CM_SERVICE_REQ
callref-0x80000001 tid-8) Sending Assignment Command with codecs:
:0{AMR:octet-align=1#112} (from:
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})
DMSC
msc_a(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:CM_SERVICE_REQ){MSC_A_ST_COMMUNICATING}:
RAN encode: ASSIGNMENT_COMMAND on UTRAN-Iu
DMSC
dummy_msc_i(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:CM_SERVICE_REQ){0}:
Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST
- Assignment succeeds, triggering CRCX to CN
@@ -804,6 +805,7 @@
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_RAN: 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) Sending Assignment Command with codecs: :0{AMR:octet-align=1#112} (from:
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})
DMSC
msc_a(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:PAGING_RESP){MSC_A_ST_COMMUNICATING}:
RAN encode: ASSIGNMENT_COMMAND on UTRAN-Iu
DMSC
dummy_msc_i(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:PAGING_RESP){0}:
Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST
- Assignment completes, triggering CRCX to CN
@@ -1292,6 +1294,7 @@
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_RAN: 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) Sending Assignment Command with codecs: :0{AMR:octet-align=1#112} (from:
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})
DMSC
msc_a(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:PAGING_RESP){MSC_A_ST_COMMUNICATING}:
RAN encode: ASSIGNMENT_COMMAND on UTRAN-Iu
DMSC
dummy_msc_i(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:PAGING_RESP){0}:
Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST
- Assignment completes, triggering CRCX to CN
@@ -1703,6 +1706,7 @@
DCC
call_leg(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:CM_SERVICE_REQ){ESTABLISHING}:
Received Event CALL_LEG_EV_RTP_STREAM_ADDR_AVAILABLE
DMSC
msc_a(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:CM_SERVICE_REQ){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:CM_SERVICE_REQ){MSC_A_ST_COMMUNICATING}:
MGW endpoint's RTP address available for the CI RTP_TO_RAN: 10.23.23.1:23
(osmux=no:-2)
+DCC trans(CC:INITIATED
IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:CM_SERVICE_REQ
callref-0x80000002 tid-8) Sending Assignment Command with codecs:
:0{AMR:octet-align=1#112} (from:
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})
DMSC
msc_a(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:CM_SERVICE_REQ){MSC_A_ST_COMMUNICATING}:
RAN encode: ASSIGNMENT_COMMAND on UTRAN-Iu
DMSC
dummy_msc_i(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:CM_SERVICE_REQ){0}:
Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST
- Assignment succeeds, triggering CRCX to CN
@@ -2130,6 +2134,7 @@
DCC
call_leg(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:CM_SERVICE_REQ){ESTABLISHING}:
Received Event CALL_LEG_EV_RTP_STREAM_ADDR_AVAILABLE
DMSC
msc_a(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:CM_SERVICE_REQ){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:CM_SERVICE_REQ){MSC_A_ST_COMMUNICATING}:
MGW endpoint's RTP address available for the CI RTP_TO_RAN: 10.23.23.1:23
(osmux=no:-2)
+DCC trans(CC:INITIATED
IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:CM_SERVICE_REQ
callref-0x80000003 tid-8) Sending Assignment Command with codecs:
:0{AMR:octet-align=1#112} (from:
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})
DMSC
msc_a(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:CM_SERVICE_REQ){MSC_A_ST_COMMUNICATING}:
RAN encode: ASSIGNMENT_COMMAND on UTRAN-Iu
DMSC
dummy_msc_i(IMSI-901700000010650:MSISDN-42342:TMSI-0x03020100:UTRAN-Iu:CM_SERVICE_REQ){0}:
Received Event MSC_I_EV_FROM_A_FORWARD_ACCESS_SIGNALLING_REQUEST
- Assignment succeeds, triggering CRCX to CN
--
To view, visit
https://gerrit.osmocom.org/c/osmo-msc/+/31700
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Change-Id: I03753df567d1dc24852e6fbb681fbba81d2a545d
Gerrit-Change-Number: 31700
Gerrit-PatchSet: 8
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