对asterisk的一些研究

对asterisk的一些研究

这段时间一直在研究asterisk,是基于《Asterisk™ The Future of Telephony》这本书展开的,涉及asterisk的安装,调试,SIP,IAX,以及一些基本的配置等,这里对测试的脚本进行留存

 

因为我们用的asterisk大部分都装了 freepbx等,配置文件看起来超复杂,找不到重点,这里的保留最原始的。。

 

配置SIP分机用的,这个文件其实可以超简单的。。

sip.conf  

 

[general]
register => tontone:123456@192.168.0.105/asaka

 

[asaka]
type=friend
host=192.168.0.105
context=asaka_incoming
secert=123456

[1000]
type=friend
host=dynamic
context=from-internal

 

[2000]
type=friend
host=dynamic
context=from-internal
;requirecalltoken=no

 

配置IAX用的。。

iax.conf

[general]
autokill=yes

register => asaka:123456@192.168.0.105

 

[tontone]
type=friend
secret=123456
host=dynamic
context=incoming_tontone
trunk=yes
;requirecalltoken=no

[zoiper]
type=friend
host=dynamic
context=from-internal

配置dahdi

chan_dahdi.conf

 

;# Flash Operator Panel will parse this file for dahdi trunk buttons
;# AMPLABEL will be used for the display labels on the buttons

;# %c Dahdi Channel number
;# %n Line number
;# %N Line number, but restart counter
;# Example:
;# ;AMPLABEL:Channel %c – Button %n

;# For Dahdi/* buttons use the following
;# (where x=number of buttons to dislpay)
;# ;AMPWILDCARDLABEL(x):MyLabel  

[channels]
language=en

; include dahdi extensions defined in FreePBX
#include chan_dahdi_additional.conf
#include dahdi-channels.conf

; XTDM20B Port #1,2 plugged into PSTN
;AMPLABEL:Channel %c – Button %n
;context=from-pstn
;signalling=fxs_ks
;faxdetect=incoming
;usecallerid=yes
;echocancel=yes
;echocancelwhenbridged=no
;echotraining=800
;group=0

;channel=1-2

usecallerid=yes
hidecallerid=no
callwaiting=no
threewaycalling=yes
transfer=yes
echocancel=yes
echotraining=yes
immediate=no
callerid=4001
; define channels

context=from-internal ; Uses the [internal] chntext in extensions.conf
signalling=fxo_ks ; Uses FXO signalling for an FXS channel
channel => 1 ; Telephone attached to port 1

context=from-pstn ; Incoming calls go to [incoming] in extensions.conf
signalling=fxs_ks ; Use FXS signalling for an FXO channel
channel => 2 ; PSTN attached to port 2

 

dahdi-channels.conf

 

; Autogenerated by /usr/sbin/dahdi_genconf on Tue Jun 22 16:59:35 2010 — do not hand edit
; Dahdi Channels Configurations (chan_dahdi.conf)
;
; This is not intended to be a complete chan_dahdi.conf. Rather, it is intended
; to be #include-d by /etc/asterisk/chan_dahdi.conf that will include the global settings
;

; Span 1: WCTDM/4 “Wildcard S400P Prototype Board 5” (MASTER)
;;; line=”1 WCTDM/4/0″
signalling=fxo_ls
callerid=”Channel 1″ <4001>
mailbox=4001
group=5
context=from-internal
channel => 1
callerid=
mailbox=
group=
context=default

;;; line=”2 WCTDM/4/1″
signalling=fxs_ks
callerid=asreceived
group=0
context=from-pstn
channel => 2
callerid=
group=
context=default

 

配置拔号方案
extensions.conf

[globals]
OUTBOUNDTRUNK=DAHDI/2
TELE=DAHDI/1
ZOIPER=IAX2/zoiper

[general]
autofallthrough=yes

[default]
exten => s,1,Verbose(1|Unrouted call handler)
exten => s,n,Answer()
exten => s,n,Wait(1)
exten => s,n,Playback(tt-weasels)
;exten => s,n,Dial(sip/1000,20)
;exten => s,n,Record(/var/spool/asterisk/monitor/asterisk-${EXTEN}-${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)}:wav)
exten => s,n,Hangup()

[incoming_tontone]
include => from-internal

exten => _105XXX.,1,Verbose(1|exten is 105XXX)
exten => _105XXX.,n,NoOp()
exten => _105XXX.,n,Dial(IAX2/tontone/${EXTEN:3},20)
exten => _105XXX.,n,Playback(the-party-you-are-calling&is-curntly-unavail)
exten => _105XXX.,n,Hangup()

[asaka_incoming]
exten => _135XXX.,1,Verbose(1|exten is 1055XXXX)
exten => _135XXX.,n,NoOp()
exten => _135XXX.,n,Dial(SIP/asaka/${EXTEN:3},20)
exten => _135XXX.,n,Playback(the-party-you-are-calling&is-curntly-unavail)
exten => _135XXX.,n,Hangup()

include => incoming_tontone
include => internal
include => call-out

 
[from-internal]
include => internal
include => incoming_tontone
include => asaka_incoming
include => call-out
include => test-waitexten

[internal]
exten => _XXXX,1,Verbose(1|Unrouted call handler)
exten => _XXXX,n,Answer()
exten => _XXXX,n,Wait(1.2)
exten => _XXXX,n,Dial(SIP/${EXTEN},20)
;exten => _XXXX,n,VoiceMail(2000@default,u)
exten => _XXXX,n,hangup()

exten => 8,1,Directory(default,incoming,f)
exten => 9,1,Directory(default,incoming)

exten => 456,1,Set(DB(test/count)=1)
exten => 456,n,Set(COUNT=${DB(test/count)})
exten => 456,n,SayNumber(${COUNT})

exten => 500,1,Macro(voicemail,SIP/2000)

exten => 600,1,MeetMeCount(600,CONFCOUNT)
exten => 600,n,GotoIf($[${CONFCOUNT} <= 10]?meetme:conf_full,1)
exten => 600,n(meetme),MeetMe(600,i,54321)
exten => conf_full,1,Playback(conf-full)

exten => 601,1,Playback(conf-thereare)
exten => 601,n,MeetMeCount(600)
exten => 601,n,Playback(conf-peopleinconf)

exten => 777,1,Macro(mysql,15921256331)

[test-waitexten]
exten => 123,1,Answer()
exten => 123,n,Background(enter-ext-of-person)
exten => 123,n,WaitExten()

exten => 2,1,playback(digits/2)
exten => 2,n,Goto(123,1)

exten => 3,1,playback(digits/3)
exten => 3,n,Goto(123,1)

exten => i,1,playback(pbx-invalid)
exten => i,n,Goto(123,1)

exten => t,1,playback(vm-goodbye)
exten => t,n,hangup()

[macro-voicemail-a]
exten => s,1,Dial(${ARG1},10)
exten => s,n,GotoIf($[“${DIALSTATUS}” = “BUSY”]?busy:unavail)
exten => s,n(unavail),Voicemail(${MCARO_EXTEN}@default,u)
exten => s,n,Hangup()
exten => s,n(busy),VoiceMail(${MCARO_EXTEN}@default,b)
exten => s,n,Hangup()

[macro-voicemail]
exten => s,1,Dial(${ARG1},20)
exten => s,n,Goto(s-${DIALSTATUS},1)
exten => s-NOANSWER,1,Voicemail(${MACRO_EXTEN},u)
exten => s-NOANSWER,n,Goto(incoming,s,1)
exten => s-BUSY,1,Voicemail(${MACRO_EXTEN},b)
exten => s-BUSY,n,Goto(incoming,s,1)
exten => _s-.,1,Goto(s-NOANSWER,1)

[macro-mysql]
exten => s,1,Set(NUM_tmp=${ARG1})
exten => s,n,GotoIf($[${NUM_tmp:0:1}=1]?judge)
exten => s,n,Set(DIAL_NUMBER=${NUM_tmp})
exten => s,n,Goto(continue)
exten => s,n(judge),Set(ExtenPre=${Num_tmp:0:7})
exten => s,n,MYSQL(Connect connid localhost freepbx fpbx test)
exten => s,n,MYSQL(Query resultid ${connid} select id from astest where phone=${ExtenPre})
exten => s,n,MYSQL(Fetch fechid ${resultid} id)
exten => s,n,Noop(${fechid})
exten => s,n,Set(DIAL_NUMBER=${IF($[${fechid}=0]?0${NUM_tmp}:${NUM_tmp}))
exten => s,n,MYSQL(Clear ${resultid})
exten => s,n,MYSQL(Disconnect ${connid})

[call-out]
exten => _XXX.,1,answer()
exten => _XXX.,n,wait(1)
exten => _XXX.,n,Monitor(wav,asterisk-monitor-${EXTEN}-%d})
exten => _XXX.,n,Dial(${OUTBOUNDTRUNK}/${EXTEN})
exten => _XXX.,n,Hangup()

[from-pstn]
;exten => s,1,Zapateller(nocallerid)
;exten => s,n,Playback(enter-ext-of-person)

exten => s,1,answer()
exten => s,n,wait(1.5)
;exten => s,n,Monitor(wav,asterisk-monitor-${EXTEN}-${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)})
exten => s,n,GotoIfTime(8:00-22:00,*,*,*?dial-tele,s,1)
;exten => s,n,Goto(from-internal,1000,1)
exten => s,n,Voicemail(2000,u)
exten => s,n,Hangup()

[dial-tele]
exten => s,1,Monitor(wav,asterisk-monitor-${EXTEN}-%d})
exten => s,n,Dial(${TELE},20,Tt)
;exten => s,n,Dial(${ZOIPER},20)
;exten => s,n,Verbose(1|test tele ${DIALSTATUS})
;exten => s,n,GotoIf($[“${DIALSTATUS}”=”CANCEL”]?cancel:)
exten => s,n(cancel),Hangup()

 

配置voicemail

voicemail.conf

 

[general]
#include vm_general.inc
#include vm_email.inc
[default]
2000 => 1234,Aaron,evane1890@gmail.com,chen_jiang_tao@hotmail.com
500 => 1234,Aaron2,evane1890@gmail.com,chen_jiang_tao@hotmail.com

 

 

配置会议

meetme.conf

 

[rooms]
#include meetme_additional.conf
conf => 600

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/100513.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java struts2 漏洞_struts2漏洞列表

    java struts2 漏洞_struts2漏洞列表【官方ID】S2-001【危害等级】高【受影响版本】WebWork2.1(开启altSyntax)WebWork2.2.0–WebWork2.2.5Struts2.0.0–Struts2.0.8【漏洞描述】altSyntax特性默认不开启,开启后,允许在文本串中注入OGNL表达式,且注入的表达式被逐层递归执行。攻击者可以在HTML中text域输入OGNL表达式,当form在服务器…

    2022年7月19日
    17
  • java rpm卸载_使用RPM卸载软件「建议收藏」

    java rpm卸载_使用RPM卸载软件「建议收藏」rpm-e做了什么rpm-e(等同于rpm–erase)这个命令能够卸载或擦除一个或多个安装包,当RPM卸载一个RPM包时,做了以下几件事:确保数据库中没有其它包引用了要卸载的包。执行卸载前的脚本(如果有的话)检查配置文件是否已经被修改过,如果是,则保留它们的一个备份。查询数据库,找到这个包安装的所有文件,如果该些文件不属于别的包,则将它们删除。执行卸载后的脚本(如果有的话)从数据库中…

    2022年9月23日
    0
  • mybatis返回值为map类型时怎么处理_构造函数不能有返回类型

    mybatis返回值为map类型时怎么处理_构造函数不能有返回类型最有用到mybatis返回一个map结果集,然后就针对性的在网上找了一些相关大牛的总结:1.mybatis返回map结果集-红尘中人·杨哥-博客园2.MyBatis返回Map|码农网然后经过自己的测试终于可以应用实际业务中1、如果你确定返回的数据只有一条,你可以这样整xml中:<selectid=”searchncomedateByInvestID”resultMap=”java.util.HashMap”>selectt1.invest.

    2022年10月4日
    0
  • 第二章:ActiveMQ与spring的整合使用

    第二章:ActiveMQ与spring的整合使用第二章:ActiveMQ与spring的整合使用

    2022年4月23日
    40
  • Excel中VBA编程学习笔记(一)「建议收藏」

    Excel中VBA编程学习笔记(一)「建议收藏」1、注释及编码规则注释:单引号:可以位于句子结尾或者单独一行; Rem:单独一行 编码规则:如果VB中的关键字是由多个英文字母组成,则系统自动将每个单词的首字母转换成大写字母,其余字母一律转换成小写字母。 对于用户自定义的变量名、过程名、函数名,VB以第一次定义的为准,以后输入的自动转换成首次的形式。 如果在同一行写多条语句,语句间要用冒号“:”隔开。例如:Form1…

    2022年6月1日
    124
  • 妈妈再也不用担心我的博客访问量了(一个可以刷博客访问量的小程序java)「建议收藏」

    妈妈再也不用担心我的博客访问量了(一个可以刷博客访问量的小程序java)「建议收藏」前言:相信很多写博客的朋友,会苦恼于博客访问量上不去的问题。博主最近工作比较新手动谢了个小程序,一个可以刷访问量的程序。当然主要是针对csdn博客。有了他就再也不必担心博客访问量上不去的问题了。注:博客最主要还是要自己做好seo优化,以及提高博客内容质量。本篇文章,仅供学习交流。大家如果有问题,可以留言。一,废话少说,看图:软件点击jar包直接运行:如下:稍后查看博客访问量会有变化哟,博主

    2022年6月17日
    20

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号