9394952

导航

树莓派配置asterisk,可以打电话出去 【转】

文章转自:

https://www.douban.com/group/topic/91587543/

 

主要是省去了电话布线的费用。当然如果与vpn结合,还可以省移动话费。在有wifi的地方都可以打电话

手机上的client包括bria,zoiper。pc/notebook上的软件是x-lite

需要买一个账号,各地价格在10-50元/月,略有不同。对企业而言主要是需求的差别

安装asterisk后,主要就是sip.conf和extensions.conf两个文件需要配
安装命令:
sudo apt-get install asterisk asterisk-config asterisk-core-sounds-en-gsm

配置:
一般是先建立几个分机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()


打进来的配置
在上级SIP服务器给自己开了个分机127,家里分机301-304
在原来register的context中,加入拨入的入口

[outgoing]
type=friend
secret=127
username=127
host=172.16.3.218
dtmfmode=rfc2833
canreinvite=no
disallow=all
allow=ulaw
allow=alaw
allow=gsm
insecure=port,invite
context=incoming


在extensions.conf文件中,考虑到不是每台设备都登录
[incoming]
exten => s,1,Wait(1) ; Wait a second, just for fun
exten => s,n,Answer ; Answer the line
exten => s,n,Dial(SIP/301&SIP/302&SIP/303&SIP/304,${RINGTIME},r)
exten => s,n,Hangup()

下面是拨127时,家里asterisk的信息(家里用127注册到上级的asterisk)
== Using SIP RTP CoS mark 5
-- Called SIP/301
[Jun 10 08:11:29] WARNING[2088]: app_dial.c:2218 dial_exec_full: Unable to create channel of type 'SIP' (cau
se 20 - Unknown)
[Jun 10 08:11:29] WARNING[2088]: app_dial.c:2218 dial_exec_full: Unable to create channel of type 'SIP' (cau
se 20 - Unknown)
[Jun 10 08:11:29] WARNING[2088]: app_dial.c:2218 dial_exec_full: Unable to create channel of type 'SIP' (cau
se 20 - Unknown)
-- SIP/301-00000007 is ringing
-- SIP/301-00000007 answered SIP/outgoing-00000006
-- Locally bridging SIP/outgoing-00000006 and SIP/301-00000007
== Spawn extension (incoming, s, 3) exited non-zero on 'SIP/outgoing-00000006'
== Using SIP RTP CoS mark 5
-- Executing [s@incoming:1] Wait("SIP/outgoing-00000008", "1") in new stack
-- Executing [s@incoming:2] Answer("SIP/outgoing-00000008", "") in new stack
-- Executing [s@incoming:3] Dial("SIP/outgoing-00000008", "SIP/301&SIP/302&SIP/303&SIP/304,,r") in new s
tack
这是运行时的sip show users,家里的分机,301,302,303,304。用上联分机127的口令登录
OpenWrt*CLI> sip show peers
Name/username Host Dyn Forcerport ACL Port Status
301/301 192.168.3.110 D N 40019 Unmonitored
302 (Unspecified) D N 0 Unmonitored
303 (Unspecified) D N 0 Unmonitored
304 (Unspecified) D N 0 Unmonitored
outgoing/127 172.16.3.218 N 5060 Unmonitored
5 sip peers [Monitored: 0 online, 0 offline Unmonitored: 2 online, 3 offline]
[Jun 10 08:17:12]

penWrt*CLI> sip show users
Username Secret Accountcode Def.Context ACL ForcerPort
outgoing 127 incoming No Yes
304 104 local No Yes
302 102 local No Yes
303 103 local No Yes
301 101 local No Yes

posted on 2021-02-16 18:04  9394952  阅读(875)  评论(0编辑  收藏  举报