【问题标题】:SMPP Invalid destination address submitting international messageSMPP 提交国际消息的目的地址无效
【发布时间】:2013-01-08 21:34:10
【问题描述】:

大家好!我在尝试通过 SMPP(使用 Logica Java 库)提交国际短信时遇到问题。我将总结我所做的测试。我正在使用 WireShark 来监控与 SMPP 相关的活动。

  1. (工作中)

        //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();
    

结果:消息正确传递。在这里我们验证凭据是否有效,并注意源地址和目标地址相同

  1. (失败)除了现在为国际电话号码设置的消息目标地址之外,代码保持不变

        msg.setSourceAddr((byte)1, (byte)1, "1321237XXXX");
    

结果:失败,检查 WireShark 我在提交期间观察到以下异常: SMPP Submit_sm - resp:“无效的目标地址”

我们可能认为我们的凭据对国际递送无效,但我们目前正在使用这些凭据通过其网络服务接口递送国际消息。

我一定是错过了一个配置设置或错误地设置了一个,但我没有想法,如果有人能指出我正确的方向,我会很高兴。

【问题讨论】:

    标签: java smpp


    【解决方案1】:

    首先,您无需设置地址范围,因为您绑定为发送方,因为地址范围用于通知 SMSC 此“接收方”会话将处理来自所需地址范围的 MO 消息。

    至于发送到国际号码,我不喜欢 logica 的 API,但我很确定您没有将目标地址 ton 设置为 1(国际号码)并将目标地址 npi 设置为 0(未知)或 1 (ISDN) 并重试发送。

    如果错误仍然存​​在,您将不得不致电您的提供商,他们可能只允许您通过网络服务发送到国际号码。

    【讨论】:

      猜你喜欢
      • 2016-01-01
      • 1970-01-01
      • 2020-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-01
      • 2018-06-27
      • 1970-01-01
      相关资源
      最近更新 更多