gpt4 book ai didi

java - SMPP 提交国际消息的目的地址无效

转载 作者:行者123 更新时间:2023-11-29 09:07:18 25 4
gpt4 key购买 nike

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

  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:“无效目标地址”

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

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

最佳答案

首先,您不必设置地址范围,因为您已绑定(bind)为发送方,因为地址范围用于通知 SMSC 此“接收方” session 将处理来自所需地址范围的 MO 消息。

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

如果错误仍然存​​在,您必须调用您的供应商,他们可能只允许您通过网络服务发送至国际号码。

关于java - SMPP 提交国际消息的目的地址无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14224409/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com