MSC/BSC_ConnectionHandler: only keep SMSC address in SmsParametersRp
When sending MO or MT SMS, we never include both SM-RP-DA/OA IEs
at the same time. In case of MO SMS, SM-RP-OA is omitted, and in
case of MT SMS - SM-RP-DA is omitted.
Change-Id: Ia60bdd2498034b6b849f874cf1eee272abef2b47
diff --git a/msc/BSC_ConnectionHandler.ttcn b/msc/BSC_ConnectionHandler.ttcn
index 1ce0b69..0f48ed6 100644
--- a/msc/BSC_ConnectionHandler.ttcn
+++ b/msc/BSC_ConnectionHandler.ttcn
@@ -1618,8 +1618,7 @@
}
type record SmsParametersRp {
OCT1 msg_ref,
- RP_NumberingPlan_and_NumberDigits orig optional,
- RP_NumberingPlan_and_NumberDigits dest optional
+ RP_NumberingPlan_and_NumberDigits smsc_addr optional
}
type record SmsParameters {
SmsParametersTp tp,
@@ -1639,6 +1638,16 @@
}
}
+template RP_NumberingPlan_and_NumberDigits t_RP_Addr(template hexstring addr,
+ template BIT4 npi := '0001'B,
+ template BIT3 ton := '001'B,
+ template BIT1 ext := '1'B) := {
+ rP_NumberingPlanIdentification := npi,
+ rP_TypeOfNumber := ton,
+ rP_Ext := ext,
+ rP_NumberDigits := addr
+}
+
template (value) SmsParameters t_SmsPars(hexstring tp_daddr := '12345'H) := {
tp := {
msg_ref := '23'O,
@@ -1650,8 +1659,9 @@
},
rp := {
msg_ref := '42'O,
- orig := omit,
- dest := { '0000'B, '000'B, '0'B, '98765'H }
+ /* We don't really need to have both SM-RP-DA/OA here, because only one IE
+ * is included in MO/MT SMS, and in the most cases it's the SMSC address. */
+ smsc_addr := t_RP_Addr('76722337'H)
},
tid := 0,
dlci := '03'O,
@@ -1700,7 +1710,7 @@
tp_mo := ts_SMS_SUBMIT(spars.tp.msg_ref, spars.tp.da, spars.tp.pid, spars.tp.dcs,
spars.tp.udl, spars.tp.ud);
- rp_mo := ts_RP_DATA_MO(spars.rp.msg_ref, spars.rp.orig, spars.rp.dest, tp_mo);
+ rp_mo := ts_RP_DATA_MO(spars.rp.msg_ref, omit, spars.rp.smsc_addr, tp_mo);
l3_mo := ts_ML3_MO_SMS(spars.tid, c_TIF_ORIG, ts_CP_DATA_MO(rp_mo));
BSSAP.send(ts_PDU_DTAP_MO(l3_mo, spars.dlci, true));
/* receive CP-ACK for CP-DATA above */
diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn
index 05d0ef6..439d7f1 100644
--- a/msc/MSC_Tests.ttcn
+++ b/msc/MSC_Tests.ttcn
@@ -4702,7 +4702,7 @@
tp_mo := ts_SMS_SUBMIT(spars.tp.msg_ref, spars.tp.da, spars.tp.pid, spars.tp.dcs,
spars.tp.udl, spars.tp.ud);
- rp_mo := ts_RP_DATA_MO(spars.rp.msg_ref, spars.rp.orig, spars.rp.dest, tp_mo);
+ rp_mo := ts_RP_DATA_MO(spars.rp.msg_ref, omit, spars.rp.smsc_addr, tp_mo);
l3_mo := ts_ML3_MO_SMS(spars.tid, c_TIF_ORIG, ts_CP_DATA_MO(rp_mo));
SGsAP.send(l3_mo);