2

こんにちはみんな!(Logica Javaライブラリを使用して)国際SMSvíaSMPPを送信しようとして問題が発生しました。私が行ったテストを要約します。私は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:"無効な宛先アドレス"

私たちのクレデンシャルは国際配信には無効であると思われるかもしれませんが、現在、これらのクレデンシャルを使用して、Webサービスインターフェイスを介して国際メッセージを配信しています。

設定が足りないか、間違って設定しているに違いありませんが、アイデアが足りなくなってしまいました。誰かが正しい方向に向けてくれたら嬉しいです。

4

1 に答える 1

0

まず、送信機としてバインドしているため、アドレス範囲を設定する必要はありません。アドレス範囲は、この「受信者」セッションが目的のアドレス範囲からのMOメッセージを処理することをSMSCに通知するために使用されるためです。

国際番号への送信に関しては、logicaのAPIには興味がありませんが、宛先アドレスtonを1(国際番号)に設定し、宛先アドレスnpiを0(不明)または1(不明)に設定することは間違いありません。 ISDN)を送信し、送信を再試行します。

エラーが続く場合は、プロバイダーに電話する必要があります。プロバイダーから、Webサービスのみを介して国際番号に送信する許可が与えられている可能性があります。

于 2013-01-09T18:24:33.073 に答える