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 ...
随机推荐
- LeetCode Best Time to Buy and Sell Stock with Transaction Fee
原题链接在这里:https://leetcode.com/problems/best-time-to-buy-and-sell-stock-with-transaction-fee/descripti ...
- UML中的几种关系(UML Relationships)
依赖(Dependency) 依赖可以理解为一个类A使用到了另一个类B,而这种使用关系是具有偶然性的.临时性的.非常弱的,但是B类的变化会影响到A:比如某人要过河,需要借用一条船,此时人与船之间的关系 ...
- Serf 了解
Introduction to Serf Welcome to the intro guide to Serf! This guide will show you what Serf is, expl ...
- 使用实例 ---- 使用NUnit在.Net编程中进行单元测试
[--- 资料是从免费网站上获取的,上载在这里,只为交流学习目的,文章原作者保留所有权力,如本博客的内容侵犯了你的权益,请与以下地址联系,本人获知后,马上删除.同时本人深表歉意,并致以崇高的谢意!e ...
- jieba分词初学
昨天,做的那个数据分析报告用到了jieba分词.但是只是借用了别人的部分代码.具体函数代表什么还不太明白.今天去官网研究了下..... jieba官网简介 "结巴"中文分词:做最好 ...
- (转)JavaMail邮件发送-发送一个文本邮件和一些问题说明
需要下载的JAR包: JavaMail:http://www.oracle.com/technetwork/java/javamail/index.html JAF:http://www.oracle ...
- Type-C潮流下 如何衡量一款数据线好坏?
不少新一代手机开始支持Type-C接口,比如乐视.PPTV.努比亚Z11.小米4C和三星Note7等.和普通Micro USB相比,Type-C数据线因为正反插的关系对品质要求更高,不然随时有短路烧毁 ...
- .NET System.Web.HttpContext.Current.Request报索引超出数组界限。
移动端使用Dio发送 FormData, 请求类型 multipart/form-data, FormData内可以一个或多个包含文件时. 请求接口时获取上传的fomdata数据使用 System.W ...
- mysql 优化 (1)
提高IOPS能力的几种方法换SSD,PCIE-SSD(提高IO效率,普通SAS盘5000以内的iops,而新设备可达到数万或者数十万iops)少做IO的活(合并多次读写为一次,或者前端加内存CACHE ...
- grep 小技巧
转自:http://www.cnblogs.com/itech/archive/2012/10/18/2729944.html 1) grep命令加- E参数,这一扩展允许使用扩展模式匹配.例如,要抽 ...