2011-07-18 10 views
7

estoy creando una aplicación donde mi dispositivo funcionará como un SMSC. Y a partir de ahí necesito enviar solo deliver_sm. El servidor enviará la solicitud de enlace. Necesito unir mi mechine con el servidor. Mi aplicación funcionará como un cliente smpp. Tengo logica smpp.jar. Pero estoy confundido sobre cómo enviar solo deliver_sm. Por favor dame algunas ideas y código. puede cualquier persona decirme cómo enviar la solicitud de salida ,, que también será muy útil para mí. gracias koushik.cómo enviar la solicitud deliver_sm desde SMSC

Respuesta

16

Su pregunta no puede ser respondida tal como se presenta ahora. Le expliqué dos configuraciones posibles a continuación y luego las soluciones que está buscando. Mis respuestas se basan en SMPP 3.4 spec.

Configuración

Configuración-1: Usted está creando un cliente SMPP

  1. Estás creando un cliente SMPP. Los clientes generalmente inician conexiones. Los clientes también se conocen como ESME (External Short Message Entity).
  2. Su cliente se conectará a un SMSC. SMSC son servidores y generalmente esperan conexiones.
  3. Un ESME puede enviar mensajes a través de la PDU "submit_sm" o "data_sm".

Configuración-2: Usted está creando un SMSC

  1. Un SMSC puede enviar mensajes a través de "deliver_sm" o PDU "data_sm".

El inicio de la conexión

Por lo general ESME enviará una solicitud de enlace al SMSC. Se puede enviar una solicitud de vinculación a través de una PDU "bind_transmitter", "bind_receptor" o "bind_transceiver".

El SMSC puede estar ansioso e invitar a un ESME a enviar la solicitud de vinculación a través de la PDU "outbind". En este caso, el SMSC debe conocer la IP/puerto del ESME. Raramente se usa.

Aquí un fragmento de enviar la solicitud outbind

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

Envío de mensajes

Ya he discutido sobre esto en la parte de configuración. Repitiendo aquí,

  1. Un ESME puede enviar mensajes a través de la PDU "submit_sm" o "data_sm". data_sm no se usa con frecuencia.
  2. Un SMSC puede enviar mensajes a través de la PDU "deliver_sm" o "data_sm". data_sm no se usa con frecuencia.

No estoy seguro de por qué enviar solo "deliver_sm" es tan importante. Como codificador, tienes control sobre el tipo de PDU que vas a enviar.

Aquí un fragmento de enviar la solicitud 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

gracias Esta es la American National Standard que estaba buscando. – user778900

Cuestiones relacionadas