SMS Gateway
来自Jack's Lab
(版本间的差异)
(→设备) |
|||
第4行: | 第4行: | ||
* Linux x86 server | * Linux x86 server | ||
+ | |||
+ | <br><br> | ||
+ | |||
+ | == 模式切换 == | ||
+ | |||
+ | 默认情形下,内核将 ZTE MF668 识别为 SCSI CD-ROM 设备(因为其内部有一个 MicroSD 控制器,可插MicroSD卡): | ||
+ | |||
+ | <pre> | ||
+ | $ dmesg|grep scsi | ||
+ | [ 3.769916] scsi0 : usb-storage 1-1.3:1.0 | ||
+ | [ 4.773973] scsi 0:0:0:0: CD-ROM ZTE USB SCSI CD-ROM 2.31 PQ: 0 ANSI: 2 | ||
+ | [ 6.514819] sr0: scsi-1 drive | ||
+ | [ 6.530712] sr 0:0:0:0: Attached scsi CD-ROM sr0 | ||
+ | </pre> | ||
+ | |||
+ | |||
+ | 因此需要 usb-modeswitch 将其切换为 modem 模式: | ||
<pre> | <pre> | ||
第14行: | 第31行: | ||
Bus 001 Device 004: ID 19d2:2000 ZTE WCDMA Technologies MSM MF627/MF628/MF628+/MF636+ HSDPA/HSUPA | Bus 001 Device 004: ID 19d2:2000 ZTE WCDMA Technologies MSM MF627/MF628/MF628+/MF636+ HSDPA/HSUPA | ||
</pre> | </pre> | ||
+ | |||
+ | |||
<br><br> | <br><br> |
2013年10月12日 (六) 17:41的版本
目录 |
1 设备
- ZTE MF668 (USB 3G modem)
- Linux x86 server
2 模式切换
默认情形下,内核将 ZTE MF668 识别为 SCSI CD-ROM 设备(因为其内部有一个 MicroSD 控制器,可插MicroSD卡):
$ dmesg|grep scsi [ 3.769916] scsi0 : usb-storage 1-1.3:1.0 [ 4.773973] scsi 0:0:0:0: CD-ROM ZTE USB SCSI CD-ROM 2.31 PQ: 0 ANSI: 2 [ 6.514819] sr0: scsi-1 drive [ 6.530712] sr 0:0:0:0: Attached scsi CD-ROM sr0
因此需要 usb-modeswitch 将其切换为 modem 模式:
$ apt-get install usb-modeswitch $ lsusb Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. Bus 001 Device 004: ID 19d2:2000 ZTE WCDMA Technologies MSM MF627/MF628/MF628+/MF636+ HSDPA/HSUPA
3 Send/Receive SMS
4 Open Source Tools
4.1 gammu
$ apt-get install gammu gammu-smsd
配置 gammu
$ gammu-config Port: /dev/ttyUSB1 Connection: at115200
生成的配置文件默认位于 /root/.gammurc
亦可 /etc/gammurc
测试:
$ gammu getallsms #显示sim卡上所有 SMS Location 100006, folder "收件箱", phone memory, Inbox folder SMS message SMSC number : "+8613010374500" 标记为已发送 : 2013年04月15日 星期一 13时27分16秒 +0800 Coding : Unicode (no compression) Remote number : "+85264504220" Status : 已读 您的 Google 验证代码为 002226 1 SMS parts in 1 SMS sequences
发送 SMS:
$ gammu sendsms TEXT 15801234567 -textutf8 "testing"
中英文混合 SMS:
$ gammu sendsms TEXT 15801234567 -unicode -text "testing 测试"
4.2 gammu-smsd
配置:
SH-NAS:/var# cat /etc/gammu-smsdrc # Configuration file for Gammu SMS Daemon # Gammu library configuration, see gammurc(5) [gammu] # Please configure this! port = /dev/ttyUSB1 connection = at115200 # Debugging logformat = textall # SMSD configuration, see gammu-smsdrc(5) [smsd] service = sql Driver = native_mysql logfile = syslog User = smsd Password = smsd PC = localhost Database = smsd # Increase for debugging information debuglevel = 0
创建数据库和表:
mysql> create database smsd; Query OK, 1 row affected (0.00 sec) mysql> GRANT USAGE ON *.* TO smsd@localhost IDENTIFIED BY 'YOUR_PASSWORD'; Query OK, 0 rows affected (0.01 sec) mysql> GRANT SELECT, INSERT, UPDATE, DELETE ON smsd.* to smsd@localhost; Query OK, 0 rows affected (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) mysql> quit Bye $ cp /usr/share/doc/gammu-smsd/examples/mysql.sql.gz /tmp/ $ gunzip /tmp/mysql.sql.gz $ mysql -u USER_NAME -pUSER_PASSWORD YOUR_DB_NAME < /tmp/mysql.sql
运行:
$ gammu-smsd --config /etc/gammu-smsdrc --pid /var/run/gammu-smsd.pid --daemon
守护进程情形下,发送 SMS:
$ gammu-smsd-inject TEXT 13912345678 -unicode -text "哈哈,猫猫"