尝试从 php 代码通过 smpp 服务器发送短信时凭据无效错误


Invalid credential error on trying to send a sms via smpp server from php code

我们有一个 smpp 服务器,我们有

  1. IP地址
  2. 用户名
  3. 密码
  4. 端口号

在代码中输入这些详细信息并尝试发送短信时,我们收到以下错误消息:-

绑定发射器 PDU:0 100 101 109

111 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。插座已关闭。!!连接丢失。

我们能够从错误中推断出提供的凭据是错误的。

我的怀疑是:-

  1. 连接到 smpp 服务器需要哪些详细信息。
  2. 代码文件应该部署在 Smpp 服务器上,还是可以部署到其他服务器并尝试访问 SMPP 服务器以发送消息。(我们确实尝试通过filezilla连接到smpp服务器,但没有成功)
  3. 来自数字 当我们尝试将消息从系统发送到手机时。

请指导我们。自从一周完成了我所知道的所有研究以来,我们就一直被这个问题困住了,但我只是转向死胡同并变得空白。

欢迎任何建议。

感谢和问候克里希南。

我的答案基于 .SMPP 3.4 规范

===

我假设您的设置如下所示:

  1. 您正在开发SMPP客户端(又名ESME)。
  2. 您具有与 SMPP 服务器(也称为 SMSC)的连接信息。

问题 1:连接到 smpp 服务器需要哪些详细信息。

ESME 至少需要满足以下条件才能连接到 SMSC(在 TCP 级别需要):

  1. SMSC的知识产权
  2. SMSC港口

大多数 SMSC 还将要求(但这不是强制性的):

  1. system_id(用作用户名)
  2. 密码

一些 SMSC 还将要求:

  1. system_type(请参阅 SMPP 3.4 规范中的第 4.1.1 节)
  2. 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但这不是强制性的。