osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/34172 )
Change subject: msc_ho_send_handover_request: support CSD ......................................................................
msc_ho_send_handover_request: support CSD
Related: OS#4394 Change-Id: I5fea299bdc19d2979b5c222d8dd265dac2068307 --- M src/libmsc/msc_ho.c 1 file changed, 31 insertions(+), 4 deletions(-)
Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve fixeria: Looks good to me, approved
diff --git a/src/libmsc/msc_ho.c b/src/libmsc/msc_ho.c index 9e4417f..9748ed9 100644 --- a/src/libmsc/msc_ho.c +++ b/src/libmsc/msc_ho.c @@ -413,12 +413,29 @@ : "-");
if (cc_trans) { - if (sdp_audio_codecs_to_gsm0808_channel_type(&channel_type, - &cc_trans->cc.local.audio_codecs)) { - msc_ho_failed(msc_a, GSM0808_CAUSE_EQUIPMENT_FAILURE, - "Failed to determine Channel Type for Handover Request message\n"); + switch (cc_trans->bearer_cap.transfer) { + case GSM48_BCAP_ITCAP_SPEECH: + if (sdp_audio_codecs_to_gsm0808_channel_type(&channel_type, + &cc_trans->cc.local.audio_codecs)) { + msc_ho_failed(msc_a, GSM0808_CAUSE_EQUIPMENT_FAILURE, + "Failed to determine Channel Type for Handover Request message (speech)\n"); + return; + } + break; + case GSM48_BCAP_ITCAP_UNR_DIG_INF: + if (csd_bs_list_to_gsm0808_channel_type(&channel_type, &cc_trans->cc.local.bearer_services)) { + msc_ho_failed(msc_a, GSM0808_CAUSE_EQUIPMENT_FAILURE, + "Failed to determine Channel Type for Handover Request message (CSD)\n"); + return; + } + break; + default: + msc_ho_failed(msc_a, GSM0808_CAUSE_EQUIPMENT_FAILURE, "Failed to create" + " Handover Request message for information transfer capability %d\n", + cc_trans->bearer_cap.transfer); return; } + ran_enc_msg.handover_request.geran.channel_type = &channel_type; ran_enc_msg.handover_request.call_id_present = true; ran_enc_msg.handover_request.call_id = cc_trans->call_id;