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 ...
随机推荐
- python ctypes 和windows DLL互相调用
图片项目
- 40+个对初学者非常有用的PHP技巧
1.不要使用相对路径,要定义一个根路径 这样的代码行很常见: require_once('../../lib/some_class.php'); 这种方法有很多缺点: 它首先搜索php包括路径中的指定 ...
- Vim自动补全插件----YouCompleteMe安装与配置
Vim自动补全插件----YouCompleteMe安装与配置 使用Vim编写程序少不了使用自动补全插件,在Linux下有没有类似VS中的Visual Assist X这么方便快捷的补全插件呢?以前用 ...
- python-生成测试报告-然后自动发送邮件
前两篇单独介绍了生成测试报告和自动发送邮件,那么现在把两者整合到一起:生成测试报告后然后自动发送邮件,这里只是简单的整合实现功能,其实还可以优化的,先用吧,后面再慢慢优化 先看下目录,其实目录还是一样 ...
- Java-Runoob-高级教程:Java Applet 基础
ylbtech-Java-Runoob-高级教程:Java Applet 基础 1.返回顶部 1. Java Applet 基础 Applet 是一种 Java 程序.它一般运行在支持 Java 的 ...
- C/C++程序内存情况
一个由C/C++编译的程序占用的内存分为以下几个部分 1.栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等.其操作方式类似于数据结构中的栈. 2.堆区(heap) — 一 ...
- 【CVE】CVE-2018-4304 Apple多个操作系统函数拒绝服务漏洞
TextImpact: Processing a maliciously crafted text file may lead to adenial of serviceDescription: A ...
- 仅用CSS3创建h5预加载双旋圈
<head> <meta charset="UTF-8"> <title></title> <style type=" ...
- hibernate操作数据库时报错解决方式
java.sql.SQLException: Parameter index out of range (28 > number of parameters, which is 27). 这个说 ...
- php对业务平台接口调用的封装格式
1.封装类示例:E:\html\pim\php_mcloud_cas\util\UmcPlatform.class.php <?php class Util_UmcPlatform{ const ...