首页 > 服务器 > 华为e180+openwrt+asterisk15+dongle实现手机卡转sip

作者:ghostry 发布时间:2018-03-02 浏览: 1113

转载注明出处: https://blog.ghostry.cn/server/869.html

硬件设施:
华为e180,yk-l1,小米任我行。
软件:
DC-unlocker clientUniversal_MasterCodeE180Update_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-base64mailsend,还需要有一个支持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以此类推。这样收到短信后发到指定邮箱。

标签: openwrt sip asterisk

上一篇: 狐妖梦
下一篇: nfs不能使用chown解决

添加新评论 »

*
*

欢迎评论!歡迎評論!Comments welcome!komentoj bonvenaj!댓글 오신 것을 환영합니다!
:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: :cold: :cryy: :cute: :shy: :sleep: :struggle: :tea: :yahou: