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 {
|
type record SmsParametersRp {
|
||||||
OCT1 msg_ref,
|
OCT1 msg_ref,
|
||||||
RP_NumberingPlan_and_NumberDigits orig optional,
|
RP_NumberingPlan_and_NumberDigits smsc_addr optional
|
||||||
RP_NumberingPlan_and_NumberDigits dest optional
|
|
||||||
}
|
}
|
||||||
type record SmsParameters {
|
type record SmsParameters {
|
||||||
SmsParametersTp tp,
|
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) := {
|
template (value) SmsParameters t_SmsPars(hexstring tp_daddr := '12345'H) := {
|
||||||
tp := {
|
tp := {
|
||||||
msg_ref := '23'O,
|
msg_ref := '23'O,
|
||||||
|
@ -1650,8 +1659,9 @@ template (value) SmsParameters t_SmsPars(hexstring tp_daddr := '12345'H) := {
|
||||||
},
|
},
|
||||||
rp := {
|
rp := {
|
||||||
msg_ref := '42'O,
|
msg_ref := '42'O,
|
||||||
orig := omit,
|
/* We don't really need to have both SM-RP-DA/OA here, because only one IE
|
||||||
dest := { '0000'B, '000'B, '0'B, '98765'H }
|
* 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,
|
tid := 0,
|
||||||
dlci := '03'O,
|
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,
|
tp_mo := ts_SMS_SUBMIT(spars.tp.msg_ref, spars.tp.da, spars.tp.pid, spars.tp.dcs,
|
||||||
spars.tp.udl, spars.tp.ud);
|
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));
|
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));
|
BSSAP.send(ts_PDU_DTAP_MO(l3_mo, spars.dlci, true));
|
||||||
/* receive CP-ACK for CP-DATA above */
|
/* 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,
|
tp_mo := ts_SMS_SUBMIT(spars.tp.msg_ref, spars.tp.da, spars.tp.pid, spars.tp.dcs,
|
||||||
spars.tp.udl, spars.tp.ud);
|
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));
|
l3_mo := ts_ML3_MO_SMS(spars.tid, c_TIF_ORIG, ts_CP_DATA_MO(rp_mo));
|
||||||
|
|
||||||
SGsAP.send(l3_mo);
|
SGsAP.send(l3_mo);
|
||||||
|
|
Loading…
Reference in New Issue