找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 41125|回复: 158

树莓派+LEDE,用asterisk,手机可以用wifi打出到电话网,费用算在固定电话上

  [复制链接]
本帖最后由 stevemorrislian 于 2017-6-21 16:36 编辑

首先,我等不及开树莓派专版就想把最近做的发上来;另外sip账号在上海10元/月,免费试用的很多,但真的也就是试用
*************************************************************************************************************************************************这一段是为扫盲,后加的,知道基本概念的请跳过
asterisk是一个voip软件,voice on IP,通过internet网络协议打电话。目前最红的是SIP协议
不需要电话线路,用SIP账号登录到提供语音网关的服务器(有公网IP地址,一般有PRI等线路与电话网衔接),就可以与电话网络的话机,手机通讯
asterisk是服务器软件,在voip服务器中的特点就是内核小,以可以装入路由器著称,openwrt上就可以装,我在12M内存上也成功运行了;终端可以是网络电话机(eth口的电话机,dhcp得到内网IP),PC机(以太网口或者wifi的笔记本),平板,安卓电视盒,也可以是手机(用wifi,无所谓电信/联通还是移动)当然还有安卓手表
与asterisk相同的软件有很多,著名的有elastix,他们一般用于centos服务器,特点是扩展性强(如果你选的是虚拟机安装,随时可以扩大)。微软的lynx也是公司内应用著名代表.

sip协议的client软件很多,在PC上是X-Lite,我一般推荐Zoiper,免费,可以运行在各种手机上(iPhone,android,WP10),收费的更多,比如Bria。支持L2TP(virtual**)的以太网电话座机也在淘宝上可以买到(用于在家里打出公司的电话,带l2tp的virtual**)。

本文的基本配置完全可以在其他OpenWRT设备上运行asterisk。我自己就是在mikrotik的metarouter上先成功运行OpenWRT,然后推广到其他OpenWRT的。愿意给mikrotik做个广告,tunnel特别多,你懂的!!!
***************************************************************************************************************************************************




然后我要承认LEDE只是幌子,因为这里是OpenWRT版,而树莓派不装LEDE也完全可以运行Asterisk,除了Rasbian,有人专门做了RAS-PBX。而且LEDE支持的似乎还很旧。我自己没有用LEDE,原因也比较奇葩:我不喜欢WEB配置界面,而宁愿写*.conf, 当然web上手还是很快的,asterisk就有一个GUI
废话少说这是LEDE上装asterisk的命令


opkg install asterisk18 asterisk-gui asterisk18-app-system asterisk18-chan-local










    油管上有个阿拉伯语的安装视频,听不懂也能看懂。用路由器的最大优势是:谁家可以省掉路由器?你可以没有pc,没有电视盒,没有fq,这些功能树莓派都可以代替! 但是,缺啥再补啥,树莓派毕竟还小。我建议与路由器分开,主要是与防火墙隔离,因为拨号机器人(听名字就知道历史比人工智能,大数据,模糊决策等久远)比我们想的厉害的多



    好在linux上的应用一般只要配置,保存sip.conf和extensions.conf两个文件就可以,asterisk的GUI下配置的还要备份好users.conf


如果在树莓派的Rasbian操作系统下,也就是不用OpenWRT,那么命令是











    sudo apt-get install asterisk asterisk-config asterisk-core-sounds-en-gsm

需要asterisk-gui的同学自己再找找网上的资源。如果不喜欢自己配置,有个试用minisipserver也很不错。不过树莓派的精神是重在折腾,这类收费我们是不去的。
再继续看下去之前,建议先看看 https://zh.wikibooks.org/zh/Asterisk权威指南/前言,搞清楚几个电话上的概念。我的另一个帖子把asterisk装在routerboard的虚拟机中,metaRouter,有兴趣也可以看看
接下来是配置,一般是先建立几个分机101~104。在sip.conf下,一般添加在最后
[101]
type=friend
host=dynamic
secret=101
context=local
dtmfmode=rfc2833

[102]
type=friend
host=dynamic
secret=102
context=local
dtmfmode=rfc2833

[103]
type=friend
host=dynamic
secret=103
context=local
dtmfmode=rfc2833

[104]

type=friend
host=dynamic
secret=104
context=local
dtmfmode=rfc2833


在extendions.conf的文件中,【local】下,注意刚才每个分机下都有context=local

exten => 101,1,Dial(sip/101)

exten => 102,1,Dial(sip/102)

exten => 103,1,Dial(sip/103)

exten => 104,1,Dial(sip/104)
而后就可以试试相互间是否可以打通了:手机上装一个sip软件(看附件的图),有很多;我自己是zoiper,原因又是奇葩的:je suis 1%er.也就是windows手机,而zoiper支持android/iPhone和win10手机。一般要设置的就是你树莓派的IP地址(最好和wifi在同一个网段上,虽然ping通的IP都是可以得,但是现在是最简单的情形下,还没考虑NAT等的复杂环境),分机号101,102,103,104都可以,口令(就是secret)也是。然后就先庆祝一下吧,毕竟第一次打通电话已经很开心了**** 除了IP地址(手机软件可能问你要的是domain),其他都填101,可以空着先空着,别影响庆祝


接下去就是如何打电话出去,直奔主题,买一个账号,应该也会告诉你
1,电话号码(打出后别人要看到你的号码;
2,账户(一般就是电话号码);
3,服务器的IP,或者domain(用dns翻译到IP地址);

服务好的也会给你一个sip.conf下的例子,不同provider下多少会有些不同
要把这些放进sip.conf文件中———找到【general】加上一行register
[general]
context=public                  ; 一般加在这句之后
register => 号码:口令@IP地址


然后在sip.conf文件最后,也就是我们已经建立的[101]...[104]之后
[outgoing]                                          ;随便取个名字,在extensions.conf下会用到这名字
type=friend
secret=得到的密码
username=账户
host=ip地址或域名
dtmfmode=rfc2833
canreinvite=no
disallow=all
allow=ulaw
allow=alaw
allow=gsm
insecure=port,invite
context=incoming                                 ;设置打进来时再考虑


在extensions.conf文件【local】下,拨号规则
;如果拨了5位数以上,以9开头,就把电话打到外线去
exten => _9XXXX.,1,Log(NOTICE,Dialout from ${CALLERID(all)} to ${EXTEN:1})
exten => _9XXXX.,n,Set(CALLERID(num)=提供的电话号码)
exten => _9XXXX.,n,Dial(SIP/outgoing/${EXTEN:1},60)  ;其中outging就是刚才在sip文件最后建立的context,{EXTEN:1}是你打出的号码,去掉了9。如果不要外拨9起始, _9XXXX.就改为_XXXXX.,{EXTEN:1}改为{EXTEN}相关的语法看权威指南
exten => _9XXXX.,n,Playtones(congestion)
exten => _9XXXX.,n,Hangup()


只是为了表示位置,这些是刚才加的
exten => 101,1,Dial(sip/101)
exten => 102,1,Dial(sip/102)
exten => 103,1,Dial(sip/103)
exten => 104,1,Dial(sip/104)

细节问题慢慢解释,我也还在看。因为打出电话了,有点兴奋,都不知道自己写了啥,以后补充吧

**********************************************************
关于两个asterisk系统相互对打电话

其实真正的问题是如何分布电话内部分机号码,最好先画好图再做;新加了一台,上面的号码都是2XX,原来那台上都是1XX。
sip.conf文件要修改的部分
【general】
register => ast88:pwg2202@192.168.88.11 ;这一行的账号和口令在另一台服务器上设定【ast88】下,与下面【ast3】格式一样


;最好增加这两行,如果登记不成功不会无限制的做下去,限时20秒,限制20次
registertimeout=20
registerattempts=10



[ast3] ;这个是被拨入的定义
type=friend
secret=pwg1101
host=dynamic ;允许另一台从任何IP来
username=ast3
disallow=all
allow=ulaw
allow=alaw
context=local ;这个local就是diaplan里用到的拨号定义



[ast88];这个是拨出的定义
type=friend
username=ast88
secret=pwg2202
host=192.168.88.11 ;另一台服务器的IP
fromuser=ast88
context=local
dtmfmode=rfc2833
insecure=very
disallow=all
allow=ulaw
allow=alaw



extensions.conf文件
【local】    ;与context=local 先对应的部分
增加了这样一句,我定义1开头的3位数都在ast88(另一台服务器)
exten => _1XX,1,Dial(sip/${EXTEN}@ast88,40)

进入asterisk -vvvr后,sip reload,dialplan reload,应该可以看到(本机ast3,另一台ast88)

Connected to Asterisk 11.13.1~dfsg-2+b1 currently running on raspberrypi (pid = 653)
raspberrypi*CLI> sip show peers
Name/username             Host                                    Dyn Forcerport Comedia    ACL Port     Status      Description
201                       (Unspecified)                            D  Auto (No)  No             0        Unmonitored      
202                       (Unspecified)                            D  Auto (No)  No             0        Unmonitored      
203/203                   (Unspecified)                            D  Auto (No)  No             0        Unmonitored      
204/204                   (Unspecified)                            D  Auto (No)  No             0        Unmonitored      
ast3/ast3                 192.168.88.11                            D  Auto (No)  No             5060     Unmonitored      
ast88/ast88               192.168.88.11                               Auto (No)  No             5060     Unmonitored      
6 sip peers [Monitored: 0 online, 0 offline Unmonitored: 2 online, 4 offline]
raspberrypi*CLI>



****************************************************************************
最常用命令
sip show users
sip show peers
sip show peer 201      ;显示201分机,是一个连上来的分机
dialplan show local      ;显示local,这是一个拨号的定义

做了任何修改都需要重新启动一下才起作用
如果sip.conf做了修改:
raspberrypi*CLI> sip reload

extensions.conf改动后,命令是
raspberrypi*CLI>dialplan reload



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

评分

参与人数 1恩山币 +1 收起 理由
wee*** + 1 亲,你这么厉害,我想做你的经纪人!

查看全部评分

我的恩山、我的无线 The best wifi forum is right here.
设置参数怎么搞呢?
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

没了???
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

来自手机 | 显示全部楼层
这就安装给包包?

点评

树莓派上的包包不需要我发,网络连上就能装的  详情 回复 发表于 2016-9-5 23:19
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
xuefulin 发表于 2016-9-5 23:15
这就安装给包包?

树莓派上的包包不需要我发,网络连上就能装的
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

之前想搞网络电话来着,不太懂,现在竟然有现成的,马克
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

来自手机 | 显示全部楼层
现在即时通讯都带sip功能,搞来做什么

点评

做sip的服务器。 就是因为各种设备都带有sip功能,我的智能电视和手表都能直接打电话了。另外,如果给他一个公网的IP,你在星巴克喝café时,打出电话也不需要向移动付费啊  详情 回复 发表于 2016-9-6 21:49
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

66666 我来顶个贴
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
copperfiled 发表于 2016-9-6 00:42
现在即时通讯都带sip功能,搞来做什么

做sip的服务器。
就是因为各种设备都带有sip功能,我的智能电视和手表都能直接打电话了。另外,如果给他一个公网的IP,你在星巴克喝café时,打出电话也不需要向移动付费啊
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
想做两个服务器对打,谁有经验做个指点?好在我的routeboard可以做虚拟机和树莓派对打
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

mark下,等更。。。。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

来自手机 | 显示全部楼层
进来学习,谢谢分享。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

来自手机 | 显示全部楼层
好是好,然而都用微信了

点评

我也用facebook/twitter/google+,但是上班是上班,朋友圈内我不希望和工作混在一起。工作的时候还是用linkedin  详情 回复 发表于 2016-9-9 23:13
微信只能和朋友对话,不是电话网。倒是skype提供打到电话的功能,就是付费的部分。实际上skype也提供sip账号,asterisk是可以与之对接的 对公司而言,客户看到的是总机的号码而不是员工的手机号,对员工而言,上班  详情 回复 发表于 2016-9-9 23:08
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
lcsuper 发表于 2016-9-8 21:17
好是好,然而都用微信了

微信只能和朋友对话,不是电话网。倒是skype提供打到电话的功能,就是付费的部分。实际上skype也提供sip账号,asterisk是可以与之对接的
对公司而言,客户看到的是总机的号码而不是员工的手机号,对员工而言,上班就不该用自己的话费。实际上即使不在公司内,我也可以virtual**先到自己公司网络,再打电话出去。手机是自己的,话费是公司的。就花费而言,公司也是省话费的,因为这不是移动的话费,而是固话的话费
钉钉之类的应用,其实也是用sip的,只是他们提供企业服务器,而我用的是树莓派。实际上我更推荐mikrotik的metaRouter方案,他的路由器上可以开一个很小的虚拟机,也就是把公司的电话交换机放进了路由器里。局域网是不会不需要路由器的
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
lcsuper 发表于 2016-9-8 21:17
好是好,然而都用微信了

我也用facebook/twitter/google+,但是上班是上班,朋友圈内我不希望和工作混在一起。工作的时候还是用linkedin
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-4-28 02:15

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表