相信大家可能接到过一些电话,听上去不象是真人打过来的,比如:通知“您的信用卡到期了”,或者“您订的飞机航班取消了,请尽快改签或取消行程”,这种就是所谓的“自动外呼”系统,技术上讲,可以通过 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. 2个小时1.5w字| React & Golang 全栈微服务实战

    目录 前言 Golang 入门教程 1. 下载与环境配置 安装 Go Windows 安装 macOS 安装 Linux 安装 理解 GOROOT 和 GOPATH GOROOT GOPATH Go ...

  2. 【HUST】网安|操作系统实验|实验二 进程管理与死锁

    目的 1)理解进程/线程的概念和应用编程过程: 2)理解进程/线程的同步机制和应用编程: 任务 1)在Linux下创建一对父子进程. 2)在Linux下创建2个线程A和B,循环输出数据或字符串. 3) ...

  3. Linux 下搭建 Spark3 + Jupyter 环境

    最近想着来玩一玩大数据, 前段时间集中过了一遍 java, 最近又看了一些基础的 scala, 我感觉吧, 我都不想学. 还是觉得用 sql, javascript, python 这种脚本语言操作起 ...

  4. Go Gob编码

    gob(Go binary)是Goland包自带的一个数据结构序列化的编码/解码工具.编码使用Encoder,解码使用Decoder.一种典型的应用场景就是RPC(remote procedure c ...

  5. VSCode将本地项目代码上传到gitee中

    1.创建远程仓库,这个就是该仓库的地址   2.查看git的版本 git --version 3.使用git init命令初始化git 4.使用git status命令来查看文件是否被修改  : gi ...

  6. 20250528 - Usual 攻击事件: 价差兑换与请君入瓮

    背景信息 项目背景 VaultRouter 合约有用特权身份,可以通过 Usd0PP 合约将 USD0++ 以 1:1 的比例兑换成 USD0,随后通过 UniV3 将 USD0 swap 成 sUS ...

  7. LeetCode 914卡盘分组

    看了官方题解如下: class Solution { public boolean hasGroupsSizeX(int[] deck) { int N = deck.length; int[] co ...

  8. 浅谈开源在线客服系统与 APP 集成的技术方案与优劣势

    在为移动端 App 接入在线客服系统的过程中,我经历了长时间的技术选型探索.最初,我也曾被一些"技术理想主义"选项所吸引,比如让用户自己研发界面我提供 API 以获得最高自由度,或 ...

  9. 第k个数

    第K个数 给定一个长度为 n 的整数数列,以及一个整数 k,请用快速选择算法求出数列从小到大排序后的第 k 个数. 所用方法和基本原理 快速选择算法是基于快速排序思想的一种选择算法.其基本原理如下: ...

  10. 十四、buildroot 系统package新增应用 编写规则

    4.7.2.编写规则 1.规范概述 ​ Buildroot 像一个「自动化厨房」,每个包是一道菜.如果菜名(包名).食材位置(路径).做法(脚本)不统一,厨房会报错.规范是让机器人(Buildroot ...