FreeSWITCH--配置代接电话
配置代接电话,需要更改 分机、拨号计划、外线 的配置
一、配置分机
代接组内分机的这个“组”, 不是“conf/directory/default.xml"中配置的 group,而是要在分机配置中配置。然后会在拨号计划中使用到这个配置。
如下配置: “callgroup”
<include>
<user id="8002">
<params>
<param name="password" value="$${default_password}"/>
</params>
<variables>
<variable name="toll_allow" value="domestic,international,local"/>
<variable name="accountcode" value="8004"/>
<variable name="user_context" value="default"/>
<variable name="effective_caller_id_number" value="8004"/>
<variable name="effective_caller_id_name" value="8004"/>
<variable name="callgroup" value="allagents"/>
</variables>
</user>
</include>
二、配置拨号计划-代接
线上代码, 再解释:
<!-- 全局截断分机代接 -->
<extension name="global-intercept">
<condition field="destination_number" expression="^\#\*\*$">
<action application="answer"/>
<action application="intercept" data="${hash(select/${domain_name}-last_dial_ext/global)}"/>
</condition>
</extension>
<!-- 组内截断分机代接 -->
<extension name="group-intercept">
<condition field="destination_number" expression="^\#\*$">
<action application="answer"/>
<action application="intercept" data="${hash(select/${domain_name}-last_dial_ext/${callgroup})}"/>
</condition>
</extension>
<!-- 指定截断代接 -->
<extension name="intercept-ext">
<condition field="destination_number" expression="^\#(\d+)$">
<action application="answer"/>
<action application="intercept" data="${hash(select/${domain_name}-last_dial_ext/$1)}"/>
</condition>
</extension>
<!-- 重播 -->
<extension name="redial">
<condition field="destination_number" expression="^(redial|\*\#)$">
<action application="transfer" data="${hash(select/${domain_name}-last_dial/${caller_id_number})}"/>
</condition>
</extension>
“intercept” 这个application 是中途拦截的意思,也就是说,在通话中的话,也能吧电话接过来,抢劫哈~
1.不例外, 先”answer“
2.然后拦截呼叫
拦截呼叫要先查找呼叫,当然是查找最后一个啦:“${domain_name}-last_dial_ext”,全局,主内,或者指定的分机。
这里使用的hash表,来存储的 记录, 所以是在hash表中查,官网是用db记录的,就在db中查了。
三、配置拨号计划-记录
前面提到了查询,那么这些个记录是哪里来的呢;同样是拨号计划中记录的啦。
要代接的,一般都是外线呼入的,当然也有内线呼入的,那么怎么记录呢?
1、内线记录呼叫
内线呼入,当然是在内线的dialplan里记录了:
<!-- 拨分机 -->
<extension name="extension-intercom">
<condition field="destination_number" expression="^(8[0-6][0-9][0-9])$">
<!--<action application="log" data="console $1 ${destination_number}"/>-->
<action application="set" data="dialed_extension=${destination_number}"/>
<action application="set" data="callee_party_callgroup=${user_data(${destination_number}@${domain_name} var callgroup)}"/>
<action application="export" data="dialed_extension=${destination_number}"/>
<action application="hash" data="insert/${domain_name}-call_return/${dialed_extension}/${caller_id_number}"/>
<action application="hash" data="insert/${domain_name}-last_dial_ext/${dialed_extension}/${uuid}"/>
<action application="hash" data="insert/${domain_name}-last_dial_ext/${callee_party_callgroup}/${uuid}"/>
<action application="hash" data="insert/${domain_name}-last_dial_ext/global/${uuid}"/>
<action application="export" data="nolocal:rtp_secure_media=${user_data(${dialed_extension}@${domain_name} var rtp_secure_media)}"/>
<action application="hash" data="insert/${domain_name}-last_dial/${callee_party_callgroup}/${uuid}"/>
<!--设置回铃音-->
<action application="set" data="ringback=${us-ring}"/>
<!--<action application="set" data="ringback=ForestHymn3.wav"/>-->
<!--<action application="set" data="transfer_ringback=$${hold_music}"/>-->
<action application="set" data="transfer_ringback=local_stream://moh"/>
<!--<action application="set" data="transfer_ringback=ForestHymn.wav}"/>-->
<action application="set" data="call_timeout=30"/>
<!-- <action application="set" data="sip_exclude_contact=${network_addr}"/> -->
<action application="set" data="hangup_after_bridge=true"/>
<!--<action application="set" data="continue_on_fail=NORMAL_TEMPORARY_FAILURE,USER_BUSY,NO_ANSWER,TIMEOUT,NO_ROUTE_DESTINATION"/> -->
<action application="set" data="continue_on_fail=true"/>
<!--话机自动接听-->
<!--<action application="export" data="sip_auto_answer=true"/>-->
<action application="bridge" data="user/${destination_number}@${domain_name}"/>
</condition>
</extension>
上面三个加粗的,分别是记录指定分机,组内,全局的。
2、外线记录呼叫呼叫
外线,就在外线的dialplan里记录了,转分机前,记得,是转分机前!
<action application="set" data="dialed_extension=8002"/>
<action application="set" data="callee_party_callgroup=${user_data(${dialed_extension}@${domain_name} var callgroup)}"/>
<action application="hash" data="insert/${domain_name}-last_dial_ext/${callee_party_callgroup}/${uuid}"/>
<action application="hash" data="insert/${domain_name}-last_dial_ext/${dialed_extension}/${uuid}"/>
<action application="hash" data="insert/${domain_name}-last_dial_ext/${callee_party_callgroup}/${uuid}"/>
<action application="bridge" data="[originate_timeout=30]user/${dialed_extension}"/>
问题: 如果是在 用esl转的,咋加记录? callcenter转的咋记录?
FreeSWITCH--配置代接电话的更多相关文章
- 公网用户接入NAT后面的freeswitch配置
大致网络示意和终端号码: 客户端侧: 终端号码(1019)终端IP(192.168.1.15)+ 网关(192.168.1.1) + 路由器公网IP(动态地址) 服务器侧: 防火墙(181.92.2. ...
- Freeswitch配置之sofia
SIP模块 - mod_sofia SIP 模块是 FreeSWITCH的主要模块. 在 FreeSWITCH中,实现一些互联协议接口的模块称为 Endpoint.FreeSWITH支持很多的 End ...
- freeswitch配置功能二
<?xml version="1.0" encoding="utf-8"?><include> <context n ...
- freeswitch 配置 DID 方法
本文来自 csdn http://blog.csdn.net/voipmaker 转载注明出处,谢谢. 我建了一个 Freeswitch学习 交流群, 45211986, 欢迎加入. DI ...
- Zabbix实现电话告警通知的配置方法分享
如果要讨论下当下热门的监控系统,我想zabbix应该能够占有自己的一席之地,拥有不小的话语权吧.然而身为一名苦逼的运维,为了不错过重大的告警信息,就需要配置个[电话告警]来进行最快速的通知. zabb ...
- FreeSWITCH 1.2.5.3 Step by Step Install
Ubuntu: apt-get -y install build-essential automake autoconf git-core wget libtool apt-get -y instal ...
- FreeSWITCH 学习笔记
[1]FreeSWITCH学习笔记 1.Windows安装包下载地址:http://files.freeswitch.org/windows/installer/ 2.源码下载地址:http://fi ...
- squid安装、配置、控制
Squid 目录 [隐藏] 1 前言 2 安装 2.1 从源中安装 2.2 源码编译安装 3 基本配置 4 高级控制 5 认证 6 总结 6.1 服务器配置 6.2 用户分类 6.3 行为分类 6. ...
- 开源软交换系统 FreeSwitch 与 Asterisk 比较
Asterisk 与freeswitch都是流行的开源软交换服务器,Asterisk出现的比较早,大概在1999年开始此项目,应该是最流行的开源软交换服务器,整个社区上下游都已经很成熟. freesw ...
随机推荐
- css animation动画
css 动画: 动画是CSS3中具有颠覆性的特征之一,可通过设置多个节点来精确控制一个或一组动画,常用来实现复杂的动画效果. 必要元素: a.通过@keyframes指定动画序列:自动补间动画,确定两 ...
- java创建多线程&创建进程
概述 并发和并行是即相似又有区别: 并行:指两个或多个事件在同一时刻发生: 并发:指两个或多个事件在同一时间段内发生. 进程是指一个内存中运行中的应用程序.每个进程都有自己独立的一块内存空间,一个应用 ...
- python模块--如何相互调用自己写的模块
一.模块相互调用同级目录调用时的两种方法 import module print(module.add(3,8)) from module import add print(add(2,4)) 同级目 ...
- The SDK platform-tools version ((21)) is too old to check APIs compiled with API 23
android studio是个坑爹的工具,每次打开文件头都出现如上错误提示. 解决方法: Update your android sdk platform-tools to the revision ...
- C#(.Net)中调用Sql sever汉字字符串显示为?问号
利用Sql语言,向数据库中导入‘C语’,结果在检查的时候,发现如上图所示. 网络上,很多人说是编码问题,但是都没给出具体的解决方案,最终用这种方法解决了! 把上图中需要储存汉字字符串的类型变为 nva ...
- (转)Inno Setup入门(九)——修改安装过程中的文字显示
本文转载自:http://blog.csdn.net/yushanddddfenghailin/article/details/17250837 前面说到过可以使用不用的语言文件实现不同的显示方式,方 ...
- Android 语音处理
开源的sip android 项目 https://code.google.com/p/csipsimple/
- 安装nagios检测hadoop
Nagios是常用的系统监控工具,提供了很多基本服务的监控脚本,如HTTP,MYSQL等,同时具有不错的可扩展性,自己可定制针对特定参数的监控脚本以及报警的方式. 我现在有三台机器:192.168.0 ...
- node+express+ejs搭建一个简单的"页面"
1.建立工程文件夹my_ejs. 2.首先利用npm install express和npm install ejs 下载这两个家伙.至于要不要设置成全局的,看习惯,我习惯性的下载到本项目中的文件夹中 ...
- mongoDB在windows下安装和配置.
1.首先在官网下载mongoDB的安装包: http://www.mongodb.org/downloads 这里我们下载zip格式的下载,其他的没安装过,不会,就不说了. 2.解压文件后: 3.在D ...