|
本帖最后由 kingchy 于 2019-1-3 17:27 编辑
话说xjpower大神给出了N1变身SIP呼叫中心的大法:https://www.right.com.cn/forum/forum.php?mod=viewthread&tid=346763。但执著的恩山人怎么能停滞于此,于是我也开始研究如何将N1变身短信中心(接码平台?)的方法。
闲话少说,先呈上方法:
一、硬件准备
1. 变身短信中心是需要使用到USB卡托的,大家可以自行上淘宝选购。选购前请参考这个列表(关于为什么要参考这个列表,留个悬念先):
- https://github.com/bg111/asterisk-chan-dongle/wiki/Requirements-and-Limitations
复制代码
2. SIM卡一张。注意要能在您购买的卡托上使用(废话!)
3. 可以正常使用的N1一台(。。。)
二、N1软件准备
1. 先刷好Armbian,具体过程不再赘述。如果您不打算自己编译相关驱动的话,请安装5.62 Ubuntu版本:https://yadi.sk/d/pHxaRAs-tZiei/5.62/20181018
20190103更新:N1下USB卡托驱动的编译方法
2. (可选) 使用以下内容替换系统默认源 /etc/apt/sources.list 的内容:
- # 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
- deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main restricted universe multiverse
- # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main restricted universe multiverse
- deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main restricted universe multiverse
- # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main restricted universe multiverse
- deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main restricted universe multiverse
- # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main restricted universe multiverse
- deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main restricted universe multiverse
- # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main restricted universe multiverse
复制代码
3. (可选) 更新系统。
- apt-get update
- apt-get upgrade -y
复制代码
4. 安装gammu,gammu-smsd,还有modeswitch
- apt-get install gammu gammu-smsd usb-modeswitch
复制代码
5. 自己编译modem驱动。如果使用了上面指定的5.62 Ubuntu版本的话,可以到这里下载:
- https://yadi.sk/d/miecdJGCqmwqgw
复制代码
下载下来后,将3个.ko文件放到N1的这个目录:
- /lib/modules/4.19.0-rc7-aml-s9xxx/kernel/drivers/usb/serial/
复制代码
6. 重启N1
7. 执行lsusb,如果不出意外,应该是类似下面的提示:
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 12d1:1c0b Huawei Technologies Co., Ltd. E173s 3G broadband stick (modem off)
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
蓝色的字样表示modem并没有启用,我们后面的工作就是要让modem自动启用。
请将红色的字样"12d1:1c0b"记录下来,然后跟着第8步往下走。
如果蓝色的字样如下所示,是“modem on”的话,那么可以直接跳到第12步。
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 007: ID 12d1:1c05 Huawei Technologies Co., Ltd. Broadband stick (modem on)
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
8. 解压相关的配置文件。注意,红色部分替换为上一步得到的字符串:
cd /usr/share/usb_modeswitch/
tar xf configPack.tar.gz 12d1\:1c0b
这一步执行完毕后,在/usr/share/usb_modeswitch目录下应当出现一个名为“12d1:1c0b”的文件。
9. 增加下面一行到文件: /lib/udev/rules.d/40-usb_modeswitch.rules 中,最后一行之前:
ATTR{idVendor}=="12d1", ATTR{idProduct}=="1c0b", RUN+="usb_modeswitch '/%k'"
注意替换红色文字。
10. 重启N1
11. 重启完毕后等待30秒到一分钟,再次执行 lsusb ,结果中应当看到“modem on”的字样:
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 007: ID 12d1:1c05 Huawei Technologies Co., Ltd. Broadband stick (modem on)
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
12. 执行命令 usb-devices ,应当看到下面的结果:
T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 3 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=12d1 ProdID=1c05 Rev=01.02
S: Manufacturer=HUAWEI
S: Product=HUAWEI Mobile
C: #Ifs= 5 Cfg#= 1 Atr=80 MxPwr=500mA
I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
I: If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
I: If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
I: If#= 3 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
I: If#= 4 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
注意,请一定要确认这时候Driver后面应当是option这个字样。如果是none的话,请检查第5步是否已经成功执行。如果还是不行,请使用dmesg察看错误信息。
13. 执行下面的命令,应当看到类似的结果:
- # ls -l /dev/ttyUSB*
- crw-rw---- 1 root dialout 188, 0 Nov 26 14:29 /dev/ttyUSB0
- crw-rw---- 1 root dialout 188, 1 Nov 25 21:35 /dev/ttyUSB1
- crw-rw---- 1 root dialout 188, 2 Nov 25 21:35 /dev/ttyUSB2
复制代码
14. 创建文件 /etc/gammurc ,填入如下内容:
- [gammu]
- port = /dev/ttyUSB0
- model =
- connection = at19200
- synchronizetime = yes
- logfile =
- logformat = nothing
- use_locking =
- gammuloc =
复制代码
注意:connection后面填入什么样的数据,各个卡托是不一样的。请在下面网页中搜索你的卡托型号,然后参考进行设置:
https://wammu.eu/phones/
15. 执行下面命令,应该看到类似内容,否则需要回到上一步检查配置:
- # gammu identify
- Device : /dev/ttyUSB0
- Manufacturer : Huawei
- Model : E173 (E173)
- Firmware : 21.017.04.00.18
- IMEI : XXXXXXXXXXXXXXXX
- SIM IMSI : XXXXXXXXXXXXXXX
复制代码
16. 创建文件 /etc/gammu-smsdrc , 填入以下内容:
- # Gammu library configuration, see gammurc(5)
- [gammu]
- # Please configure this!
- port = /dev/ttyUSB0
- connection = at19200
- # Debugging
- #logformat = textall
- # SMSD configuration, see gammu-smsdrc(5)
- [smsd]
- service = files
- logfile = syslog
- # Increase for debugging information
- debuglevel = 0
- RunOnReceive = /root/git/lab/n1/post-receive-sms.py
- # Paths where messages are stored
- inboxpath = /var/spool/gammu/inbox/
- outboxpath = /var/spool/gammu/outbox/
- sentsmspath = /var/spool/gammu/sent/
- errorsmspath = /var/spool/gammu/error/
复制代码
接收到的短信会放到inboxpath制定的文件夹中,RunOnReceive 后面跟的就是接收到短信后的需要执行的脚本,在脚本里面,你就可以做任意你想要做的事情了。
17. 一个示例的的RunOnReceive脚本,作用是收到短信后,发送到telegram聊天群中:
- #!/bin/bash
- TOKEN=$(</etc/telegram/token)
- CHAT_ID=$(</etc/telegram/chat-id)
- URL="https://api.telegram.org/bot$TOKEN/sendMessage"
- for i in `seq $SMS_MESSAGES` ; do
- eval "curl -s -X POST $URL -d chat_id=$CHAT_ID -d text="From \${SMS_${i}_NUMBER}:\${SMS_${i}_TEXT}""
- done
复制代码
我们适当调节RunOnReceive脚本的内容,就可以随心定义短信中心的功能了!
18. 执行下面的命令启动短信监控的服务进程:
- systemctl start gammu-smsd
复制代码
执行下面的命令检查daemon是否启动成功:
- systemctl status gammu-smsd
复制代码
好了,现在你可以愉快的给卡托中的SIM卡发短信了~!
最后,为什么要买 https://github.com/bg111/asterisk-chan-dongle/wiki/Requirements-and-Limitations 中列出的卡托呢?这是为了将我们的N1变为一个真正的呼叫中心做准备。装好FreePBX后,我们可以在全世界任何地方,通过SIP来接听通过卡托打入的电话,也可以通过这个卡托打出电话了。
考虑一个移民党/留学党的场景:配置好N1后,将短信和FreePBX配置好,放在中国的家中。这样就能够:
1. 在美国通过SIP连到N1,使用中国的资费和老号码跟中国的老同学尽情接、打电话(这个场景本贴中未有实现哦~)。
2. 通过上面提到的RunOnReceive脚本,任意转发银行验证短信
还有很多好玩的用法,这就需要大家集思广益了。
最后,感谢yangxuan8282, xjpower的先期探索和帮助!
|
评分
-
查看全部评分
|