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
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
- Tworzysz klienta SMPP. Klienci zwykle inicjują połączenia. Klienci są również znani jako ESME (External Short Message Entity).
- Twój klient połączy się z SMSC. SMSC są serwerami i zwykle czekają na połączenia.
- ESME może wysyłać wiadomości przez PDU "submit_sm" lub "data_sm".
Setup 2: Ty tworzysz SMSC
- 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:
- 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.
- 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);
dzięki To ans szukałem. – user778900