SMSC检索原始地址(发件人的号码)

时间:2019-05-23 13:36:31

标签: sms gsm telecommunication

我正在尝试在两个GSM设备之间实现SMS传输。我已经搜索和阅读了很多标准和文章,但是找不到以下问题的答案。有谁知道SMSC如何知道发件人的号码并将其插入SMS-Deliver数据包堆栈的TP-OA字段中?

1 个答案:

答案 0 :(得分:0)

实际上,我不确定这是否是您所需要的,还是无论如何都会帮助您。

GSM 网络中,有许多节点,每个节点都负责某些事情。它们使用消息相互通信,其中包含处理所需操作所需的某些信息:建立呼叫,发送SMS,执行更新位置等。

因此,有关发件人号码的信息从另一个名为 VLR / MSC 的节点发送到 SMSC ,并附有一条消息,告诉它“是的,有人想发送短信给其他人。这是这些消息和有关这些人的信息。请转发“

以下是用户A 向SMS 用户B 发送短信的情况:

  1. 用户A 将SMS及其有关目的地的信息发送到 VLR / MSC
  2. VLR / MSC 然后调用 MAP 消息 ForwardSM (转发短消息),以通过网络将接收到的数据进一步发送到名为< strong> SMS IMSC

SMS IMSC 是在网络与 SMSC

之间起接口作用的节点
    收到 ForwardSM 消息后,
  1. SMS IMSC SMSC发送 TPDU (传输协议数据单元)消息 strong>以及发送的短信和路由信息的文本

  2. SMSC 之后,将答复发送给用户A ,从而收到SMS。如果成功,则 SMSC 开始通过网络将此SMS路由到用户B

因此,您要查找的消息是来自第3点 TPDU 消息。根据 TPDU 类型,此消息的类型为 SMS-SUBMIT

修改

身份验证是一项单独的操作,它在订户开始其活动(例如打开电话)或漫游到另一个 VLR / MSC 正在服务的另一个区域时发生。无论如何, VLR / MSC 将该用户视为该区域的 new 。如果您知道什么是 VLR / MSC

,请跳过此部分
  

HLR 是一个节点,用于存储有关运营商网络中每个订户的所有信息。因此,基本上,这是一个数据库,其中包含整个运营商网络中每个订户的所有信息。

     

并且网络覆盖着巨大的地理区域,因此它被划分为较小的区域,称为“ 小区”。 VLR / MSC 是类似于 HLR 的节点(它还存储订户数据)。但是它负责一个特定的 cell ,因此它存储当前在此某些单元格中运行的订户的数据。因此,当新订户进入其区域时, VLR / MSC HLR 下载其数据。当订户离开此区域时, VLR / MSC 会删除其数据。

     

如果某个节点需要获取订户的数据,则不会“询问” HLR ,而是会“询问” VLR / MSC 订户当前处于活动状态的区域。

因此,当 VLR / MSC 看到一个新订户进入其区域时,在从 HLR 下载其数据之前,它会触发身份验证流程以进行检查如果此用户有效,并且其他人没有假装为该用户:

  1. VLR / MSC 发送身份验证信息 MAP消息与 IMSI (由其SIM卡唯一标识的移动用户号码)一起发送给 HLR
  2. HLR 检查给定的 IMSI 并验证订户。如果订户存在并且没有麻烦,那么 HLR IMSI 发送到 AUC (身份验证中心)
  3. IMSI 接收时, AUC 会生成一个包含 SRES triplet (一些用于识别用户身份的加密密钥) , RAND Kc 值,并将此数据发送回 HLR
  4. HLR 将此数据转发回 VLR / MSC ,这触发了身份验证过程
  5. 收到 SRES RAND Kc 后,
  6. VLR / MSC 发送收到的 RAND 移动用户
  7. 移动订户收到 RAND 后,他使用给定的 RAND Ki (某些值为写入用户的SIM卡中),然后将计算出的 SRES 发送回 VLR / MSC
  8. 在最后一步, VLR / MSC AUC 生成的 SRES 与用户生成的 SRES 进行比较。如果它们匹配,则可以成功识别用户, VLR / MSC HLR 获取订户的数据,并完成验证过程。

HLR 下载 VLR / MSC 数据后,需要此订阅者数据的其他所有节点都将从 VLR / MSC 取数据 HLR 。在此之后,身份验证过程将不会在订户每次想要做某事(拨打电话,发送短信等)时启动。

因此,当用户A 发送短信给用户B 时,有关用户A 的数据(例如他的号码)存储在 VLR / MSC 已经,并且它与SMS 用户A 一起从 VLR / MSC 到达 SMSC >已发送。