首页 > 服务器 > 华为e180+openwrt+asterisk15+dongle实现手机卡转sip
作者:ghostry 发布时间:2018-03-02 浏览: 14287
转载注明出处: https://blog.1ge.fun/server/869.html硬件设施:
华为e180,yk-l1,小米任我行。
软件:
DC-unlocker client,Universal_MasterCode,E180Update_11.126.10.01.68.B418,Mobile Partner,openwrt commit 2995d9dfee4cd5a24ff30d15ac9168c9fd443625,Windows 7,Ubuntu 1604,asterisk15.2.2,asterisk-chan-dongle,等
1,首先,先解锁设备,在window下,插上e180
装驱动,正常情况插上会出现驱动光驱的自动运行,跟着引导走就好。
装好驱动后关掉自带软件。
打开DC-unlocker
,点放大镜图标。会显示出来设备的信息。
Voice feature : disabled
SIM Lock status : unlocked
主要看这两个,unlocked说明已解锁,voice的支持有时候显示的并不对,在信息框最下边输入
AT^cvoice=?
如果返回^ CVOICE:(0)
说明语音功能开启,如果返回^ CVOICE:(1)
说明禁用。
禁用需要AT^cvoice=0
,让他开启,如果返回error
,按照这里的说明重新解锁。
解锁完成后使用Mobile Partner进行测试,确认已经可以拨打接听电话后进行下一步。
2,现在把yk-l1装上openwrt,我选择的是master版本,安装asterisk可以从路由器装,也可以编译进去。
需要有这几个包,asterisk15-app-system,asterisk15-chan-dongle,asterisk15-chan-sip,asterisk15-codec-*,asterisk15-format-*,asterisk15-res-rtp-asterisk,编码格式我选择都装,反正没多大。这里如果缺少编码后边会出No path to translate from
错误,我选择编译安装,因为是master版本,进路由安装的话,kmod会提示错误。
装好后插上e180进行配置,首先ls /dev/
看看有没有ttyUSB出现,应该有3个。
cd /etc/asterisk
vi users.conf
asterisk -vvvvvvcgr
dongle show devices
vi dongle.conf
imei和imsi改为真实的。还有这两个值改为
context=dongle-incoming
exten=s
vi extensions.conf
增加下面这些。
[test]
exten => 用户1号码,1,Dial(SIP/用户1号码)
exten => _X.,1,Dial(Dongle/i:IMEI号码/${EXTEN})
exten => _X.,n,Hangup
[dongle-incoming-sms]
exten => sms,1,Noop(Incoming SMS from ${CALLERID(num)} ${BASE64_DECODE(${SMS_BASE64})})
exten => sms,n,System(echo '${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)} - ${DONGLENAME} - ${CALLERID(num)}: ${BASE64_DECODE(${SMS_BASE64})}' >> /var/log/asterisk/sms.txt)
exten => sms,n,Hangup()
[dongle-incoming-ussd]
exten => ussd,1,Noop(Incoming USSD: ${BASE64_DECODE(${USSD_BASE64})})
exten => ussd,n,System(echo '${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)} - ${DONGLENAME}: ${BASE64_DECODE(${USSD_BASE64})}' >> /var/log/asterisk/ussd.txt)
exten => ussd,n,Hangup()
[dongle-incoming-call]
exten => s,n,Goto(from-trunk,${DID},1)
exten => s,1,Dial(SIP/用户1号码,60,wWxXT)
exten => s,n,Hangup()
[dongle-incoming]
include => dongle-incoming-sms
include => dongle-incoming-ussd
include => dongle-incoming-call
然后重启/etc/init.d/asterisk restart。顺利的话就可以接打电话了。呼入电话会转到用户1接听。
3,如果想收短信,需要安装asterisk15-func-base64
,mailsend
,还需要有一个支持SMTP的邮箱。
然后在[dongle-incoming-sms]
中sms,n,System
后增加一行
exten => sms,n,System(mailsend -smtp 邮箱smtp域名 -port smtp的ssl端口 -t 发送目标邮箱地址 -f 来源邮箱地址 -sub '${CALLERID(num)}: ${BASE64_DECODE(${SMS_BASE64})}' -ssl -auth -user 邮箱用户名 -pass '邮箱密码' -msg-body /var/log/asterisk/sms.txt)
ussd以此类推。这样收到短信后发到指定邮箱。
发送短信
sudo asterisk -rx 'dongle sms dongle0 +86########### "Sent from my Netbook~"'
上一篇: 狐妖梦下一篇: nfs不能使用chown解决
网盘链接失效了,能帮忙再分享一下吗,谢谢!
能共享下破解e180的固件和软件么,你的链接都打不开了。谢谢了!
链接: https://pan.baidu.com/s/1LFAxkYztGkqsdxwOVBZiNA 提取码: ms77