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 ...
随机推荐
- 接口测试基础——第6篇unittest模块(一)
我们先来简单介绍一下unittest框架,先上代码,跟住了哦~~ 1.建立如下结构的文件夹: 注意,上面的文件夹都是package,也就是说你在new新建文件夹的时候不要选directory,而是要选 ...
- Cassandra spring data 试用
1. maven 依赖 <dependency> <groupId>org.springframework.data</groupId> <artifact ...
- 如何使用 nslookup 查域名的 ttl
如何使用 nslookup 查域名的 ttl nslookup 经常用,但是最近才使用到查 ttl 的信息. 域名的 ttl 也是网站优化的一个重要参数. nslookup -d www.fastad ...
- QT creator 调试问题
问题:debug出现“ptrace:不允许的操作.” 解决办法: # may not be appropriate for developers or servers with only admin ...
- bzoj 1927 [Sdoi2010]星际竞速——网络流
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1927 每个点拆点保证只经过一次. 主要是如果经过了这个点,这个点应该向汇点流过去表示经过了它 ...
- angular(mvc)指令的嵌套使用
关于指令嵌套的使用,取值问题. 原理类似于控制器中使用指令,父指令类似于控制器,子指令就类似于控制器中指令.通过传值方式‘=’,我们直接可以在父指令中获取数据 举一个例子: 有个指令parentDir ...
- redis+php实现微博功能(三)
个人主页显示微博列表(自己及关注人的微博列表) /*获取最新的50微博信息列表,列出自己发布的微博及我关注用户的微博 *1.根据推送的信息获取postid *2.根据postid获取发送的信息 */ ...
- TCP/IP网络编程系列之二(初级)
套接字类型与协议设置 我们先了解一下创建套接字的那个函数 int socket(int domain,int type,int protocol);成功时返回文件描述符,失败时返回-1.其中,doma ...
- IP 地址 与 DNS
IP地址转化 192.168.10.1 十进制,点分十进制地址 32位二进制数字序列,四段,八位 十进制与二进制转换00000000 = 000000001 = 2 * 0 = 100000010 = ...
- ALSA声卡10_从零编写之数据传输_学习笔记
1.引言 (1)应用程序使用声卡的时候,数据流程是:应用程序把数据发送给驱动,驱动把数据发送给硬件声卡,声卡把数据转换成声音数据播放出去. (2)可以使用两种方式发送数据 第一种:app发数据,等驱动 ...