我的asterisk 接入电信ims之旅【把电信座机提取到手机上,实现手机不插卡也用打电话】

第一步、配置光猫。

注意事项:登录光猫用超级管理员的账号密码,光猫后面的那个是普通用户的,创建不了网络连接。

1.进入光猫提取voip【就是座机的配置信息】

上图的主服务器地址、主用端口、outbound地址、outbound端口、电话号码,用户名,密码,这些选项必须知道,后面在配置asterisk会用到。

2.在网络/网络设置/网络连接 这个地方 连接名称选择含有voice的,比如我这个地方 【见下图】名称为“2_VOICE_R_VID_45”,记录  封装类型,连接模式,IP模式,MTU,启用VLAN,VLAN ID,802.1p,地址获取方式。

3.新建一个连接,并配置相关信息,最后点击保存

4.这个时候我们就配置好了一个非语音专属的语音通道了(如果业务类型是语音的话,后面我们端口映射的时候是无法选择的,如果是其他就可以选择。),创建完了以后等个两三分钟,在进行下面的操作,如果是能ping通,就是time=后面是有xx ms的就是通的。【注意目的地址是填入之前记录的outbound地址哦!!!!】。能ping通以后,我们就可以继续往下走了。


5.配置客户机上的路由,让nas或者是搭建asterisk的机器能够ping通outbound的服务器地址。【如果是桥接光猫出来拨号的话,这种需要再插根网线之类的,来获取到光猫分配的ip地址,然后使用route命令来让outbound 的ip走光猫。比如我的outbound是172.28.128.249,由于这个地址到时候解析出来的可能不是固定的,可以使用前16位网络号走光猫,比如我的光猫IP是192.168.201.1/24,那么我的电脑接光猫的那张网卡就是192.168.201.0/24这个网段的,我的linux下的命令就是ip route add 172.28.0.0/16 via 192.168.201.1,如果是windows那就是route add 172.28.0.0/16 192.168.201.1】。
下图是我linux下ping  outbound地址成功的截图。

6.到第五步的时候,我们去配置asterisk的时候就能拨通了,但是会发现没有声音,因为还少配置了一个
RTP端口,因为每建立一个通信就需要一个端口作为语音传输,我这由于是通过光猫新建连接来获取的语音IP地址,并不是桥接的,所以光猫其实还做了个语音服务的一个路由。所以我们还需要添加端口映射,因为我们打电话到座机的时候,是光纤进来,所以就是我们对外提供服务。


第二步,配置asterisk


1.我使用的是ubuntu18.04,搭建的话就是用命令apt install asterisk,就可以进行安装了。

2.安装完成后,备份以下文件后,删除原本文件
/etc/asterisk/sip.conf
/etc/asterisk/extensions.conf

使用nano 编辑器或者其他编辑器编辑sip.conf文件如下
[general]
bindport=5060
bindaddr=0.0.0.0
;context=default
allowguest=yes
nat=yes
allowoverlap=dtmf
dtmfmode = rfc2833

;videosupport=yes
;allow=h263
;allow=h263p
;allow=h264

register=+863116906XXXX@ims.he.chinamobile.com:abcdefgh:863116906XXXX@ims.he.chinamobile.com@10.255.1.5:5060

;这是路由器向移动SIP服务器进行话机注册要用到的信息,用颜色对应IMS配置的相关参数,在这里我被坑得很惨,试了很多次才能登录成功。【此处我搬运的可以响应对照前面提取的信息进行修改。】

;abcdefgh指的是sip密码,是前面让收集的。10.255.1.5是outbound地址,5060是outbound端口,号码和域名就不说了。

;复制配置文件的时候最好把中文注释去掉,不然有可能会出现配置文件解析失败,导致asterisk一直都配置不上。

;这个配置文件里英文分号是注释的意思,不要用#号!

[trunk_ims]
host=10.255.1.5
username=863116906XXXX@ims.he.chinamobile.com
secret=abcdefgh
type=friend
insecure=port,invite
fromdomain=ims.he.chinamobile.com
;fromuser这个地方自己改成自己的座机号。

fromuser=+863116906XXXX
dtmfmode=inband
context=external
trustrpid=no
sendrpid=no
canreinvite=no

;下面的以上是建立1001和1002两个用户,secret是密码选项的意思,也就是说1001账户的密码是1001,1002账户密码就是1002

[1001]
type=friend
secret=1001
host=dynamic
context=internal
dtmfmode=rfc2833

[1002]
type=friend
secret=1002
host=dynamic
context=internal
dtmfmode=rfc2833

使用nano 编辑器或者其他编辑器编辑extensions.conf文件如下

[general]

[internal] # to out
exten => _1XXX!,1,Dial(SIP/${EXTEN})
exten => _1XXXXXXXXXX!,1,Dial(SIP/${EXTEN}@trunk_ims,60,r)
;   X - any digit from 0-9
;   Z - any digit from 1-9
;   N - any digit from 2-9

; _表示从头匹配,!是表示匹配到末尾,

;我这里的两条播出去的规则是如果是4位的号码,则认为是我们自己的号码,进行内网拨号【不消耗宽带语音通话时长的】,如果是11位的号码,则认为就是外部号码,则从宽带电话拨出去,这个时候是会消耗宽带的语音的。

 

[external] # out to in
exten => s,1,Answer
exten => s,n,Dial(SIP/1001)
;这个是别人打我们的座机号打进来的,这个地方打进来后,默认转接到1001这个账号上面,也就是说如果1001这个账号在线,别人打进来就可以直接转接到1001,如果1001不在线,则会提示用户正忙之类的语音。

使用nano 编辑器或者其他编辑器编辑extensions.conf,添加rtpstart=50001和rtpend=50025两句。

最后重启asterisk服务。

service asterisk restart

我的系统是ubuntu18.04,有service这个命令,其他的系统请自行百度。

 第三步 配置手机端。

随便百度个voip的客户端软件,填入搭建asterisk机器的ip,填入在sip.conf里定义的账户和密码,就能进行电话拨打了。【据我了解原生安卓电话自带voip的功能可以直接去设置,miui9以前的android系统也支持。】
 

有条件的可以在电脑上配置也行,windows下使用esaySip,软件自行百度。

 最后附上我的网络拓扑图【画的不好,大神勿喷,仅供参考。】

参考来源:

1.extension语法:

asterisk/extensions.conf.sample at master · asterisk/asterisk · GitHub2

 2.asterisk   sip.conf和extensions.conf 配置:

PandoraBox+asterisk对接河北移动IMS固话+自制彩铃-恩山无线论坛3

3.华为光猫超级密码解密: 

华为新光纤光猫破解超密管理员密码教程 | 若夜彼岸




 

4.光猫语音鉴权密码提取:

破解光猫,获取超级管理员密码和语音鉴权密码,自己动手换光猫 - 腾讯云开发者社区-腾讯云

5. 外呼无声音?配置rtp:

https://www.iteye.com/blog/hwzyyx-764005

6.想要自己制作彩铃?【高级教程!】

如何将语音文件转换为Asterisk可以播放的音频格式文件(.wav)_weixin_33739646的博客-CSDN博客

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值