2011-07-18 3 views
7

내 기계가 SMSC처럼 작동하는 응용 프로그램을 만들고 있습니다. 그리고 거기에서 나는 deliver_sm 만 보내야합니다. 서버가 바인드 요청을 보냅니다. 나는 mechine을 서버와 묶을 필요가있다. 내 응용 프로그램은 smpp 클라이언트처럼 작동합니다. 나는 logica smpp.jar를 가지고있다. 하지만 나는 deliver_sm을 보내는 방법을 혼란스러워합니다. 제게 아이디어와 코드를주세요. anybdy는 아웃 바운드 요청을 보내는 방법을 알려 주시면 나에게 도움이 될 것입니다. 감사합니다. koushik.SMSC에서 deliver_sm 요청을 보내는 방법

답변

16

귀하의 질문에 지금 답변을 드릴 수 없습니다. 아래에서 두 가지 가능한 설정을 설명하고 원하는 솔루션을 설명했습니다. 내 대답은 SMPP 3.4 spec을 기준으로합니다.

설정

설정-1 : 당신은 SMPP 클라이언트

  1. 당신은 SMPP 클라이언트를 만드는을 만들 수 있습니다. 클라이언트는 대개 연결을 시작합니다. 클라이언트는 ESME (External Short Message Entity)라고도합니다.
  2. 클라이언트가 SMSC에 연결합니다. SMSC는 서버이며 대개 연결을 기다립니다.
  3. ESME는 "submit_sm"또는 "data_sm"PDU를 통해 메시지를 보낼 수 있습니다.

설정-2 :

  1. SMSC는 "DELIVER_SM"또는 "data_sm"PDU를 통해 메시지를 보낼 수있는 SMSC를 만들 수 있습니다. 보통 ESME는 SMSC에 바인드 요청을 보내드립니다

    연결을 초기화

. 바인드 요청은 "bind_transmitter", "bind_receiver"또는 "bind_transceiver"PDU 중 하나를 통해 전송할 수 있습니다.

SMSC는 "outbind"PDU를 통해 바인드 요청을 보내도록 ESME에 요청할 수 있습니다. 이 경우 SMSC는 ESME의 IP/포트를 알아야합니다. 거의 사용되지 않습니다. 여기

요청

//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 

메시지 보내기

이미 설정 부분에서이 논의를 outbind 보내는 조각. 여기에서 반복하십시오.

  1. ESME는 "submit_sm"또는 "data_sm"PDU를 통해 메시지를 보낼 수 있습니다. data_sm은 자주 사용되지 않습니다.
  2. SMSC는 "deliver_sm"또는 "data_sm"PDU를 통해 메시지를 보낼 수 있습니다. data_sm은 자주 사용되지 않습니다.

"deliver_sm"만 보내는 것이 왜 중요한지 잘 모르겠습니다. 코더로서, 전송할 PDU의 종류를 제어 할 수 있습니다.여기

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

덕분에이를 전송하는 조각은 내가 검색 한 ANS입니다. – user778900

관련 문제