Ver Mensaje Individual
  #4 (permalink)  
Antiguo 19/01/2011, 17:18
Avatar de nup_
nup_
 
Fecha de Ingreso: noviembre-2010
Mensajes: 265
Antigüedad: 13 años, 8 meses
Puntos: 32
Respuesta: Envio de Mensajes SMS desde una Clase,Servlet o desde un JSP

Hola:

Resumiendo, para enviar SMS te puedo dar 2 opciones:

- Que un operador de telefonía móvil te de acceso a su SMS Center. Este es un equipo q está conectado a la red móvil al cual te puedes conectar a través de un protocolo (el operador te dirá q protocolo es) para enviar y recibir SMS.
Personalmente he utilizado el api de logica para SMPP (hecha en Java):
http://opensmpp.logica.com/introhtml/menu.htm
En ese mismo sitio puedes encontrar documentación acerca de su uso, así como simuladores(importante, tu operador puede exigirte q tu aplicación funcione en un simulador antes de desplegarla en el "mundo real")
El problema con esto es q los operadores (al menos con los q he trabajado) son muy celosos en eso de dejar q alguien pueda enviar SMS en su red y pueden exigirte reglas q debes cumplir o te quitan el servicio, ejemplo: solo envías un SMS si antes recibiste uno de ese número, nada de SPAM, etc.
Lo bueno es q tienes grandes velocidades para recibir y enviar. Los costos se pueden negociar con el operador.

- La otra opción es utilizar un módem o un teléfono y a través de un programa en tu PC conectarte a él y hacer q envíe SMS.
La velocidad en estos casos es mucho peor, además que tienes q pagar por cada SMS q envíes. En dependencia del programa q utilices puede que no tengas soporte para el módem o teléfono q hayas conectado.
Para resolver lo de la velocidad pudes conectar varios módems.
Lo bueno q tiene es q pudes enviar todos los SMS q quieras a quien quieras sin depender de un operador. Para el operador eres simplemente otro usuario con un teléfono.
Para enviar de esta forma he utilizado Gammu:
http://wammu.eu/gammu/
Es una colección de programas para controlar los teléfonos a través de la cual puedes enviar y recibir SMS, MMS, consultar la libreta de direcciones, hacer llamadas, etc. (en dependencia del teléfono)
Puedes ver los teléfonos q soporta aquí http://wammu.eu/phones/
Entre los programas q tiene está el Gammu SMSd (http://wammu.eu/smsd/) q es un demonio q puedes configurar para q funcione con una Base de Datos. El programa lee del teléfono e inserta en la BD y lee de la BD y envía a través del teléfono.
Desde tu servlet (o web service, o lo que quieras) puedes insertar en una tabla de la BD los SMS q quieras enviar y leer de otra tabla los q se vayan recibiendo. También puedes simplemente ejecutar el comando 'gammu' (no necesita BD) a través de Runtime.exec(..) pasandole los datos necesarios para recibir o enviar.

Exiten otros programas q hacen cosas parecidas, pero no he trabajado con ellos.
Tienes una lista aquí: http://www.developershome.com/sms/freeLibForSMS.asp

Si estás haciendo una aplicación para una empresa o algo 'grande' o crítico te aconsejo la primera opción que es mucho más confiable. Si en cambio estas haciendo una aplicación 'personal' o ligero ve con la segunda opción.

Consejo: Si vas por la segunda opción resiste la tentación de crear tu propia librería para conectarte a los módems y enviarles comandos AT. No todos los módems responden igual a la misma secuencia de comandos y en los teléfonos la situación es peor. (experiencia propia)

Espero te haya servido de ayuda.

saludos;


Nup_