我有一个关键问题,就是通过SMPP或SS7发送短信。
案例: 我们使用SMPP连接到所有本地运营商(我们已经与每个运营商签订了协议)。事实是,我们能够向所有本地运营商发送短信并实际接收DLR(deliver_sm),但是在我们没有收到任何回复的情况下有很多情况。
另一方面,我们有一个运行SS7的E1连接,一个本地运营商用于语音。我在想是否可以使用这个SS7 E1连接发送短信?市场上有几种提供此功能的硬件。
我主要担心的是: - 在购买这款SS7 SMS硬件之前,我应该检查一下,以确保这在我们的SS7 E1连接中有效吗? - 运营商是否可以阻止来自E1 SS7连接的SMS? - 如果我们实际发送短信,请使用SS7 E1连接,在哪里接收DLR,在SMPP连接中,或在E1 SS7中? - 如果我们通过SS7 E1发送短信,将能够拥有动态发送者ID吗?
谢谢和最诚挚的问候,
克劳迪奥
答案 0 :(得分:4)
为了通过SS7发送短信,您应该有一个类似SMS-Center的软件,它将通过SS7 MAP协议提交SMS(使用MT-Forward-SM命令,前面是SRI-for-SM发送路由信息的简称获取订户位置的消息)。您的E1连接可能仅启用语音(ISUP),可能不支持发送MAP命令,或者操作员将丢弃这些MAP命令。
除了通常由合作伙伴移动运营商提供的完整SS7连接外,您还需要其他要求:
以上只是对呼叫流程和相关要求的简要总结,在现实生活中,这可能要复杂得多。有关SS7上SMS协议的详细说明,请参阅此处可以找到的SMS的ETSI / 3GPP主要规范:http://www.etsi.org/deliver/etsi_ts/123000_123099/123040/12.02.00_60/ts_123040v120200p.pdf(短消息服务的技术实现)。
您了解很难直接通过SS7网络提交短信,而不仅拥有合适的SS7硬件和SMSC软件,而且还与非常友好的移动网络运营商建立强大的合作伙伴关系,授予您访问SS7的权限网络并授权您代表他发送短信。
更容易的替代方案是与其中一个正在运行此类基础架构的SMS经纪人签订合同,您将通过SMPP向他们提交,但他们将通过SS7提供。这将使您在大多数情况下能够获得传递状态确认并使用动态发件人ID。
答案 1 :(得分:0)
关于您提到的案例-很多案例您没有收到任何回报-如果您了解SMPP规范的详细信息,则可能会找到许多答案。除了标准的SMPP消息( submitSM 和 deliverSM )之外,还有其他一些消息可以帮助您跟踪或更改从外部短信实体应用程序提交的短信:>
检查SubmitSM响应代码,例如无效的源,目标地址或SMSC供应商特定的错误代码
使用 querySM 消息来查询SMSC / SMSGW返回的,具有消息ID的短消息状态,作为对SubmitSM的响应。借助它,您可以查询短信的发送状态并决定要做什么。
CancelSM 使应用程序可以删除待处理的SMS,以便在SMSC / SMSGW队列上进行传递。用例可以是:SMS带有交付报告标志提交,但是尚未收到最终状态的交付报告,您可以使用cancelSM删除此短消息
通过空短信,您可以验证收件人终端处于打开还是关闭或覆盖范围之外。您使用ESME应用程序发送带有最终状态传递报告标志的空SMS,然后等待传递报告。如果交付报告仍未结束,请在15分钟后让我们假设终端已关闭或不在范围内。
使用相对时间格式作为SMS有效期来设置可以排队等待在SMSC / SMSGW上传递的时间。但是请注意,SMSC运营商可以对相对时间偏移施加限制,并且可能会拒绝超过此限制(例如24小时)的邮件