相信大家可能接到过一些电话,听上去不象是真人打过来的,比如:通知“您的信用卡到期了”,或者“您订的飞机航班取消了,请尽快改签或取消行程”,这种就是所谓的“自动外呼”系统,技术上讲,可以通过 esl inbound模式实现(注:对esl不熟悉的朋友,戳这里

大概思路:

  1. 先把一些要外呼的任务计划,落地存储(比如:在某个时间点,应该去拨打哪些号码,放哪些语音)
  2. 搞个job去轮询,把这些任务定时取出来 (注:1-2这二个步骤,也可以用延迟队列来处理,或者db+延迟mq结合实现,远期任务存db,近期任务用job捞出来,扔到延迟MQ中)
  3. inblound模式连接到FS上,然后发命令给FreeSwitch
    • 方法1:调用lua脚本,实现外呼
    • 方法2:直接发originate命令

方法1的实现细节:(适合擅长lua的朋友,复杂逻辑可以放在lua中处理)

  • lua 脚本示例:\FreeSWITCH\scripts\callout.lua
session = freeswitch.Session("user/1000");
while session:ready() do
session:execute("bridge","user/1001");
end

  这只是1个示例,调用这个脚本会先拨打1000分机号,等它接起来后,会再让1000呼分机1001 (以前有些诈骗电话,恶意扣费的大致就是这个原理 ,让你接起来后,自动转到1个境外电话,所以不要随便接陌生电话!!! 技术本身本无善恶,但使用技术的人或公司,是分好坏的!!!)

  tips:lua脚本可以接收动态参数,实际应用中肯定不会象这个简单的示例,把号码写死。

  • 然后在esl inbound的代码中调用:
client.sendAsyncApiCommand("luarun", "callout.lua");

  

方法2的实现细节:直接在java代码中,发起originate呼叫 (适合熟悉 java的朋友)

client.sendAsyncApiCommand("originate user/1000 &bridge(user/1001)")

  效果与lua相同

参考文档:

https://developer.signalwire.com/freeswitch/FreeSWITCH-Explained/Client-and-Developer-Interfaces/Lua-API-Reference/

FreeSwitch: esl inbound模式下外呼拨号的更多相关文章

  1. linux文本模式下使用PPPOE拨号ADSL上网的方法

    转自:http://www.myzhenai.com.cn/post/945.html 转载请注明出处:http://www.myzhenai.com/thread-15431-1-1.html ht ...

  2. 外呼系统APP外呼软件手机电销软件拨号销售软件功能设计

    外呼系统APP外呼软件 1 系统概述 该软件系统设计功能主要为贷款.投资.资产管理等金融中介公司提供方便快捷的线上管理各类资源的一款应用软件工具. 可根据不同职位的账号登录APP来管理电话营销.客户签 ...

  3. 虚拟机中的centos在nat模式下连不上外网

    这两天需要配置ftp服务器,可是虚拟机在nat模式下死活连不上外网,主机能够通过该ssh与虚拟机进行连接,虚拟机也能ping同一网段主机的IP地址,但就是ping不通外网, 开始我是这样配置的: 主机 ...

  4. NAT模式下VMware中CentOS7无法连接外网的解决方法

    故障现象 ----------------------------------------------------------------------------------------------- ...

  5. 用VMWare搭建服务器集群不能上外网的三种模式下对应解决办法

    前言 决心要花费宝贵时间写下这篇心得,是因为从昨天晚上到今天上午被这个VMWare模拟搭建的服务器集群不能上外网的问题搞得很心烦,最后决定跟它杠上了!上午还通过远程连接得到了“空白”同学的帮助,在此表 ...

  6. VMware安装Ubuntu配置NAT模式下静态IP,解决访问外网问题

    安装好VMware后,打开网络连接可以看到有VMware Network Adapter VMnet1和VMware Network Adapter VMnet8两个网络适配器,VMnet1是针对桥接 ...

  7. 本地虚拟机NAT模式下怎么设置才可以访问外网

    记:因为我要在本机虚拟机上安装Docker,结果发现虚拟机环境不能上网,是主机模式.我要调成net模式下才可以访问外网,这就需要怎么设置.下面文章记录一下. 在本机安装VMware软件后,系统中会自动 ...

  8. Azure ARM模式下VNet配置中需要注意的几点事项

    虚拟网络的配置是所有公有云中非常重要的环节.把虚拟网络配置好,对整个系统的管理.维护,以及安全性都非常重要. 本文将介绍Azure在ARM模式下VNet配置中需要特别注意的几点. 一 Azure的VN ...

  9. Self Host模式下的ASP. NET Web API是如何进行请求的监听与处理的?

    构成ASP.NET Web API核心框架的消息处理管道既不关心请求消息来源于何处,也不需要考虑响应消息归于何方.当我们采用Web Host模式将一个ASP.NET应用作为目标Web API的宿主时, ...

  10. SQL Server SQL性能优化之--数据库在“简单”参数化模式下,自动参数化SQL带来的问题

    数据库参数化的模式 数据库的参数化有两种方式,简单(simple)和强制(forced),默认的参数化默认是“简单”,简单模式下,如果每次发过来的SQL,除非完全一样,否则就重编译它(特殊情况会自动参 ...

随机推荐

  1. ubuntu nginx + php7.2 + mysql5.7环境搭建

    一.换源 备份原来的源 sudo cp /etc/apt/sources.list /etc/apt/sources_init.list 更换源 sudo gedit /etc/apt/sources ...

  2. 23.5K star!零代码构建AI知识库,这个开源神器让问答系统开发像搭积木一样简单!

    嗨,大家好,我是小华同学,关注我们获得"最新.最全.最优质"开源项目和高效工作学习方法 FastGPT 是一个基于大语言模型的智能知识库平台,提供开箱即用的数据处理.RAG检索和可 ...

  3. 大模型应用开发进阶篇:Spring-AI 结合领域驱动开发设计思想

    ​  概要 本文聚焦如何使用spring-AI来开发大模型应用一些进阶技能,包含一套可落地的技术设计模式,读完你将会学习到: 如何使用Spring-AI 开发大模型对话应用 如何综合设计一套适用Spr ...

  4. SpringBoot内容协商(Content Negotiation)二 —— 自定义消息转换器(MessageConverter)

    SpringBoot内置的消息转换器 SpringBoot没有处理返回yaml格式的数据,这里需要手动添加处理这种返回格式的支持. 导入依赖 <dependency> <groupI ...

  5. 【记录】Python爬虫|爬取空间PC版日志模板

    目录 效果 运行结果 模板中免费的部分 损坏的模板 小彩蛋 代码 问题及解决方式 1. 返回数据_callback({})而非json 2. 获取封面图链接 注:2021/7/30做 效果 运行结果 ...

  6. 阿里云Ansible自动化运维平台部署

    以下是在阿里云平台上基于Ansible实现自动化运维的完整实践指南,整合所有核心操作流程和命令,适配指定的服务器规划: 一.环境规划 主机名 IP地址 角色 操作系统 manage01 192.168 ...

  7. HarmonyOS NEXT开发实战教程—搜索页

    今天忙里偷闲,分享一个搜索页实现过程,先上效果图: 界面部分比较简单,大体分为导航栏.历史搜索.猜你想搜和热搜榜几个部分,历史搜索采用用户首选项进行存储数据. 导航栏部分相关代码如下: Flex({d ...

  8. vue3适配移动端的登录实现

    <script lang="ts" setup> import { ref } from 'vue' const PHONE_NUMBER_REGEX = /^1[0- ...

  9. AD 侦查-AS-REP 烘烤攻击

    本文通过 Google 翻译 AD Recon – AS-REP Roasting Attacks 这篇文章所产生,本人仅是对机器翻译中部分表达别扭的字词进行了校正及个别注释补充. 导航 0 前言 1 ...

  10. 解决Mac IntellIJ Idea 卡顿问题,修改内存大小

      我们在工作中,经常会遇到因为IntellIJ Idea内存不足而卡顿的问题,可以通过两种方法调整idea的内存大小.我的IDEA版本是2021.2.   第一种调整内存的方法是 Change Me ...