2011-07-18 20 views
7

tworzę aplikację, w której mój mechine będzie działał jak SMSC. I stamtąd muszę wysłać tylko dostaw_sm. Serwer wyśle ​​żądanie powiązania. Muszę związać mój mechine z serwerem. Moja aplikacja będzie działać jak klient smpp. Mam logica smpp.jar. Ale jestem zdezorientowany, jak wysłać tylko dostaw_sm. Proszę, daj mi trochę pomysłów i kodu. can anybdy proszę powiedz mi jak wysłać żądanie wychodzące, które również będzie dla mnie bardzo pomocne. dzięki koushik.jak wysłać żądanie delivery_sm z SMSC

Odpowiedz

16

Na to pytanie nie można odpowiedzieć w sposób przedstawiony teraz. Wyjaśniłem dwa możliwe ustawienia poniżej, a następnie rozwiązania, których szukasz. Moje odpowiedzi są oparte na SMPP 3.4 spec.

Konfiguracja

Setup 1: Tworzysz klienta SMPP

  1. Tworzysz klienta SMPP. Klienci zwykle inicjują połączenia. Klienci są również znani jako ESME (External Short Message Entity).
  2. Twój klient połączy się z SMSC. SMSC są serwerami i zwykle czekają na połączenia.
  3. ESME może wysyłać wiadomości przez PDU "submit_sm" lub "data_sm".

Setup 2: Ty tworzysz SMSC

  1. SMSC można wysyłać wiadomości za pośrednictwem "deliver_sm" lub "data_sm" PDU.

Inicjowanie połączenia

Zazwyczaj ESME wyśle ​​żądanie powiązania do SMSC. Żądanie związania można wysłać za pośrednictwem modułu PDU "bind_transmitter", "bind_receiver" lub "bind_transceiver".

SMSC może być chętny i zaprosić ESME do wysłania żądania powiązania za pośrednictwem PDU "outbind". W tym przypadku SMSC musi znać adres IP/port ESME. Jest rzadko używany.

Oto urywek wysyłania outbind wniosek

//you will need these classes 
import org.smpp.Session; 
import org.smpp.pdu.Outbind; 

Session session = .... ;//Assuming you created a session instance 
Outbind outbind = new Outbind(...);//assuming you created a outbind instance 

session.outbind(outbind);//send outbind 

wysyłania wiadomości

ja już o tym rozmawialiśmy w części instalacji. Powtarzanie tutaj:

  1. ESME może wysyłać wiadomości za pośrednictwem jednostki PDU "submit_sm" lub "data_sm". data_sm nie jest często używany.
  2. SMSC może wysyłać wiadomości za pośrednictwem PDU "delivery_sm" lub "data_sm". data_sm nie jest często używany.

Nie jestem pewien, dlaczego wysyłanie tylko "dostarcz_sm" jest tak ważne. Jako programista masz kontrolę nad rodzajem PDU, które zamierzasz wysłać.

Oto urywek wysyłania żądania deliver_sm

//you will need these classes 
import org.smpp.Session; 
import org.smpp.pdu.DeliverSM; 

DeliverSM pdu = new DeliverSM(); 
pdu.setSequenceNumber(1);//set unique numbers 
pdu.setSourceAddr(new Address(1, 1, "121200"));//TON, NPI, source number 
pdu.setDestAddr(new Address(1, 1, "12120004321"));//TON, NPI, destination number 
pdu.setShortMessage("Hello world"); 
session.deliver(pdu); 
+0

dzięki To ans szukałem. – user778900