asterisk中Callback+DISA电话回拨应用释例

来源:互联网 发布:淘宝店虚拟物品货源 编辑:程序博客网 时间:2024/05/01 06:50

转自:http://blog.dnqmq.cn/?p=55

callback和disa等FreePBx模块下载地址:http://www.freepbx.org/trac/browser/modules/release/2.5

Callback和DISA都是传统语音交换机(PABX)很早以前就实现的功能了,初衷是为了节省出差的员工高额的通讯费用(CallBack)以及在公司外部也能拨入系统,模拟为系统内部分机(DISA),既可以呼叫内部其它同事的分机,又可以选择系统的PSTN拨出电话,比如在家里使用DISA拨入系统,然后选择公司外线打长途or国际长途. 现在AA(Auto Attendant–自动话务员) 已经非常流行,而callback 和 DISA 因为存在盗打的风险,很多传统PABX默认都是关闭的.如果不小心开启,嘿嘿—摩托罗拉投诉北电的Meridian交换机的DISA功能使他们承受了上百万美元的盗打的损失,结果北电电令所有代理商逐个用户检查DISA功能的开启状况. 风险之大,可见一斑.

功能描述:
FreePBX的callback将根据发起呼叫的CLID or 预定义的Callback号码进行回拨,同时桥接预定义的被叫目的地(destination)

FreePBX的DISA允许拨入者模拟为系统的分机,使用所有系统的功能,包括外呼,转接(transfer)…

释例一: Callback功能演示
1.1情境:
在公司外部,需要联系公司同事的分机,手机是单项收费
1.2demo环境:
Asterisk 的FXO模块 (channel 4)连接一根电话线,号码是12345678
公司的前台分机号码是2000
1.3配置步骤:

首先编辑 /etc/amportal.conf
将下面的代码加到文件的最后:
CALLBACK_PREFIX=9 ;Prefix要根据你的Freepbx具体情况设定,我出局是拨9
CALLBACK_CLI=Callback
CALLBACK_RETRY=1
CALLBACK_INTERVAL=10
CALLBACK_WAIT=30


1.3.1 配置Zap Channel DIDs (本步骤非必要,只是应论坛朋友要求,顺被捎带着将一下这个)
Channel: 4 (就是你想通过虚拟DID号码映射的FXO通道)
Description: callbacklines
DID: 1357268 (这个随你输入的,不是非要和你的电话号码一致)
备注:同一个虚拟DID号码可以映射多个Zap Channel

1.3.2.配置Callback
Callback Description: ToReception (起个名字)
Callback number: (保持空白)

此处保持空白就是强制回拨主叫用户(基于CLID,没有CLID的朋友要吃苦头了),也可以再次预定义回拨的号码,比如回拨你家里的电话(毕竟手机有电话簿可以快速拨号哦,懒人的福音,离开手机,我一个电话号码都记不住,包括我老婆的….)
注意:输入的回拨号码要符合系统的outbound route的规则,比如使用拨9选择外线打出,那么你的callback号码前要加9

Delay before Callback: 0 (默认,可根据需要定义)


Destination after callback
Extensions: 2000

1.3.3 设置Inbound Routes
DID number: 13572468 (虚拟DID号码,见1.3.1)

Set Destination—-
Callback : ToReception (见1.3.2)


1.4 呼叫流程


  • 使用手机拨打测试线路-12345678
  • 等待,直到获得忙音(自动挂断,嘿嘿,没费用哦)
  • 等待你的手机振铃,嘿嘿,有个公司电话进来,接起来,哈哈,你可以和前台妹妹聊天了,当然你是个工作狂就让她快点帮你转给你的同事吧


1.5 功能扩展
通过以上演示,大家可以看到如果Callback应用在正路上,是非常有用的,在国外的企业中应用非常广泛,但是万恶的电信过去双向收费以及昂贵的漫游,导致这个功能在国内叫好不叫座.随着手机的单向收费以及漫游费用的取消(未来),这个功能必将大放异彩. 但是这也带来很严重的问题就是如何验证以及授权适当的用户使用这个功能(这部分属于稍微高级一点的功能,如果我还能坚持这个系列,将会在后续内容中讲到)

以上释例只是简单的基于Freepbx的内置Callback模块,在显示中,激发callback的方式多种多样,比如SMS(短消息) callback, Web-callback….可以直接输入被叫号码,这样就更加灵活,其实Freepbx也能实现callback on demand, 这就引出我们下面要介绍的DISA

释例2 DISA功能演示
2.1情境:
在家里,需要用公司外线打国际长途(黑心人!!!呵呵)
2.2demo环境:
Asterisk 的FXO模块 (channel 4)连接一根电话线,号码是12345678

1.3配置步骤:
2.3.1 配置Zap Channel DIDs (配置同1.3.1)

2.3.2.配置DISA
DISA name: DISADemo (起个名字)
PIN: 124578 (DISA太危险了,还是有个基本的密码吧)

Response Timeout: 60 (超时时间设置的长一点,否则不等你输入完毕就挂断)
Require confirmation: no check

(启用本选项将会在DISA接通后提示你按1,然后才会提示你输入密码,这个选项基本上是为了避免DISA接通后不提供拨号音),
CLID: 保持空白—本选项对模拟线路无意义
Contex: from-internal(通过context的选择,你可以限制DISA拨入能使用的系统功能,只建议有经验的用户使用)
Allow hungup: checked (在DISA建立成功后,允许使用asterisk的IN-call disconnect 特性在不中断本次呼叫的前提下重新开始新的呼叫流程.功能键默认定义为**)

2.3.3 设置Inbound Routes(同1.3.3)

2.4 呼叫流程


  • 使用手机拨打测试线路-12345678
  • 系统提示输入密码—>输入PIN中定义的密码,输入完毕以#键结束
  • 嘟………听到熟悉的拨号音,大功告成(亲个嘴儿)………….别急,还没完呢
  • 输入测试用国际长途号码9008521000(没有国际长途的朋友随便找个市话号码模拟下,步骤是一样的) —-9是outbound route中指定的路由访问码,具体的拨号方式和你在公司用分机拨打电话的习惯一样,所以说DISA其实就是把呼入的外部电话模拟为内部分机,所以你也可以直接拨同事的分机号码(这也就是很多PABX系统把AA有的时候也叫DISA的原因)
  • 电话打完了,但是还想打联系另外的人,没问题,再DISA一次,但是等等,不用那么烦,我们在2.3.2的DISA配置中启用了”Allow hungup”,是时候用它了.
  • 通过DISA拨入系统,输入密码听到拨号音,拨通电话…..(通话中)按下**,听到什么?哈哈,悦耳的拨号音,再拨其它电话….**….再来一次(反正花公司的钱….我只承担市话费==让我们再黑心一点,让公司全套腰包吧,让我们把callback和DISA联合起来)


释例3 Callback + DISA
3.1. 配置DISA(参考2.3.2)

3.2. 配置Callback(参考1.3.2)
Destination after callback
DISA: DISADemo


Summary:
以上就是基于纯Freepbx的WEB界面和内置模块实现Callbcak+DISA的简单步骤,如果有机会,后续内容会进一步讨论基于授权的CLID的callback和简单的WEB callback,以及基于.call文件的Auto Dial(将会转板到asterisk应用卡发板卡中)

原创粉丝点击