我们有一个 smpp 服务器,我们有
- IP地址
- 用户名
- 密码
- 端口号
在代码中输入这些详细信息并尝试发送短信时,我们收到以下错误消息:-
绑定发射器 PDU:0 100 101 109111 49 50 51 0 97 99 116 105 118 101 0 51 0 0 0 发送 PDU, len == 36 正在发送 PDU, header-len == 16 正在发送 PDU,command_id == 2 尝试读取 PDU。阅读 PDU : 16 字节。流镜头 : 12 命令 ID : 2. 命令状态 : 13. sequence_number : 1. 得CM_BIND_TRANSMITTER_RESP。 警告:解包() [function.unpack]:类型a:输入不足,需要1,有0在 /home/acftp052/public_html/smpp/smppclass.php 在第 580 行的系统 ID 上: .收到的 PDU: €(0)(0)(2)(0)(0)(0)(0)(13)(0)(0)(0)(0)(1) 绑定到 时出错 SMPP 服务器。凭据无效?发送 PDU, len == 16 发送 PDU, header-len == 16 正在发送 PDU,command_id == 21 正在尝试读取 PDU。 插座已关闭。!!连接丢失。在split_message。一条消息: 30 PDU 规范:a1cca1cca14ccca1a1ccccca30。发送 PDU,len == 76 正在发送 PDU,标头 == 16 正在发送 PDU,command_id == 4 正在尝试 阅读 PDU。插座已关闭。!!连接丢失。发送 PDU,len == 16 正在发送 PDU,标头 == 16 正在发送 PDU,command_id == 6 正在尝试 阅读 PDU。插座已关闭。!!连接丢失。
我们能够从错误中推断出提供的凭据是错误的。
我的怀疑是:-
- 连接到 smpp 服务器需要哪些详细信息。
- 代码文件应该部署在 Smpp 服务器上,还是可以部署到其他服务器并尝试访问 SMPP 服务器以发送消息。(我们确实尝试通过filezilla连接到smpp服务器,但没有成功)
- 来自数字 当我们尝试将消息从系统发送到手机时。
请指导我们。自从一周完成了我所知道的所有研究以来,我们就一直被这个问题困住了,但我只是转向死胡同并变得空白。
欢迎任何建议。
感谢和问候克里希南。
我的答案基于 .SMPP 3.4 规范
===
我假设您的设置如下所示:
- 您正在开发SMPP客户端(又名ESME)。
- 您具有与 SMPP 服务器(也称为 SMSC)的连接信息。
问题 1:连接到 smpp 服务器需要哪些详细信息。
ESME 至少需要满足以下条件才能连接到 SMSC(在 TCP 级别需要):
- SMSC的知识产权
- SMSC港口
大多数 SMSC 还将要求(但这不是强制性的):
- system_id(用作用户名)
- 密码
一些 SMSC 还将要求:
- system_type(请参阅 SMPP 3.4 规范中的第 4.1.1 节)
- address_range(请参阅 SMPP 3.4 规范中的第 4.1.1 节)
问题 2:代码文件应该部署在 Smpp 服务器上,还是可以部署到其他服务器上并尝试访问 smpp 服务器以发送消息。我们确实尝试通过filezilla连接到smpp服务器,但没有成功)
SMSC(即SMPP服务器)和ESME(即SMPP客户端)不需要在同一机器上;如果你愿意,你可以这样做。唯一的要求是他们可以通过TCP连接。
我相信FileZilla是一个FTP客户端,它与SMSC无关。
问题3:当我们尝试将消息从系统发送到手机时,来自数字强制性。
我假设您正在使用SUBMIT_SM发送消息(因为您正在尝试通过BIND_TRANSMITTER连接)。
在规范中,发件人编号称为source_addr(请参阅 SMPP 3.4 规范中的第 4.4.1/5.2.8 节)。大多数SMSC都需要source_addr但这不是强制性的。