转自: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应用卡发板卡中)

asterisk中Callback+DISA电话回拨应用释例相关推荐

  1. CentOS6.5搭建asterisk及配置软电话

    最近需要搭建asterisk开源项目模拟语音通话,浏览了比较多的博客文章,然后归纳加工,实测可以成功搭建,希望能帮到有需要的人. 这些命令假设你已经按照"操作系统安装"一节的内容把 ...

  2. asterisk实现webrtc拨打电话

    asterisk实现webrtc拨打电话. asterisk在11版本以上,已经支持socket,实现网页拨打电话的方案比较多. 但低于asterisk11版本的,如何将sip协议转换srtc实现网页 ...

  3. java timer时间回拨_用89C2051单片机制作的电话回拨器

    描述 该电话回拨器采用单片机控制,具有电路简单.接触可靠.使用方便等优点. 一.工作原理 电路见附图所示,系统由摘机,挂机电路.单片机拨号控制电路.DTMF号码产生及放大电路.电源电路等四部分组成,下 ...

  4. 【转载】谈谈我对Java中CallBack的理解

    谈谈我对Java中CallBack的理解 转载自: http://www.cnblogs.com/codingmyworld/archive/2011/07/22/2113514.html CallB ...

  5. 如何在asterisk中限制呼叫路数?

    在asterisk中,对于呼叫个数是可以通过call-limit进行限制的.限制办法是通过修改asterisk.conf中maxcalls参数,设置允许的最大呼叫数.这里的最大呼叫数是包括所有的呼叫数 ...

  6. android 中打电话,Android 在 APP 中实现拨打电话的方法

    Android 在 APP 中实现拨打电话的方法 2020-12-20 09:17:08 方法一: 首先添加拨打电话的权限: /** * 拨打电话(直接拨打电话) * @param phoneNum ...

  7. android+获取未接电话,如何统计Android中未接电话的数量

    我知道如何获得未接电话通知,但我不知道我有多少个未接电话.那么我怎样才能算出这个未接电话的数量呢?如何统计Android中未接电话的数量 我使用oncreate此代码: TelephonyManage ...

  8. Asterisk中实现回拔

    在Asterisk1.6中似乎提供一个AMI指令实现回拔功能,就是通过指令让服务器分别拔打两个号码. Asterisk.Api.Originate ori = new Asterisk.Api.Ori ...

  9. AIDL中callback的实现

    2019独角兽企业重金招聘Python工程师标准>>> AIDL实现就可以在客户端中调用服务端的方法,并传递数据到服务端,也可以服务端传递数据过来:但是如果要从服务端去调用客户端的方 ...

最新文章

  1. 统计计量 | 统计学中常用的数据分析方法汇总
  2. java随机动态分组_Java将一组数随机分组
  3. 微软拟对Office 2007增添新功能 增强安全性
  4. 鸿蒙 github harmony,鸿蒙HarmonyOS之AbilitySlice间导航
  5. 解决AndroidManifest.xml file missing方案
  6. [改善Java代码]不推荐使用binarySearch对列表进行检索
  7. 配置的代理服务器未响应怎么办
  8. 关于FCN代码实现(实践篇)
  9. JAVA API中文在线帮助文档
  10. 基于Web的svg编辑器(2)——层次结构设计(DOM结构)
  11. 《给予者》:害羞,内向,不善言辞,如何构建人脉?
  12. IISPUT上传漏洞
  13. 深入理解JAVA中的JNDI注入
  14. 巨杉TechDay回顾 | 技术人的夏天 · 就是这么燃!
  15. oracle fnd file.log,oracle D_FILE.PUTamp;FND_FILE.PUT_LINE
  16. 微信公众号运营策划方案书之公众号基础知识
  17. rstudio中logit模型代码
  18. frame被废除_废除用户体验设计的假神
  19. 华为信息流推广怎么收费的 华为推广需要多少钱
  20. 【学习笔记】GY-53L1x激光测距传感器模块入门资料

热门文章

  1. ZYNQ系列之-----SD卡中BMP图片读取+ddr读写验证
  2. M302A(2+8)、E900V22E(2+8)、E900V21E、E900V21C 创维代工 通刷固件及教程
  3. jquery练习03_手写扫雷(全网最强jquery练习),扫雷游戏 150行代码轻松搞定
  4. Python网络编程(06)----MySQL8.0介绍--01(使用command命令创建数据库以及数据表)
  5. 现在Java主流技术有哪些?
  6. 大话赛宁云 | 赛系列-人才锤炼的网络空间“竞技场”
  7. html制作小米官网代码,仿小米官网(html+js+css)
  8. 2345全家桶,教会9亿用户如何重装系统
  9. 均值u的置信区间matlab,正态总体参数区间估计的MATLAB实现 - 范文中心
  10. 1.StarForce导入GF源码