# aptitude install gammu gammu-doc gammu-smsd libgammu7 libgsmsd7comando para identificar el dispositivo
# gammu -c /etc/gammu-smsdrc --identifyrespuesta:
Dispositivo : /dev/ttyUSB0
Fabricante : Huawei
Modelo : unknown (E173)
Firmware : 11.126.85.00.197
IMEI : 352214041427007
IMSI SIM : 734048700255917
NOTA: para las pruebas estoy utilizando un mdoem usb Huawei E173 con un chip de telefono movistar, en la pagina oficial de gammu (http://es.wammu.eu/) puedes ubicar los telefonos y modems soportados ademas del tipo de conexion, para la prueba se utilizo connection = at19200 verificar los puertos del dispositivo que reconoce la pc
# ls -l /dev/tty*resultado:
crw-rw---- 1 root dialout 188, 0 2013-03-25 14:22 /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 1 2013-03-25 14:22 /dev/ttyUSB1
crw-rw---- 1 root dialout 188, 2 2013-03-25 14:23 /dev/ttyUSB2
crw-rw---- 1 root dialout 188, 3 2013-03-25 14:23 /dev/ttyUSB3
crw-rw---- 1 root dialout 188, 4 2013-03-25 14:23 /dev/ttyUSB4
crw-rw---- 1 root dialout 188, 5 2013-03-25 14:23 /dev/ttyUSB5
Algunos casos solo reconoce ttyUSB0 al ttyUSB3
El archivo de configuracion por modem conectado, si existen multiples modem es necesario crear un archivo por cada modem. Adicional es necesario identificar por cual puerto salen y entran los sms para el caso de la prueba donde se reconocen 6 puertos se utiliza port = /dev/ttyUSB0 si reconoce 4 puertos el puerto de salida es otro, solo queda probar.
# vim /etc/gammu-smsdrc
[gammu] port = /dev/ttyUSB0 model = logformat = textalldate connection = at19200 synchronizetime = yes use_locking = gammuloc = [smsd] #Para el demonio SMSD logfile = /home/usuario/smsdlog debuglevel = 1 commtimeout = 0 sendtimeout = 10 receivefrequency = 60 phoneid = modem1 #Para la Base de Datos service = sql driver = native_pgsql host = 192.168.1.3 pin = 1234 user = u_test password = pass_server database = sms4guardar y salir :wq el parametro phoneid = modem1 cambia por cada dispositivo conectado, asi identificas cada modem; al igual que puedes crear diferentes archivos para los logs de cada dispositivo para probar el modem conectado puedes utilizar el comando:
# echo "prueba" | gammu -c /etc/gammu-smsdrc --sendsms TEXT 04141111111 -> aqui el nuemero al que envias el smsComo se observa en el archivo de configuracion existe una BD asociada al proceso database = sms4, es donde se registran los mensajes entrantes y salientes, para crear esta bd utiliza el archivo .sql propio para la instalacion de gammu La estructura de la bd para gammu se encuentra en:
/usr/share/doc/gammu/examples/sql/pgsql.sql
Solo queda crear la bd desde el archivo pgsql.sql
# su - postgres $ psql postgres=# create database sms4 with owner u_fmnh; postgres=# \q $ psql sms4 u_fmnh -h localhost < /usr/share/doc/gammu/examples/sql/pgsql.sqlpara ejecutar el envio de sms automatico solo hay q levantar el proceso
# gammu-smsd -c /etc/gammu-smsdrcSi existen mas modems conectados y configurados el parametro -c recibe la ruta de cada configuracion Si deseas probar si todo funciona inserta en la bd creada en la tabla outbox query format sms flash
INSERT INTO outbox("DestinationNumber", "TextDecoded", "CreatorID", "Class") VALUES ('04141111111', 'prueba', 'Gammu', '0')query format sms normal
INSERT INTO outbox("DestinationNumber", "TextDecoded", "CreatorID", "Class") VALUES ('04141111111', 'prueba', 'Gammu', '-1')Si tienes multiples dispositivos conectados y quieres enviar sms por cada uno de ellos debes señalar en el insert a cual modem envias utilizando el parametro de configuracion phoneid en los campos SenderID CreatorID
INSERT INTO outbox ("DestinationNumber", "TextDecoded", "SenderID", "CreatorID", "Coding","Class") VALUES ('04141111111','prueba modem1','modem1','modem1',''Default_No_Compression'',0)' INSERT INTO outbox ("DestinationNumber", "TextDecoded", "SenderID", "CreatorID", "Coding","Class") VALUES ('04141111111','prueba modem1','modem2','modem2',''Default_No_Compression'',0)'...y listo!!
Solo queda departe de tu codigo controlar la carga por cada modem, debe existir una mejor forma de balancear la carga del envio de sms, pero aun no lo se.. adicional, reiniciar el servicio si falla...
comenten al respecto.. gracias!