Gateway SMS/EMAIL/SMS

Bueno, pues hoy voy a enseñar un pequeño proyecto el cual ya hace tiempo que había terminado, pero que hoy doy a la luz pública (en fase beta) para que lo probeis a ver que os parece.

La idea de hacer un gateway sms2email y email2sms hacía tiempo que me rondaba la cabeza. Mi idéa era hacerlo bajo linux, ya que es el mejor sistema operativo que puede hacer de servidor y para este caso en concreto necesitaba un servidor POP3 y SMTP. Segundo necesitaba un aparato que enviase y recibiese sms, por lo que aproveché mi antiguo Siemens M35 y un cable de datos que ya tenía anteriormente para que hiciese las veces de servidor sms. Tercero necesitaba el software que gestionase los sms y los correos, por lo que para el primer caso usé la estupenda herramienta SMS server tools cuyo funcionamiento se reduce a guardar en un directorio un archivo con formato por cada sms nuevo del móvil, y enviar un sms por cada archivo con formato que encuentre en otro directorio; para el segundo caso he usado el perl con las librerias Net::POP3, Net::SMTP, MIME::Parser, MIME::Entity y MIME::Body.

El resultado final es el siguiente que os explico:

Para enviar un correo y que se transforme en sms:
-En el destinatario del correo poneis sms@sistemasorp.com
-En el asunto del correo poneis SOLO el número de teléfono con prefijo 34 o sin el (no acepta mensajes a móviles que no sean de España).
-En la primera línea del mensaje poneis el texto que querais siendo menor de 140 carácteres.

Para enviar un sms y que se transforme en mail:
-Poner la dirección de correo electrónico seguido de un espacio y el texto del mensaje.
-Enviadlo al número de móvil 699744630. Esto os costará lo que vuestro proveedor de telefonía móvil os cobre por un sms normal y corriente (normalmente 15 céntimos de euro).

En el caso de que sea mi sistema el que envíe el sms después de recibir un correo, me costará 15 céntimos de euro, aunque como estoy probando el sistema y el sim que tengo es de los que tienen dinero aún acumulado por la promoción de compra de un nuevo móvil, no me importa que se gaste. Más adelante lo pondré con contraseña para que solo yo o la gente que decida puedan usarlo.

El código fuente en perl no esta aún comentado, aunque si quereis una copia, podeis pedirmela sin problemas.

Los mensajes sms pueden recibirse o enviarse inmediatamente, tardiamente o nunca, eso ya depende de los proveedores de telecomunicaciones, de vuestro servidor de smtp tenga la última ip de mi dominioa través del DNS que use, etc.

19 comentarios en “Gateway SMS/EMAIL/SMS

  1. jumi

    He probado el sistema y me parece coj…

    Se que lo que voy a pedir es una pasada, pero podrias:

    – Colgar el código en alguna parte.
    – Mini manual de como se instala el sistema, librerias necesarias, etc…

    Saludos,

    Responder
  2. sistemasorp

    Pues en breve haré un manualillo de como hacerlo funcionar e incluiré el código fuente.

    Pero vamos, las sms server tools son bastánte fáciles de instalar en linux y las librerias que uso en perl suelen venir ya junto con el.

    Un saludo.

    Responder
  3. sistemasorp

    Bueno, pues entónces te voy explicando como van los pasos. Previamente me imgaino que ya tendrás configurado un linux con sus lbrerias de compilación (gcc, make, etc) y un servidor smtp y/o pop3. Además ya tendrás conectado el móvil al cable y este a su vez al ordenador:

    1- Descargate estos ficheros:
    http://smstools.meinemullemaus.de/packages/smstools.tar.gz
    ftp://ftp.ossp.org/pkg/lib/mm/mm-1.3.1.tar.gz

    2-Entra al sistema como root

    3-Para la libreria mm ejecuta lo siguiente:

    tar xvzf mm-1.3.1.tar.gz
    ./configure –prefix=/usr/share/mm
    make
    make test
    make install

    4-Para las sms tools ejecuta lo siguiente:

    tar xzf smstools.tar.gz
    make -s
    make -s install

    5-Luego esditas el fichero /etc/smsd.conf y compruebas que tengas estas lineas:
    # Example smsd.conf. Read the manual for a description

    devices = GSM1
    # 1 write all logging to the screen. You can also enter a filename. If you
    # remove that line, then the system log daemon (event log) will be used.
    logfile = 0
    loglevel = 7

    [GSM1]
    # Windows: /dev/com1, Solaris: /dev/cua/a, Linux /dev/ttyS0
    device = /dev/ttyS0
    incoming = yes
    cs_convert = yes
    #pin = 1111

    Teniendo en cuenta que colocas el cable serie de tu móvil al puerto serie COM1 del ordenador.Si es el COM2, entónces donde ponga ttyS0 pon ttyS1.

    6-Si todo ha ido bién y esta instalado, podemos pasar a hacer la prueba:

    Ejecuta /etc/init.d/sms start
    Ejecuta sendsms MOVIL MENSAJE, donde MOVIL es el número de móvil de destino, y MENSAJE es el mensaje a enviar. Recibirás un sms al móvil que tiene ese número.
    Ahora enviale un sms al móvil que esta enchufado con el cable al ordenador, y cuando te cerciores de que lo ha recibido, vete al directorio /var/spool/sms/incoming a ver si hay algún fichero cuyo contenido tenga en algún sitio el texto del mensaje que acabas de enviar.

    7- Si todo esto ha funcionado, entónces ya estámos en la recta final. Ahora descargate este fichero http://www.quejateportodo.com/gateway/scripts-perl-gateway-beta.tar.gz y descomprime su contenido en la carpeta /usr/local/bin. Edita los dos ficheros extraidos para modificar cosas como por ejemplo el nombre de usuario para este gateway (en mi caso el usuario sms) y su usuario y contraseña, y para poner el servidor (en mi caso localhost).

    8-A continuación vamos a crear una entrada al crontab de la siguiente forma:

    Ejecuta contrab -e

    y a continuación añades estas dos lineas:

    0-59 * * * * /usr/local/bin/mail2sms
    0-59 * * * * /usr/local/bin/sms2mail

    9-Si has llegado hasta aquí sin ningún problema, es que ya tienes funcionando el sistema. Si ves que hay algo que no funciona no dudes en preguntarme. Un saludo.

    Responder
  4. Eduardo

    Pues la verdad es que esta realmente bien…. el codigo que has realizado tu y que esta en perl dices…. es el ultimo link que has puesto??? Y de no ser asi me gustaria que me pudieses pasar el codigo

    Es que me gustaria hacer algo asi en java… y estoy mirando a ver como podria hacerlo. Si consigo hacerlo en java no dudes en pedirmelo si lo quieres 😉 Aunque lo hare publico.

    Un saludo.

    Responder
  5. sistemasorp

    Si, efectivamente el último link que he puesto es el del código fuente en perl que se encarga de leer el correo y crear el fichero para las sms tools; y enviar un correo a través de los ficheros creados por las sms tools.

    Responder
  6. Anonymous

    hola oscar, intente descargar de los enlaces de mas arriba pero el tercero de perl esta roto, quizar podrias poner en otro link para poder dercargalo. Gracias y felicitaciones por los aportes. Estan super buenos.
    Carlos.

    Responder
  7. Anonymous

    Hola yo tengo un motorola C358 en el cual no me funcionan algunos comandos AT. No se si es por la configuracion del Telefono o tiene comandos especificos. Por ejemplo yo pongo AT+CPBR=? me sale la informacion correcta pero cuando pongo AT+CPBR=1 me sale error. Que puede estar pasando??

    Responder
  8. sistemasorp

    Dos cosas, ¿tienes entradas de teléfonos almacenadas en el teléfono? y ¿has probado por ejemplo con AT+CPBR=1,2?

    Responder
  9. Anonymous

    Hola amigo, oye me intereso mucho este manual, oye una pregunta si deseo hacer eso en windows si se puede? me podrias hechar la mano con unos manuales y eso mira este es mi msn y mi correo alpha.msn@gmail.com saludos 🙂

    Responder
  10. Anonymous

    Buenas, he estado mirando tu proyecto para enviar mail a través de un server de sms y tal, parece estar muy bien, pero el link al codigo fuente esta roto. Yo estoy preparando un proyecto a través de un microprocesador Rabbit (estan mu xulos) para que reciba emails y los mande a través de sms, pero me falta un parser que me pase de codigo html (del mail) a texto para poder enviarlo por movil. Estaría muy agradecido si volvieses a poner los link. Por lo que he visto en la red a parte de este blog tienes uno propio asi que te cuelgo el post en los dos. Muchas Gracias

    Responder
  11. gferro

    Master quiero hacer una cosa similar, la idea es que via celulares se envie una consulta a «algo» que la interprete, acceda a postgresql y luego la respuesta se envie al mismo celular.
    Te aclaro que recien empiezo en linux, por lo que de perl no tengo idea, solo he manejado visual basic6 y algo de delphi.
    tendria que cambiar tu codigo perl para que una vez tomado sea interpretado el mensaje se conecte a postgre y genere el mesnaje de resultado?

    Responder
  12. Anonymous

    Estoy en un proyecto, y veo que se enlasa muy bien con este tema, la idea es la siguiente, necesito enviar por sms un mensaje que contenga la identificacion de un carro, este debe compararlo en la base de datos de un servidor, y regresarme el mensaje con la informacion optenida ej ( el carro si esta solicitado por las autoridades, o si esta libre de cargos) que me recomiendad a usar, tanto en software como en hardwre, agradezco la mayor ayuda…. para liberarnos un poco de criminales jejeje… de antemanos gracias

    mi correo es neo_matrix1978@hotmail.com

    Responder
  13. Miguel De Gregorio

    hola amigo..
    esta herramienta he siempre sabido que es fabulosa.
    he creado un control de actividades importante entre los miemmbros de mi familia y amigos en mi paginaque incluye la posibilidad de usar el modulo SMS..
    aqui está el Readme del mismo:
    http://tutos.cvs.sourceforge.net/tutos/tutos/php/sms/README?hideattic=0&view=markup

    lo que no logro es donde ubicar el gateway que piden y como debo configurarlo para que funciones o directamente de mi celular o por una compañia que presta esos servicios..

    son años intentando y veo que has desarrollado este tema a profundidad..
    ojalá puedas ayudarme..

    gracias anticipadas

    Responder

Responder a Anonymous Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *