2011-01-08 20 views
9

Tengo un proyecto por venir donde necesito enviar y recibir mensajes a través de un operador móvil específico, que solo proporciona una interfaz SMPP. El proyecto completo será un sitio web alojado. Ya he leído bastante, pero aún no entiendo lo que realmente necesito de mi lado para usar el protocolo.Recepción de SMS a través de SMPP

¿Debería mi aplicación intentar mantener una conexión constante con el smpp? ¿Puedo simplemente conectarme, enviar un mensaje y luego desconectar?

¿Reciben mensajes basados ​​en empujar o tirar?

Gracias por la ayuda.

+0

Para obtener información sobre cómo trabaja con Esme SMSC, y se unen y operación de desvinculación se puede comprobar aquí http://blog.ektel.com .np/2012/01/sms-messages-between-esme-server-and-smsc-server/ Espero que ayude –

Respuesta

4

Está indicando que desea recibir mensajes, como resultado se necesita al menos un bind_receiver. Como no sabe cuándo aparecerán los mensajes, tendrá que estar conectado constantemente, en lugar de desconectarse después de cada evento.

Con respecto a su pregunta sobre "empujar o tirar", esto depende de cómo resuelva el primer problema. Si puede construir una solución que esté constantemente conectada, el resultado será un impulso (el operador lo enviará tan pronto como reciba el mensaje). Si (por alguna razón) no puede mantener una conexión constante, terminará construyendo un mecanismo de extracción. Te conectarás con el operador cada X segundos para ver si tienen un mensaje esperándote.

sí necesito para resaltar 2 trampas sin embargo:

  1. Un número de portadores en el mundo, no almacene ni siquiera aceptar mensajes si no está conectado, por lo tanto, dependiendo de qué compañía se interactúa con, usted podría verse forzado a usar una conexión continua.
  2. La mayoría de los operadores no le permiten abrir y cerrar conexiones en una sucesión rápida. Una vez que te desconectas, no puedes volver a conectarte durante un período de X segundos.

Por lo tanto, una conexión constante es realmente el camino a seguir. Alternativamente, puede buscar en una empresa como Nexmo, que le proporcionará una llamada HTTP cada vez que llega un mensaje.

No estoy seguro en qué idioma está desarrollando su aplicación, pero si usa alguno de los idiomas populares (Java, PHP, Perl) hay módulos que manejan la Conectividad SMPP básica para usted. Una búsqueda rápida en Google para su idioma y "Cliente SMPP" le dará una lista de referencias.

7

SMPP es un protocolo peer-to-peer. Eso debería significar que SMS Gateway (su lado) y SMSC (su operador de telefonía móvil) deben tener una conexión/conexión adecuada establecida. Incluso cuando no hay SMS o DLR para enviar/recibir, hay un intercambio continuo de smpp PDU (enquire_link/inquire-link_resp) que garantiza que se establezca el enlace. En detalle, si envía una PDU enquire_link y no obtiene respuesta (enquire_link_resp), el enlace está roto. Su sms no se entregará (permanecerá en cola en su tienda de puerta de enlace), y no recibirá MO (sms entrantes) o DLR (informe de entrega). Para restablecer la conexión, debe reiniciar la conexión.

Por lo tanto, mi respuesta sería que necesita una conexión constante con SMSC.

0

Quizás sería una mejor solución usar un agregador de SMS en lugar de conectar directamente su operador de telefonía móvil. A continuación, puede conectarse fácilmente a través de HTTP API a esto (hacer una llamada URL para enviar SMS, obtener una devolución de llamada URL a su servidor para recibir SMS y los informes de entrega).

Con algunos ajustes (p. Ej.persistir la conexión, etc.) podría lograr casi el mismo rendimiento que smpp.

Este es un buen punto de partida para encontrar un agregador que apoya su operador: http://www.onehop.co/

Cuestiones relacionadas