diff options
author | Harald Welte <laforge@osmocom.org> | 2021-05-09 19:31:15 +0000 |
---|---|---|
committer | Harald Welte <laforge@osmocom.org> | 2021-05-09 19:31:15 +0000 |
commit | 5489ccc37d55f25c750e287b5639215771bb492d (patch) | |
tree | 8593726dba6a455115800af2439c7042d61c702b | |
parent | bbe87f584ce710ccfcff01ad5ccdfe4321e86753 (diff) |
HACK: Add hard-coded DPC to SSA in response to SSTlaforge/hack
At least some version of an Ericsson MSC is sending us a SST with
point codes only in the M3UA header, but not in the SCCP Called/Calling
address (which only contain SSN). So if we create a SSA in respone, it
will only have SSN in it, and hence it cannot be routed.
We hard-code the destination point code (7000) here just for testing.
A proper solution would have to either
a) set up some SCCP routing that routes the SSN to a given point code
b) add the M3UA point codes from the MTP/M3UA layer to the SCCP
Calling/CalledParty when receiving the message at the M3UA->SCCP boundary
-rw-r--r-- | src/sccp_scmg.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/sccp_scmg.c b/src/sccp_scmg.c index a5d6226..9f16a72 100644 --- a/src/sccp_scmg.c +++ b/src/sccp_scmg.c @@ -243,7 +243,11 @@ static int scmg_rx_sst(struct osmo_sccp_user *scu, const struct osmo_sccp_addr * if (0 /* !subsys_available(scu) */) return 0; - return sccp_scmg_tx(scu, called_addr, calling_addr, SCCP_SCMG_MSGT_SSA, + struct osmo_sccp_addr peer_addr = *calling_addr; + peer_addr.pc = 7000; + peer_addr.presence |= OSMO_SCCP_ADDR_T_PC; + + return sccp_scmg_tx(scu, called_addr, &peer_addr, SCCP_SCMG_MSGT_SSA, sst->affected_ssn, sst->affected_pc, 0, NULL); } |