aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVadim Yanitskiy <axilirator@gmail.com>2019-12-15 14:13:39 +0900
committerfixeria <axilirator@gmail.com>2020-01-03 12:27:17 +0000
commit437b5a6c7d490f9a124ffafc457097fe19122000 (patch)
treed26d826c3e436b1c57ae25b069b153af388140ef
parentd3d54a91fab60b2299087a092a3935ed7de73616 (diff)
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
-rw-r--r--msc/BSC_ConnectionHandler.ttcn20
-rw-r--r--msc/MSC_Tests.ttcn2
2 files changed, 16 insertions, 6 deletions
diff --git a/msc/BSC_ConnectionHandler.ttcn b/msc/BSC_ConnectionHandler.ttcn
index 1ce0b697..0f48ed64 100644
--- a/msc/BSC_ConnectionHandler.ttcn
+++ b/msc/BSC_ConnectionHandler.ttcn
@@ -1618,8 +1618,7 @@ type record SmsParametersTp {
}
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 (value) TP_DA ts_TP_DA(BIT4 npl, BIT3 ton, hexstring addr) := {
}
}
+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 @@ template (value) SmsParameters t_SmsPars(hexstring tp_daddr := '12345'H) := {
},
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 @@ runs on BSC_ConnHdlr {
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 05d0ef6e..439d7f14 100644
--- a/msc/MSC_Tests.ttcn
+++ b/msc/MSC_Tests.ttcn
@@ -4702,7 +4702,7 @@ runs on BSC_ConnHdlr {
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);