[FreeSWITCH]简单配置fifo呼入队列
拨号计划
<?xml version="1.0"?>
<include>
<context name="inboundcall">
<!-- 坐席拨打611登录到队列 -->
<extension name="Agent Login">
<!--限制可登录队列的坐席分机号-->
<condition field="caller_id_number" expression="^([1,8]\d{3})$" />
<condition field="destination_number" expression="^(611)$">
<action application="answer"/>
<action application="set" data="result=${fifo_member(add f1 {fifo_member_wait=nowait}user/${caller_id_number})}"/>
<action application="log" data="INFO call_id_number: ${caller_id_number}" />
<action application="log" data="INFO Add FIFO1 agent result: ${result}"/>
<!-- <action application="hangup"/> -->
</condition>
</extension>
<!-- 坐席拨打612退出队列 -->
<extension name="Agent Logout">
<condition field="destination_number" expression="^(612)$">
<action application="answer"/>
<action application="set" data="result=${fifo_member(del f1 {fifo_member_wait=nowait}user/${caller_id_number})}"/>
<action application="log" data="INFO Del FIFO1 agent result: ${result}"/>
<!-- <action application="hangup"/> -->
</condition>
</extension>
<extension name="send caller to FIFO">
<!-- 测试的时候可以限制一下呼入的来电号码 -->
<condition field="caller_id_number" expression="^(17712345678)$" />
<!-- destination_number应该是运营商或者线路商提供的可呼入号码 -->
<condition field="destination_number" expression="^(0101234567)$">
<action application="log" data="INFO get caller ${caller_id_number} calls coming..." />
<action application="answer"/>
<action application="set" data="record_sample_rate=8000"/>
<action application="set" data="RECORD_STEREO=true"/>
<action application="record_session" data="/home/Records/inboundcall/${strftime(%Y/%m/%d/)}${caller_id_number}_${strftime(%Y%m%d%H%M%S)}.wav"/>
<action application="fifo" data="f1 in"/>
<action application="log" data="INFO get in fifo: 12345678"/>
<action application="park"/>
<!-- 不park会导致立即挂机; -->
</condition>
</extension>
</context>
</include>
大致流程
- 假设坐席分机号1001、1002、1003、1004拨打611登录到队列中
- 客户17712345678拨打0101234567呼入
- FreeSWITCH先预应答客户,将客户通话放到队列中
- FreeSWITCH查找已登录到队列中的坐席,比如1002
- FreeSWITCH将客户通话推到1002坐席,实现通话。
- 假设1003坐席暂停接听电话,拨打612退出队列。
[FreeSWITCH]简单配置fifo呼入队列的更多相关文章
- Laravel5.4 队列简单配置与使用
概述 什么是队列? 百度百科是这样说的 “队列”是在传输过程中保存数据的容器. 举几个生活中例子: * iphone手机新款发布,三里屯iphone进的新货.大家要排队买,不能说一大堆人一起冲进去,那 ...
- CCNA网络工程师学习进程(6)vlan相关协议的配置与路由器简单配置介绍
前面已经介绍了大部分与vlan技术相关的交换机的协议的配置,更深层次的还有STP协议和以太网端口聚合技术,接着还会简单介绍一下路由器的基本应用. (1)STP(Spanning-tre ...
- nginx负载均衡简单配置
nginx负载均衡简单配置准备三台虚拟机来做这个实验:192.168.232.132 web服务器192.168.232.133 web服务器192.168.232.134 ...
- Kafka初入门简单配置与使用
一 Kafka概述 1.1 Kafka是什么 在流式计算中,Kafka一般用来缓存数据,Storm通过消费Kafka的数据进行计算. 1)Apache Kafka是一个开源消息系统,由Scala写成. ...
- goldengate原理与简单配置
goldengate的原理:http://www.ipresst.com/works/52bc44c42954a7d73b0003f2 简单单向配置: 在oracle官网下载下载 GoldenGate ...
- 小丁带你走进git世界一-git简单配置
小丁带你走进git世界一-git简单配置 1.github的简单配置 配置提交代码的信息,例如是谁提交的代码之类的. git config –global user.name BattleHeaer ...
- 以实际的WebGIS例子探讨Nginx的简单配置
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 以实际项目中的一个例子来详细讲解Nginx中的一般配置,其中涉 ...
- CentOS 7.0 使用 yum 安装 MariaDB 与 MariaDB 的简单配置
1.安装MariaDB 安装命令 yum -y install mariadb mariadb-server 安装完成MariaDB,首先启动MariaDB,两条命令都可以 systemctl sta ...
- ssm简单配置
MyBatis 是一个可以自定义SQL.存储过程和高级映射的持久层框架. MyBatis 摒除了大部分的JDBC代码.手工设置参数和结果集重获. MyBatis 只使用简单的XML 和注解来配置和映射 ...
- 安装MariaDB和简单配置
1.安装MariaDB 安装命令 yum -y install mariadb mariadb-server 安装完成MariaDB,首先启动MariaDB systemctl start maria ...
随机推荐
- 2022-10-25:在一个 2 * 3 的板上(board)有 5 块砖瓦,用数字 1~5 来表示, 以及一块空缺用 0 来表示。一次 移动 定义为选择 0 与一个相邻的数字(上下左右)进行交换.
2022-10-25:在一个 2 * 3 的板上(board)有 5 块砖瓦,用数字 1~5 来表示, 以及一块空缺用 0 来表示.一次 移动 定义为选择 0 与一个相邻的数字(上下左右)进行交换. ...
- 2020-12-22:使用MQ的缺陷有哪些?
福哥答案2020-12-22:系统可用性降低:以前只要担心系统的问题,现在还要考虑 MQ 挂掉的问题,MQ 挂掉,所关联的系统都会无法提供服务.系统复杂性变高:要考虑消息丢失.消息重复消费.消息顺序性 ...
- 2020-02-24:arr是面值数组,其中的值都是正数且没有重复。再给定一个正数aim。每个值都认为是一种面值,且认为张数是无限的。返回组成aim的最少货币数。
福哥答案2020-02-24: 自然智慧即可. 1.递归.有代码. 2.动态规划.dp是二维数组.有代码. 代码用golang编写,代码如下: package main import ( " ...
- vue全家桶进阶之路33:Vue3 计算属性computed
在Vue3中,计算属性可以使用computed函数来定义. computed函数接受两个参数:第一个参数是一个函数,该函数返回计算属性的值:第二个参数是一个可选的配置对象,可以包含getter和set ...
- phpstudy-sqlilabs-less-11
题目:POST - Error Based - Single quotes- String 基于错误的单引号post型字符变形的注入 看到有个账密输入口第一反应尝试post注入 打开post data ...
- SpringIOC个人笔记
上一章讲解了SpringBoot中的 AutoConfiguration自动装配,而这一章就来讲讲自动装配时会用到的Spring三大特性之一的IOC控制反转. 使用过Spring的人都熟知,Spr ...
- GPT虚拟直播Demo系列(二)|无人直播间实现虚拟人回复粉丝
摘要 虚拟人和数字人是人工智能技术在现实生活中的具体应用,它们可以为人们的生活和工作带来便利和创新.在直播间场景里,虚拟人和数字人可用于直播主播.智能客服.营销推广等.接入GPT的虚拟人像是加了超强b ...
- 【Clickhouse】ReplaceingMergeTree引擎final实现合并去重探索
前言 在OLAP实践中,在有数据更新的场景中,比如存储订单数据,我们经常会用到ReplaceingMergeTree引擎来去重数据,以获取数据的最新状态.但是ReplaceingMergeTree引擎 ...
- WPF实现新手引导
1. 半透明灰的遮罩层 新建一个遮盖的window窗体 canvas是后期可以在思显示高亮区域 //定义一个window将它的样式设置透明等可以覆盖到其他窗体上,其中遮罩层使用border控件 //原 ...
- .NET周报 【6月第2期 2023-06-11】
国内文章 如何计算一个实例占用多少内存? https://www.cnblogs.com/artech/p/size-calculation.html 我们都知道CPU和内存是程序最为重要的两类指标, ...