当前位置: 首页 > news >正文

Freeswitch实现软电话功能

 

1.话务步骤

分机注册->登录->拨打电话-> 

/*<--注册分机-->*/

 EslMessage eslMessage1 =inboundClient.sendApiCommand("callcenter_config agent set contact", "21009@default user/1000");

System.out.println("#####dial eslMessage: "+eslMessage1.getHeaders().toString()); System.out.println("#####dial eslMessage: "+eslMessage1.getBodyLines().toString()+"=&&="+eslMessage1.getBodyLines().get(0));

/*<--查询分机状态-->*/
// EslMessage eslMessage=inboundClient.sendApiCommand("list_users", "group default user 1000"); //System.out.println("#####eslMessage: "+eslMessage.getHeaders().toString()); //System.out.println("#####eslMessage: "+eslMessage.getBodyLines().get(0));/*<--播放欢迎语-->*/
//inboundClient.sendBackgroundApiCommand("originate", "user/1000 &playback(/usr/local/freeswitch/sounds/huanying.wav)");
//inboundClient.sendBackgroundApiCommand("callcenter_config agent set status", "21009@default 'Available'");/*<--就绪-->*/
//inboundClient.sendBackgroundApiCommand("callcenter_config agent set status", "21009@default 'Available'");/*<--登出-->*/
//inboundClient.sendBackgroundApiCommand("callcenter_config agent set status", "21009@default 'Logged Out'");/*<--拨打电话异步(没有事件消息)-->*/
//inboundClient.sendBackgroundApiCommand("originate", "user/1000 1001");/*<--拨打电话同步-->*/
//EslMessage eslMessage1=inboundClient.sendApiCommand("originate", "user/1000 1001");
//System.out.println("#####dial eslMessage: "+eslMessage1.getHeaders().toString());
//System.out.println("#####dial eslMessage: "+eslMessage1.getBodyLines().toString()+"&&"+eslMessage1.getBodyLines().get(0));/*<--登录到queue-->*/
//inboundClient.sendBackgroundApiCommand("callcenter_config tier add", "support@default 21009@default 1 1");
//callcenter_config tier set [key(state|level|position)] [queue name] [agent name] [value] //*<--登录到queue-->*/
// inboundClient.sendBackgroundApiCommand("callcenter_config tier add", "support@default 21009@default 1 1");//EslMessage eslMessage1=inboundClient.sendApiCommand("callcenter_config tier add", "support@default 21009@default 1 1");;
//#####dial eslMessage: [-ERR Tier already exist!]&&-ERR Tier already exist!
//System.out.println("#####dial eslMessage: "+eslMessage1.getHeaders().toString());
//System.out.println("#####dial eslMessage: "+eslMessage1.getBodyLines().toString()+"&&"+eslMessage1.getBodyLines().get(0));/*<--这个queue未就绪-->*/
// support@default 21009@default on break
//inboundClient.sendBackgroundApiCommand("callcenter_config tier set state", "support@default 21009@default on break");
System.out.println("###################Fs excuted start############");

相关文章:

Freeswitch实现软电话功能

1.话务步骤 分机注册->登录->拨打电话-> /*<--注册分机-->*/ EslMessage eslMessage1 inboundClient.sendApiCommand("callcenter_config agent set contact", "21009default user/1000"); System.out.println("#####dial eslMessa…...

RMI初探

接口 import java.rmi.Remote; import java.rmi.RemoteException;public interface IFoo extends Remote {String say(String name) throws RemoteException; }import java.rmi.Remote; import java.rmi.RemoteException;public interface IBar extends Remote {String buy(Str…...

NLP之BM25:BM25算法的简介、相关库、案例应用之详细攻略

NLP之BM25:BM25算法的简介、相关库、案例应用之详细攻略 目录 相关文章 NLP之BM25:BM25算法的简介、相关库、案例应用之详细攻略 Py之rank_bm25:rank_bm25的简介、安装、使用方法 BM25算法的简介...

YOLOv5改进,全维动态卷积

目录 一、理论部分 网络结构 实验结果 二、应用到YOLOv5 代码 yaml配置文件...

TypeScript学习Ts的类型声明,关于类

TypeScript是什么&#xff1f; 以JavaScript为基础构建的语言一个JavaScript的超集可以在任何支持JavaScript的平台上执行TypeScript扩展了JavaScript并添加了类型TS不能被JS解析器直接执行 TypeScript开发环境搭建 下载Node.js安装Node.js使用npm全局安装TypeScript&#x…...

Zabbix监控

一、zabbix 是什么&#xff1f; ●zabbix 是一个基于 Web 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。 ●zabbix 能监视各种网络参数&#xff0c;保证服务器系统的安全运营&#xff1b;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题…...

2023-11-04:用go语言,如果n = 1,打印 1*** 如果n = 2,打印 1*** 3*** 2*** 如果n = 3,打印

2023-11-04&#xff1a;用go语言&#xff0c;如果n 1&#xff0c;打印 1*** 如果n 2&#xff0c;打印 1***3*** 2*** 如果n 3&#xff0c;打印 1***3*** 2***4*** 5*** 6*** 如果n 4&#xff0c;打印 1***3*** 2***4*** 5*** 6***10** 9*** 8*** 7*** 输入…...

顺序表学习笔记(基础)

属于线性表旗下的一种&#xff0c;所以专门存储 one-to-one 关系的数据。 顺序表提供的具体实现方案是&#xff1a;将数据全部存储到一整块内存空间中&#xff0c;数据元素之间按照次序挨个存放。&#xff08;类似数组&#xff09; 顺序表中除了存储数据本身的值外&#xff0…...

PyTorch入门学习(十九):完整的模型验证套路

目录 一、图像加载和数据转换 二、模型加载 三、前向推理 四、结果解释 一、图像加载和数据转换 首先&#xff0c;需要加载待验证的图像&#xff0c;并将其转换为模型期望的输入大小和数据类型。以下是加载图像并进行数据转换的示例&#xff1a; import torch import tor…...

YOLO目标检测数据集大全【含voc(xml)、coco(json)和yolo(txt)三种格式标签+划分脚本+训练教程】(持续更新建议收藏)

一、作者介绍&#xff1a;资深图像算法工程师&#xff0c;YOLO算法专业玩家&#xff1b;擅长目标检测、语义分割、OCR等。 二、数据集介绍&#xff1a; 真实场景的高质量图片数据&#xff0c;数据场景丰富&#xff0c;分享的绝大部分数据集已应用于各种实际落地项目。所有数据…...

PHP保存时自动删除末尾的空格,phpstorm自动删除空白字符串

最近有个活儿&#xff0c;修改一个财务软件。 修改后给客户验收的过程中&#xff0c;客户反应有一个txt表格导出功能不能用了。之前是好的。 这次是新增&#xff0c;老的这个功能碰都没碰过&#xff0c;怎么能有问题呢&#xff1f;我心里OS 下班后我立马用系统导出TXT&#…...

2022 icpc杭州站 C. No Bug No Game - 背包dp

题面 分析 能拿整个 p i p_i pi​的就拿整个的&#xff0c;不能拿了可以拿一部分的&#xff0c;因此可以分成0和1两种情况&#xff0c;0表示拿整个的&#xff0c;1表示还可以拿部分的&#xff0c;两种情况放在一起做一遍01背包&#xff0c;找到最大价值。 代码 #include &l…...

Temp directory ‘C:\WINDOWS\TEMP‘ does not exist

问题描述 解决方法 管理员权限问题&#xff0c;进入temp文件夹更改访问权限即可。 点击 temp文件夹 属性 -> 安全 -> 高级 -> 更改主体Users权限 给读取和写入权限 参考博客 开发springboot项目时无法启动Temp directory ‘C: \WINDOWS\TEMP‘ does not exist...

【单片机基础小知识-如何通过指针来读写寄存器】

寄存器的本质就是内存&#xff0c;RAM&#xff0c;而指针是可以对内存进行操作的&#xff0c;因此可以通过指针来读写寄存器。 如何读取以下一片地址&#xff1a; 步骤1、首地址 结构体&#xff0c;它所占用的内存空间大小与它内部成员有关。 构造一个28字节的类型 type…...

CountDownTimer倒计时使用

CountDownTimer倒计时使用 CountDownTimer使用 CountDownTimer 代码片. // An highlighted blockprivate MyCountDownTimer timer;private final long TIME 7 * 1000L;private final long INTERVAL 1000L;private class MyCountDownTimer extends CountDownTimer{/*** p…...

MySQL索引事务存储引擎

索引&#xff1a;是一个排序的列表 列表中存储的是索引的值和包含这个值数据所在行的物理地址 索引的作用 利用索引数据库可以快速定位 大大加快查询速度表的数据很大 或查询需要关联多个表 使用索引也可以查询速度加快表与表之间的连接速度使用分组和排序时可以大大减少时间提…...

【服务器使用】vscode winscp进行服务器容器连接(含修改初始密码)

1&#xff1a;获取docker的登陆信息 例如节点&#xff08;host&#xff09;、端口&#xff08;port&#xff09;、密码&#xff08;passwd&#xff09;等信息&#xff0c;这个自己找组内的前辈获取即可 2&#xff1a;配置config文件 找到vscode里面ssh处的config文件 人工找…...

Go和JavaScript结合使用:抓取网页中的图像链接

前言 在当今数字化时代&#xff0c;数据是金钱的源泉&#xff0c;对于许多项目和应用程序来说&#xff0c;获取并利用互联网上的数据是至关重要的。其中之一的需求场景是从网页中抓取图片链接&#xff0c;这在各种项目中都有广泛应用&#xff0c;特别是在动漫类图片收集项目中…...

通信协议---串口、RS232、RS485

串口 起始位&#xff1a;低电平(0) 数据位&#xff1a;通常为8位 校验位&#xff1a;数据位校验位中为1的位是奇或偶 停止位&#xff1a;高电平(1) 5V TTL电平标准 2.4V~5V&#xff1a;逻辑1; 0~0.4V:逻辑0。 图中是对字符’c’进行数据传输&#xff0c;十进制99&#xff0c;…...

UE5 c++将自定义UserWdiget添加到对应菜单栏

前言&#xff1a; 为了实现与UserWidget一致的右键添加&#xff0c;便有了此章 注&#xff1a;这里使用的是UE5.3 目标内容&#xff1a; 这里可以参考UserWidget的源码&#xff0c;拷贝一份属于自己的就ok&#xff08;本篇章只是全改成了属于自己的CommonUserWidget&#xff…...

效率革命:借力快马AI生成智能安装脚本,一键部署复杂工程环境

今天想和大家分享一个提升开发效率的实用技巧&#xff1a;如何用AI生成智能安装脚本&#xff0c;快速搭建复杂的微服务演示环境。最近在尝试搭建一个包含用户服务、订单服务和商品服务的本地演示环境时&#xff0c;发现手动配置实在太耗时&#xff0c;于是尝试用InsCode(快马)平…...

3步搞定Linux启动盘:Rufus格式化ext文件系统全攻略

3步搞定Linux启动盘&#xff1a;Rufus格式化ext文件系统全攻略 【免费下载链接】rufus The Reliable USB Formatting Utility 项目地址: https://gitcode.com/GitHub_Trending/ru/rufus 还在为Windows下创建Linux启动盘而烦恼吗&#xff1f;每次制作Linux安装U盘都要在虚…...

终极指南:如何永久解决IDM激活弹窗问题 - 完整技术方案

终极指南&#xff1a;如何永久解决IDM激活弹窗问题 - 完整技术方案 【免费下载链接】IDM-Activation-Script IDM Activation & Trail Reset Script 项目地址: https://gitcode.com/gh_mirrors/id/IDM-Activation-Script Internet Download Manager&#xff08;IDM&a…...

(新手)Linux 输入子系统实战教程 —— 02设备信息查询 + 输入事件读取(阻塞 / 非阻塞模式)

Linux 输入子系统实战教程 —— 设备信息查询 输入事件读取&#xff08;阻塞 / 非阻塞模式&#xff09;完整学习文档本文档基于Linux 输入设备事件读取程序编写&#xff0c;包含完整注释源码、核心原理、逐模块解析、真实实验现象、错误原因分析&#xff0c;专为嵌入式 Linux …...

别再只用Topic和Service了!ROS Action在无人机巡检项目中的三大高阶用法

别再只用Topic和Service了&#xff01;ROS Action在无人机巡检项目中的三大高阶用法 当你在凌晨三点调试无人机代码&#xff0c;发现巡检任务因为一个未处理的异常状态而卡死在空中&#xff0c;而所有日志都淹没在Topic的洪流中时&#xff0c;就会明白为什么ROS Action不是&quo…...

90% LVGL 新手踩大坑!分不清「父子控件」和「Python 子类」

上面我们说到了 LVGL 采用父子对象模型&#xff1a;所有 UI 元素都是 lv.obj 的子类&#xff0c;通过父子关系构建界面层级&#xff08;屏幕 → 按钮 → 标签&#xff09;&#xff0c;这是新手最容易混淆的两个「父子 / 子类」概念。 首先要明确&#xff1a;LVGL 里的「父子对…...

用AirScript脚本自动发送生日祝福邮件(极简版)

1. 为什么需要自动发送生日祝福邮件&#xff1f; 你有没有遇到过这样的情况&#xff1f;明明记得朋友的生日快到了&#xff0c;结果当天忙得团团转&#xff0c;等想起来的时候已经过了零点。或者更尴尬的是&#xff0c;设置了手机提醒&#xff0c;但看到通知后想着"等会儿…...

Fire Dynamics Simulator:火灾动力学模拟的核心引擎与实战应用

Fire Dynamics Simulator&#xff1a;火灾动力学模拟的核心引擎与实战应用 【免费下载链接】fds Fire Dynamics Simulator 项目地址: https://gitcode.com/gh_mirrors/fd/fds 揭示核心价值&#xff1a;为何FDS成为火灾模拟领域的标准工具&#xff1f; 在建筑安全设计、…...

Kali桥接模式实战:从静态IP到动态DHCP的完整网络配置指南

1. 为什么需要桥接模式&#xff1f; 很多刚接触Kali Linux的朋友都会有这样的疑问&#xff1a;为什么虚拟机要配置桥接模式&#xff1f;简单来说&#xff0c;桥接模式让虚拟机就像一台真实存在的物理设备一样接入网络。想象一下你家里新买了一台电脑&#xff0c;插上网线就能直…...

SFML终极指南:5步掌握跨平台多媒体开发

SFML终极指南&#xff1a;5步掌握跨平台多媒体开发 【免费下载链接】SFML Simple and Fast Multimedia Library 项目地址: https://gitcode.com/gh_mirrors/sf/SFML SFML&#xff08;Simple and Fast Multimedia Library&#xff09;是一个简单、快速、跨平台的多媒体AP…...