拨号计划

<?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>

大致流程

  1. 假设坐席分机号1001、1002、1003、1004拨打611登录到队列中
  2. 客户17712345678拨打0101234567呼入
  3. FreeSWITCH先预应答客户,将客户通话放到队列中
  4. FreeSWITCH查找已登录到队列中的坐席,比如1002
  5. FreeSWITCH将客户通话推到1002坐席,实现通话。
  6. 假设1003坐席暂停接听电话,拨打612退出队列。

[FreeSWITCH]简单配置fifo呼入队列的更多相关文章

  1. Laravel5.4 队列简单配置与使用

    概述 什么是队列? 百度百科是这样说的 “队列”是在传输过程中保存数据的容器. 举几个生活中例子: * iphone手机新款发布,三里屯iphone进的新货.大家要排队买,不能说一大堆人一起冲进去,那 ...

  2. CCNA网络工程师学习进程(6)vlan相关协议的配置与路由器简单配置介绍

        前面已经介绍了大部分与vlan技术相关的交换机的协议的配置,更深层次的还有STP协议和以太网端口聚合技术,接着还会简单介绍一下路由器的基本应用.     (1)STP(Spanning-tre ...

  3. nginx负载均衡简单配置

    nginx负载均衡简单配置准备三台虚拟机来做这个实验:192.168.232.132        web服务器192.168.232.133        web服务器192.168.232.134 ...

  4. Kafka初入门简单配置与使用

    一 Kafka概述 1.1 Kafka是什么 在流式计算中,Kafka一般用来缓存数据,Storm通过消费Kafka的数据进行计算. 1)Apache Kafka是一个开源消息系统,由Scala写成. ...

  5. goldengate原理与简单配置

    goldengate的原理:http://www.ipresst.com/works/52bc44c42954a7d73b0003f2 简单单向配置: 在oracle官网下载下载 GoldenGate ...

  6. 小丁带你走进git世界一-git简单配置

    小丁带你走进git世界一-git简单配置 1.github的简单配置 配置提交代码的信息,例如是谁提交的代码之类的. git config  –global user.name BattleHeaer ...

  7. 以实际的WebGIS例子探讨Nginx的简单配置

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 以实际项目中的一个例子来详细讲解Nginx中的一般配置,其中涉 ...

  8. CentOS 7.0 使用 yum 安装 MariaDB 与 MariaDB 的简单配置

    1.安装MariaDB 安装命令 yum -y install mariadb mariadb-server 安装完成MariaDB,首先启动MariaDB,两条命令都可以 systemctl sta ...

  9. ssm简单配置

    MyBatis 是一个可以自定义SQL.存储过程和高级映射的持久层框架. MyBatis 摒除了大部分的JDBC代码.手工设置参数和结果集重获. MyBatis 只使用简单的XML 和注解来配置和映射 ...

  10. 安装MariaDB和简单配置

    1.安装MariaDB 安装命令 yum -y install mariadb mariadb-server 安装完成MariaDB,首先启动MariaDB systemctl start maria ...

随机推荐

  1. 2022-10-25:在一个 2 * 3 的板上(board)有 5 块砖瓦,用数字 1~5 来表示, 以及一块空缺用 0 来表示。一次 移动 定义为选择 0 与一个相邻的数字(上下左右)进行交换.

    2022-10-25:在一个 2 * 3 的板上(board)有 5 块砖瓦,用数字 1~5 来表示, 以及一块空缺用 0 来表示.一次 移动 定义为选择 0 与一个相邻的数字(上下左右)进行交换. ...

  2. 2020-12-22:使用MQ的缺陷有哪些?

    福哥答案2020-12-22:系统可用性降低:以前只要担心系统的问题,现在还要考虑 MQ 挂掉的问题,MQ 挂掉,所关联的系统都会无法提供服务.系统复杂性变高:要考虑消息丢失.消息重复消费.消息顺序性 ...

  3. 2020-02-24:arr是面值数组,其中的值都是正数且没有重复。再给定一个正数aim。每个值都认为是一种面值,且认为张数是无限的。返回组成aim的最少货币数。

    福哥答案2020-02-24: 自然智慧即可. 1.递归.有代码. 2.动态规划.dp是二维数组.有代码. 代码用golang编写,代码如下: package main import ( " ...

  4. vue全家桶进阶之路33:Vue3 计算属性computed

    在Vue3中,计算属性可以使用computed函数来定义. computed函数接受两个参数:第一个参数是一个函数,该函数返回计算属性的值:第二个参数是一个可选的配置对象,可以包含getter和set ...

  5. phpstudy-sqlilabs-less-11

    题目:POST - Error Based - Single quotes- String 基于错误的单引号post型字符变形的注入 看到有个账密输入口第一反应尝试post注入 打开post data ...

  6. SpringIOC个人笔记

    上一章讲解了SpringBoot中的 AutoConfiguration自动装配,而这一章就来讲讲自动装配时会用到的Spring三大特性之一的IOC控制反转. ​ 使用过Spring的人都熟知,Spr ...

  7. GPT虚拟直播Demo系列(二)|无人直播间实现虚拟人回复粉丝

    摘要 虚拟人和数字人是人工智能技术在现实生活中的具体应用,它们可以为人们的生活和工作带来便利和创新.在直播间场景里,虚拟人和数字人可用于直播主播.智能客服.营销推广等.接入GPT的虚拟人像是加了超强b ...

  8. 【Clickhouse】ReplaceingMergeTree引擎final实现合并去重探索

    前言 在OLAP实践中,在有数据更新的场景中,比如存储订单数据,我们经常会用到ReplaceingMergeTree引擎来去重数据,以获取数据的最新状态.但是ReplaceingMergeTree引擎 ...

  9. WPF实现新手引导

    1. 半透明灰的遮罩层 新建一个遮盖的window窗体 canvas是后期可以在思显示高亮区域 //定义一个window将它的样式设置透明等可以覆盖到其他窗体上,其中遮罩层使用border控件 //原 ...

  10. .NET周报 【6月第2期 2023-06-11】

    国内文章 如何计算一个实例占用多少内存? https://www.cnblogs.com/artech/p/size-calculation.html 我们都知道CPU和内存是程序最为重要的两类指标, ...