`
me-
  • 浏览: 69424 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

《asterisk电话未来之路》中文版本阅读随手写的名词解释。

阅读更多

Asterisk定义:一个软件,可以安装在linux上,甚至几个非linux上。未见windows支持。将voip连接到传统pstn网络之间的桥梁。与硬件

IP-PBX定义:基于tcp/ip的程控交换机。

Digium Zaptel:

Zaptel :连接VOIPPC机和PSTN网络的卡片。??或者用于FXO,电话线??

Zapata:与Zapatel同时被使用。

ACG脚本:用于操作Asterisk的脚本

ISDNPRI BRI两种类型

PRIPBXPSTN网络之间的中继

BRI:模拟电路提供中继,固定贷款,基于电路交换

模拟电话:模拟信号,声音可在电缆上测量。

专用数字电话:包括IP电话,ISDN电话,

IP电话:。。牛逼。。

软电话:运行在PC上,使用标准电话寻址E.164接收全双工音频信号的能力,接收电话呼叫。

FXO:模拟电话线

FXS:模拟电话。(不是电话线)

比特率采样:4位最多有14个样本。每个一段时间从波形中采样一次。而4比特率采样被成为4PCM。电话网中使用8PCM,而其他数字音频多用16pcm或者更多。

 

混叠现象(Aliasing

如果你曾经注意过早期西部片中向后转动的马车车轮,你就看到了混叠的效果。电影的帧速率跟不上转动频率,感受到的就是错误的转动方向。

DS-064-kbps64000bps, 8b*8000Hz。即每秒钟采样8000次,没次使用8个基本比特位。

T-1 T-2 T-3 T-4(承载电路)分别可以承载24966724032DS-0.

SONET/OC(同步光通信) oc-1 oc-2 oc-3 oc-12 oc-192分别可以承载672 201 8064 129024DS-0.

 

CASISDN-PRI未出现或者不可用时使用的。旧版本。各种缺点和落后技术。就通信模式适合。

ISDN 因市场的原因,只用作基本中继。

 

ISDN-BRI/BRA。一个ISDN的基本速率包括64*2+16144kbps16用于控制。在欧洲用于接入PSTN

B通道:通信通道,语言通道。

D通道,管理通道,信令通道。

ISDN-PRI/PRA。北美。mB+nD。当12个以上的DS-0时可以考虑ISDN-PRI而非ISDN-BRI

 

ISDN也可以使ISDN-BRI的简称。

7号信令系统用于子啊ISDN端点之间传递必要的附加信息。7号信令系统完全独立于另一个网络。

 

拨号盘::

 

Context:

上下文,AB两公司公用一个Asterisk,则配置Context后,A公司员工拨打extension 0时,Asterisk保证其被A公司的接线员转接,而B公司员工拨打extension0 时,Asterisk保证其呼叫能被B公司接线员转接。这个例子架设在用户按下extension0 时,我们让asterisk将呼叫转向其接线员。似乎context也用在呼叫叫限制,如限制拨打国际长途中。Context中的incoming表示呼入类型的呼叫。

 

Extension

       传统上的分机号表示的前缀。Extension0表示分机号1.但是在asterisk中,Extension可以表示邮件类似的呼叫地址,这在VOIP中非常有用。

extens=>name,priority,application()

 

Priority

       每个extension可以有多个步骤,这里的每个步骤就是一个priority..那么分多个步骤的extension如下定义:

exten =>123,1,answer()

exten =>123,2,hangup()

这里的exten123有两步骤。Priority必须严格顺序。可以使用n标示前一个priority序号加1.exten=>123,n,do sth after answer..

 

Application 上文中的answerhangup就是两个application.

 

DialPlan

       一个Dialplan被分为同级的几个部分,每个部分都是一个Context,extensioncontext的成员,同一个context下的extension具有先后关系,先后的表示使用priority

一个完整的拨号方案

       [incoming]

       Exten=>s,1,answer()

       Exten=>s,n,playback(helloword.asm)

       Exten=>s,n,hangup()

保存为一个新的extensions.conf。注意这里的复数,这表示一个extensions.conf文件中可以有多个拨号方案。

 

GSM

       一种编码格式,这里用作文件的后缀名。

 

其他应用

       Backgrond()。与playback()不同,background在播放文件同时,等待客户按键,并根据客户按键跳转执行。

       [incoming]

       Exten=>s,1,Answer()

       Exten=>s,2,background(press1_for_money_or_press2_for_sex.gsm)

       Exten=>2,1,playback(sex_is_collor_or_null.gsm)

       Exten=>1,1,playback(money_just_the_same_as_sex_work_and_enjoy_it.gsm)

       Goto(),加入goto可以更完美。可以让用户在听完色即是空,或者空即是色后,继续听问候语,而后继续选择,听到色即是空或者空即是色,而后继续如此往复,从而达到使之彻底崩溃之目的。Just for fun..

       [incoming]

       Exten=>s,1,Answer()

       Exten=>s,2,background(press1_for_money_or_press2_for_sex.gsm)

       Exten=>2,1,playback(sex_is_collor_or_null.gsm)

       Exten=>2,2,Goto(incoming,s,1)

       Exten=>1,1,playback(money_just_the_same_as_sex_work_and_enjoy_it.gsm)

       Exten=>1,2,Goto(incoming,s,1)

其他的extension

  上文中的 数字extensionn extension.另外类似用法的i extensiont extention。其中I extension在系统接收到非法输入的时候执行其后的priority,t extension在操作超时执行其后的priority.

 

Zap通道 链接到模拟电话的FXS通道

 

资源,远地资源,通常是通道名称或者编号

 

Dial()应用的参数

 参数1.Zap/1,SIP/1234,IAX/fred,其中Zap表示模拟电话的FXS通道,SIP/1234IAX/fred中斜线前的协议。

       Dial(Zap/1&Zap/2&Zap/3)则应用会桥接来电,无论被叫地那个应用先接听。

       Dial(Zap/1,10)表示超时限制。如果在10秒内Zap/1无人接听,那么Dial也无法完成桥接,那么Dial自动退出,由下一个priority继续执行。但是如果Zap/1忙,那么Dial将跳转到当前priority+101上执行。如当前为1,那么跳转到102.

       Dial(Zap/1,10,r)是可选的字符串最常见的r,用作强制播放等待音。R是可选的,因为即使没有R,在普通情况下,asterisk在建立通道时会产生振铃。所谓特殊情况可能是,asterisk假装在为呼入者接听,但事实上确是在敷衍了事,或者撒谎。

       现在结合Dial重新回忆完整的一个DialPlan

       [incoming]

       Exten=>s,1,answer()

       Exten=>s,2,backgroud(请拨分机号码.asm)

       Exten=>101,1,dial(Zap/1,10)

       Exten=>101,2,playback(“对不起,您不打的电话暂时无人接听,请稍后再拨”.asm)

       Exten=>101,3,hangup()

       Exten=>101,102,playback(您拨打的电话正在通话中全忙音急促“滴,滴,滴”.asm)    

       Exten=>101,103,hangup()

       Exten=>102,1,Dial(SIP/Jane,10)

       Exten=>102,2,Playback(电话无人接听.asm)

       Exten=>102,3,hangup()

       Exten=>102,102,playback(通话中,占线,全忙音.asm)

       Exten=>102103hangup()

       Exten=>I,1,playback(呼叫无法到达,您拨打的号码是空号)

       Exten=>I,2,Goto(incoming,s,1)

       Exten=>t,1,playback(超时,再见.asm)

       Exten=>t,2,hangup()

       [internal]

       Exten=>101,1,Dial(Zap/1,,r)

       Exten=>102,1,Dial(Sip/jane,,r)

 

 

       [internal]

       Exten=>101,1,Dial(Zap/1,,r)

       Exten=>102,1,Dial(Sip/jane,,r)

       Exten=>john,1,Dial(Zap/1,,r)

       Exten=>jane,1,Dial(Sip/jane,,r)

       这里的incoming表示是电话呼入,而internal表示内部通讯。内部通信注册了4哥特地址,这四个地址可以呼叫。Extension 单字符时保留的,最多可以有80个字符。

 

变量

JOHN=Zap/1

Exten=>555,1,Dial(${JOHN},,r)

       全局变量应该在extensions.conf文件的开始使用[globals]context定义,用法同普通变量。也可以用app中的SetGlobalVar(JOHN=Zap/1)定义。

 

通道变量

       Set(MAGICNUMBER=42)

 

环境变量

       访问操作系统环境变量的方法${ENV(var)}var是操作系统的环境变量名。

 

Asterisk自己的匹配符号。用来匹配extension等。

 

${EXTEN}通道变量

       用来告诉你现在的位置。是你现在所拨出的extension.

       ${EXTEN:x}表示删除所拨号码的前几位,只留下后面的部分。

 

[outbound-local]

       用来指定可以向外拨打的目的地号码。

       实例

       [globals]

       JOHN=Zap/1

       JANE=SIP/jane

       OUTBOUNDTRUNK=Zap/4

       [outbound-local]

       Exten=>_9NXXXXXX,1,Dial(${OUTBOUNDTRUNK}/${EXTEN:1}}

       Exten=>_9NXXXXXX,2,Congestion()

       Exten=>-9NXXXXXX,102,Congestion()翻译挤满

       Exten=>911,1,Dial(${OUTBOUNDTRUNK}/911)

Exten=>9911,1,Dial(${OUTBOUNDTRUNK}/911)

[outbound-long-distance]用作拨出长途。配置方法同短途。

 

配置域内用户使能拨打长短途。在[internal]下加入

Include=>outbound-local

Include=>outbound-long-distance

 

 

更加复杂的拨号方案概念

       表达式,运算符中的数学运算符和比较运算符。拨号方案函数包括计算字符串长度,日期和时间,MD5校验,等等,这些都在一个表达式中实现。

测量字符串长度

Exten=>123,1,set(TEST=example)

Exten=>123,2,saynumber(${LEN(${TEST})})

       条件分支Gotoif应用

       Gotoif(表达式?目的地1:目的地2)

       GotoIfTime时间匹配跳转。

       Exten=>s,1,GotoIfTime(*,*,4,jul?open,s,1)

       Exten=>s,2,GotoIfTime(09:00-17:59|mon-fri|*|*open,s,1)

       Exten=>s,3,GotoIfTime(09:00-11:59|sat|*|*?open,s,1)

       Exten=>s,4,GOTO(Closed,s,1)

       就是根据时间,判断是不是开门的问题。。

 

语言邮箱

 

Astrisk数据库

 

Astrisk会议Meetme()

 

Pdf114页。

0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics