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
This commit is contained in:
parent
d3d54a91fa
commit
437b5a6c7d
|
@ -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 */
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue