2013-01-08 55 views
1

美好的一天傢伙!嘗試提交國際短信大SMPP(使用Logica Java庫)時遇到問題。我要總結一下我所做的測試。我正在使用WireShark來監控SMPP相關活動。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服務界面傳遞國際消息。

我必須錯過一個配置設置或錯誤地設置了一個,但我用完了想法,如果任何人都可以指向正確的方向我會很高興。

回答

0

首先,由於地址範圍用於通知SMSC該接收方會話將處理來自所需地址範圍的MO消息,因此您不必設置地址範圍,因爲地址範圍用於通知SMSC。

至於發送到國際號碼,我沒有進入logica的API,但我很確定你錯過了將目標地址ton設置爲1(國際號碼)和目的地址npi爲0(未知)或1(ISDN),然後重試發送。

如果錯誤仍然存​​在,您將不得不打電話給您的提供商,他們可能授予您僅通過webservice發送到國際號碼的權限。