美好的一天,伙计们!我在尝试通过 SMPP(使用 Logica Java 库)提交国际短信时遇到问题。我将总结我所做的测试。我正在使用 WireShark 来监控与 SMPP 相关的活动。
(在职的)
//Connect and stablish session Connection conn = new TCPIPConnection(providerAddress, port); Session session = new Session(conn); BindRequest breq = new BindTransmitter(); breq.setSystemId(user); breq.setPassword(pass); breq.setSystemType("CMT"); breq.setInterfaceVersion((byte)34); breq.setAddressRange((byte)0x01, (byte)0x01,null); Response resp = session.bind(breq); //Create message SubmitSM msg = new SubmitSM(); msg.setDestAddr((byte)1, (byte)1, "58412014XXXX"); msg.setSourceAddr((byte)1, (byte)1, "58412014XXXX"); msg.setShortMessage("Test from tedexis","ISO-8859-1"); //Here we submit message session.submit(msg); //Disconnect session.unbind();
结果:消息正确传递。在这里,我们验证凭据是否有效,并注意源地址和目标地址相同
(失败)除了现在为国际电话号码设置的消息目标地址之外,代码保持不变
msg.setSourceAddr((byte)1, (byte)1, "1321237XXXX");
结果:失败,检查 WireShark 我在提交过程中观察到以下异常: SMPP Submit_sm - resp:“无效的目标地址”
我们可能认为我们的凭据对国际递送无效,但我们目前正在使用这些凭据通过其 Web 服务接口递送国际消息。
我一定错过了配置设置或已经错误地设置了一个,但是我没有想法,如果有人能指出我正确的方向,我会很高兴。