配置代接电话,需要更改 分机、拨号计划、外线 的配置

一、配置分机

代接组内分机的这个“组”, 不是“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--配置代接电话的更多相关文章

  1. 公网用户接入NAT后面的freeswitch配置

    大致网络示意和终端号码: 客户端侧: 终端号码(1019)终端IP(192.168.1.15)+ 网关(192.168.1.1) + 路由器公网IP(动态地址) 服务器侧: 防火墙(181.92.2. ...

  2. Freeswitch配置之sofia

    SIP模块 - mod_sofia SIP 模块是 FreeSWITCH的主要模块. 在 FreeSWITCH中,实现一些互联协议接口的模块称为 Endpoint.FreeSWITH支持很多的 End ...

  3. freeswitch配置功能二

    <?xml version="1.0" encoding="utf-8"?><include>        <context n ...

  4. freeswitch 配置 DID 方法

    本文来自 csdn     http://blog.csdn.net/voipmaker   转载注明出处,谢谢. 我建了一个 Freeswitch学习 交流群, 45211986, 欢迎加入. DI ...

  5. Zabbix实现电话告警通知的配置方法分享

    如果要讨论下当下热门的监控系统,我想zabbix应该能够占有自己的一席之地,拥有不小的话语权吧.然而身为一名苦逼的运维,为了不错过重大的告警信息,就需要配置个[电话告警]来进行最快速的通知. zabb ...

  6. 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 ...

  7. FreeSWITCH 学习笔记

    [1]FreeSWITCH学习笔记 1.Windows安装包下载地址:http://files.freeswitch.org/windows/installer/ 2.源码下载地址:http://fi ...

  8. squid安装、配置、控制

    Squid 目录 [隐藏]  1 前言 2 安装 2.1 从源中安装 2.2 源码编译安装 3 基本配置 4 高级控制 5 认证 6 总结 6.1 服务器配置 6.2 用户分类 6.3 行为分类 6. ...

  9. 开源软交换系统 FreeSwitch 与 Asterisk 比较

    Asterisk 与freeswitch都是流行的开源软交换服务器,Asterisk出现的比较早,大概在1999年开始此项目,应该是最流行的开源软交换服务器,整个社区上下游都已经很成熟. freesw ...

随机推荐

  1. 接口测试基础——第6篇unittest模块(二)

    通过上次的运行,大家应该已经发现了,就是我们写了三个用例,那么在测试报告中setUp和tearDown方法分别运行了三次.没错,这也就是说,每次运行用例之前都会运行setUp和tearDown方法.今 ...

  2. 安装WampServer关闭mysql服务后打不开了(端口冲突)

    1.WampServer自带了mysql精简班的数据库了 2.WampServer自带 的mysql和你独立安装的mysql端口号冲突了 3.mysql默认的端口号是3306 4.建议你修改WampS ...

  3. 抽象工厂模式(abstract)创建型模式

    (一)简单工厂模式? 现在的学习是面向对象面向接口的,但是执行时的操作需要实例化后的对象.随着我们需要的类的增加,我们就需要把这些共同的东西提取出来,放在一个抽象类中,让这些子类来继承抽象类.当我们调 ...

  4. Oracle数据库clob字段导出为sql insert插入语句

    oracle数据库的clob字段导出为sql insert插入语句可以分三种情况:1,clob没有换行符:2,clob有换行符但不以分号结尾:3,clob有换行符并且以分号结尾. clob没有换行符使 ...

  5. C# 操作iis6、iis7 301

    iis6版本方法... iis7以及以上版本方法  using (ServerManager serverManager = new ServerManager())         {        ...

  6. xshell连接kali

    连接出现错误,连接不上去,看到一篇文章可以使用,https://blog.csdn.net/yemaxq/article/details/78171241

  7. librtmp接收flv流中提取h264码流:根据多个资料汇总

    rtmpdump可以下载rtmp流并保存成flv文件.如果要对流中的音频或视频单独处理,需要根据flv协议分别提取.简单修改rtmpdump代码,增加相应功能.1 提取音频:rtmpdump程序在Do ...

  8. https 请求的端口是443 注意

    注意: 这里录制https的请求 端口号一定是443 才可以抓取到!!!!!! (进坑多次)

  9. 线程组ThreadGroup

      ThreadGroup线程组表示一个线程的集合.此外,线程组也可以包含其他线程组. 线程组构成一棵树,在树中,除了初始线程组外,每个线程组都有一个父线程组. 允许线程访问有关自己的线程组的信息,但 ...

  10. nginx web服务器应用

    Nginx介绍 Nginx是一个开源的,支持高性能,高并发的www服务和代理服务软件,因具有高并发(特别是静态资源),占用系统资源少等特性,且功能丰富而逐渐流行起来.功能应用上,Nginx不但是一个优 ...