通过freepbx搭建小型电话系统的过程
领导说公司的客服电话需要实现语音导航和非工作时间自动接听播放语音提示的功能。任务自然落到了伟大的程序员的头上,本着为公司节约成本原则遂百度了一番,找到了asterisk 和freeswitch两个比较流行的电话系统。经过对比和考虑公司的情况选择了asterisk系统并用freepbx作为gui管理界面。
安装系统
安装可以通过linux系统源码编译的方式安装也可以通过iso镜像的方式镜像进行安装,这里为了方便我就选择下载iso镜像的方式安装。
为了节约成本从公司找了一台淘汰的pc,主板最好是支持pic插槽。公司的电话线路是模拟线路,话机也是模拟话机,所以还需要一个语音卡这里我用的TDM410P四路模拟语音卡,两个fxo外线接口和两个fxs外线接口,可以从某宝上购买山寨卡。
下载过的iso镜像可以通过u盘启动或者刻录光盘的方式进行安装,首先进入电脑bios设置U盘或者光盘启动。开机进入系统安装界面:
安装的过程比较简单系统推荐的是安装asterisk13版本我直接安装的是asterisk16版本。选择你需要安装的版本直接一路回车就行了,全自动傻瓜化的安装
等待一会直到安装完成,会让你设置系统的root密码。密码设置完成会重启电脑就可以拔掉U盘或者光驱了。重启电脑输入用户名root和刚刚设置的密码进入系统。
在这里可以看到系统的ip地址,打开浏览器输入系统的ip进入web-gui界面。
配置过程
第一次进入会让你设置管理员的用户名和密码和一些初始化的防火墙配置,一路yes就行了,需要设置语音和时区的时候按照中国的设置就行了。点击FreePBx管理员选项,输入设置的用户名和密码进入系统
首先插入电话线到模拟语音卡,从运营商那边过来的外线接口模拟卡的fxo口这里我接的是1口,模拟话机的电话线接fxs口这里我接的是3口。然后配置模拟语音卡
点击连接选项卡下面的DAHDI配置切换到模拟语音板卡,这里第一次进来系统会有个提示要写入一些配置文件啥的,直接点击enable的就行了。
点击全局设置把语音设置为中文,其他选项默认就行了。点击板卡驱动加载参数设置把Opermode设置为中国,其他的选项默认。
然后需要创建中继,这里根据实际情况我这里是运营商的模拟线路所以选择通信接口连接选项卡下面的中继,选择添加DAHDI中继(有其他线路的可以选择其它中继)
中继名称随便取,呼出号码就填写运营商给的电话号码,DAHDI中继选择外线插入的接口,这里我的是第一个接口选择模拟通道1点击提交保存。
设置出局路由,点击通信接口连接下面的出局线路选项卡添加出局路由
线路名随便写,配置中继顺序选择刚才创建的中继,然后切到Dial Patterns选项卡
配置模式直接输入X.,最后点击提交保存。
设置分机,点击应用配置下面的分机选项卡,添加新的DAHDI分机
显示名也就是分机号码我这里设置的是111,然后切换到Other选项,通道选择话机插到板卡的接口我这里选择的是3
提交保存。
设置呼入路由,点击通信接口连接选项卡下面的入局线路添加呼入路由
描述随便写,设置目的地选择刚才创建的分机111提交保存。现在可以用分机打电话试一试,不出意外的话应该呼入和呼出都是可以的。
上传录音,可以找公司的小姐姐录好语音导航要说的内容和下班之后说的内容wav格式的就行。然后点击管理下面的系统录音选项卡添加录音
名称随便填,选择录音文件上传,点击提交保存。这一步需要把上下班的录音都上传。
设置公告,点击应用下面的公告选项卡点击添加
描述随便填,录音选择刚才上传的系统录音,设置目的地选择分机111,如果是下班时间不需要客服接听的话可以选择Play Recording选择上一步上传的录音。这一步创建两个公告,一个上班时间的选择分机接听的一个下班时间自动播放语音的。
设置上下班时间,选择应用配置下面的时间小组,添加时间小组
很简单设置好上班时间段就行了。
然后点击应用配置下面的时间条件设置添加时间条件控制
名称随便填,时区设置上海,时间小组选择上一步设置的时间小组,Destination matches选择之前创建的公告下面的上班时间的语音导航,Destination non-matches选择之前创建的公告休息时候自动接听的语音。
最后把时间条件控制设置到入局路由上,点击通信接口连接下面的入局线路,设置未知目的地为时间条件设置,提交保存就完成了。
这时候上班时间有电话进来,就会播放欢迎提示然后转接的客服分机,下班时间电话进来就会循环播放下班的语音提示,客服分机不会振铃
目前为止,领导的需求基本实现了。其实Asterisk的功能还是非常强大的,通过其强大的AGI和AMI接口可以用php java JavaScript各种编程语音对接内部的crm、客户等系统,轻松实现来电弹屏,和一些定制化的需求。
相关文章:

通过freepbx搭建小型电话系统的过程
领导说公司的客服电话需要实现语音导航和非工作时间自动接听播放语音提示的功能。任务自然落到了伟大的程序员的头上,本着为公司节约成本原则遂百度了一番,找到了asterisk 和freeswitch两个比较流行的电话系统。经过对比和考虑公司的情况选择了asterisk系…...
pdf处理1
处理PDF文件以构建数据索引是一个复杂但关键的步骤,尤其是因为PDF格式的文件通常包含多种元素,如文本、图片、表格、标题等。以下是一个通俗易懂的详细解释,帮助你理解PDF文件是如何被处理和解析的: 1. PDF文件的基本结构 PDF&a…...
区间覆盖(贪心)
给定 NN 个闭区间 [ai,bi][ai,bi] 以及一个线段区间 [s,t][s,t],请你选择尽量少的区间,将指定线段区间完全覆盖。 输出最少区间数,如果无法完全覆盖则输出 −1−1。 输入格式 第一行包含两个整数 ss 和 tt,表示给定线段区间的两…...
[rk3588 debain]cpu死锁问题解决
1 问题 rk3588机器上运行客户如下程序程序发生“BUG: spinlock recursion on CPU#0” ./rtsp RtspWrapper.xml 应用程序功能是:ip摄像头推流,通过rtsp协议拉流,对视频流做裁剪,缩放工作。首先,根据视频帧率每秒钟处理…...

CMU 10423 Generative AI:lec18(大模型的分布式训练)
这个文档主要讲解了分布式训练(Distributed Training),特别是如何在多GPU上训练大规模的语言模型。以下是主要内容的概述: 1. 问题背景 训练大规模语言模型的主要挑战是内存消耗。 训练过程中,内存消耗主要来源于两个…...
项目级别的配置文件 `.git/config`||全局配置文件 `~/.gitconfig`
Git 项目级别的配置文件 .git/config,该文件包含了当前项目(仓库)的特定配置。 与全局配置文件 ~/.gitconfig 不同,这里的设置仅对当前项目生效。 配置内容解释 [core]repositoryformatversion 0filemode truebare falselog…...

【Docker】配置文件
问题 学习Docker期间会涉及到docker的很多配置文件,可能会涉及到的会有: /usr/lib/systemd/system/docker.service 【docker用于被systemd管理的配置文件】 /etc/systemd/system/docker.service.d【覆盖配置文件的存放处】 /etc/systemd/system/mul…...

坐标系变换总结
二维情况下的转换 1 缩放变换 形象理解就是图像在x方向和y方向上放大或者缩小。 代数形式: { x ′ k x x y ′ k y y \begin{cases} x k_x x \\ y k_y y \end{cases} {x′kxxy′kyy 矩阵形式: ( x ′ y ′ ) ( k x 0 0 k y ) ( x y ) \be…...

数据在内存中的存储【上】
一.整型在内存中的存储 在讲解操作符的时候,我们就讲过了下面的内容: 整数的2进制表示方法有三种,即 原码、反码和补码 有符号的整数,三种表示方法均有符号位和数值位两部分,符号位都是用0表示"正"ÿ…...

Prometheus之Pushgateway使用
Pushgateway属于整个架构图的这一部分 The Pushgateway is an intermediary service which allows you to push metrics from jobs which cannot be scraped. The Prometheus Pushgateway exists to allow ephemeral and batch jobs to expose their metrics to Prometheus. S…...
Rust Web开发常用库
本集合中所有库都是在开源项目中广泛使用且在2024年积极维护的库,排名靠前的库是当前使用比较广泛的,不全面但够用 Rust异步运行时 tokio:异步运行时 async_std:与标准库兼容性较强的运行时 monoio:字节开源 smol…...

ios内购支付-支付宝APP支付提现
文章目录 前言一、IOS内购支付(ios订单生成自己写逻辑即可)1.支付回调票据校验controller1.支付回调票据校验server 二、安卓APP支付宝支付1.生成订单返回支付宝字符串(用于app拉起支付宝,这里用的是证书模式)2.生成订…...
新课发布|鸿蒙HarmonyOS Next商城APP应用开发实战
2024年年初,鸿蒙HarmonyOS Next星河版强势发布,随着鸿蒙系统的普及和应用场景的拓展,市场需求将持续增加。鸿蒙系统已经应用于华为的智能手机、平板电脑、智能家居等多个领域,并有望在未来拓展到智能汽车、物联网等更多领域。这为…...

基于Java,SpringBoot,Vue智慧校园健康驿站体检论坛请假管理系统
摘要 互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对信息管理混乱,出错率高,信息安全性差…...

【数据分享】2001-2023年我国省市县镇四级的逐月平均气温数据(免费获取/Shp/Excel格式)
之前我们分享过1901-2023年1km分辨率逐月平均气温栅格数据,该数据来源于国家青藏高原科学数据中心。为方便大家使用,我们还基于上述平均气温栅格数据将数据处理为Shp和Excel格式的省市县三级逐月平均气温数据(可查看之前的文章获悉详情&#…...
c#代码介绍23种设计模式_16迭代器模式
目录 1、迭代器模式的介绍 2、迭代器模式的定义 3、迭代器模式的结构 4、代器模式角色组成 5、迭代器实现 6、迭代器模式的适用场景 7、迭代器模式的优缺点 8、.NET中迭代器模式的应用 9、实现思路 1、迭代器模式的介绍 迭代器是针对集合对象而生的,对于集合对象而言…...
408算法题leetcode--第23天
236. 二叉树的最近公共祖先 236. 二叉树的最近公共祖先\思路:递归,如注释时间和空间:O(n) /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode(int x) …...

帝国CMS系统开启https后,无法登陆后台的原因和解决方法
今天本地配置好了帝国CMS7.5,传去服务器后,使用http访问一切正常。但是当开启了https(SSL)后,后台竟然无法登陆进去了。 输入账号密码后,点击登陆,跳转到/e/admin/ecmsadmin.php就变成页面一片…...

根据视频id查询播放量
声明:文章仅用于学习交流,如有侵权请联系删除 如何根据视频ID查询视频的播放数量 在数字化时代,视频内容的消费已成为人们日常生活的重要组成部分。无论是社交媒体平台上的短视频,还是视频分享网站上的长视频,了解视频的播放数量…...
初始爬虫11
1.斗鱼selenium爬取 # -*- coding: utf-8 -*- from selenium import webdriver from selenium.webdriver.common.by import By import timeclass Douyu(object):def __init__(self):self.url https://www.douyu.com/directory/allself.driver webdriver.Chrome()self.driver…...

装饰模式(Decorator Pattern)重构java邮件发奖系统实战
前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其…...

springboot 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具
作者:来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗?了解下一期 Elasticsearch Engineer 培训的时间吧! Elasticsearch 拥有众多新功能,助你为自己…...

ESP32读取DHT11温湿度数据
芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...
AspectJ 在 Android 中的完整使用指南
一、环境配置(Gradle 7.0 适配) 1. 项目级 build.gradle // 注意:沪江插件已停更,推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...
《C++ 模板》
目录 函数模板 类模板 非类型模板参数 模板特化 函数模板特化 类模板的特化 模板,就像一个模具,里面可以将不同类型的材料做成一个形状,其分为函数模板和类模板。 函数模板 函数模板可以简化函数重载的代码。格式:templa…...
【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制
使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下,限制某个 IP 的访问频率是非常重要的,可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案,使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...
HybridVLA——让单一LLM同时具备扩散和自回归动作预测能力:训练时既扩散也回归,但推理时则扩散
前言 如上一篇文章《dexcap升级版之DexWild》中的前言部分所说,在叠衣服的过程中,我会带着团队对比各种模型、方法、策略,毕竟针对各个场景始终寻找更优的解决方案,是我个人和我司「七月在线」的职责之一 且个人认为,…...
32单片机——基本定时器
STM32F103有众多的定时器,其中包括2个基本定时器(TIM6和TIM7)、4个通用定时器(TIM2~TIM5)、2个高级控制定时器(TIM1和TIM8),这些定时器彼此完全独立,不共享任何资源 1、定…...
在RK3588上搭建ROS1环境:创建节点与数据可视化实战指南
在RK3588上搭建ROS1环境:创建节点与数据可视化实战指南 背景介绍完整操作步骤1. 创建Docker容器环境2. 验证GUI显示功能3. 安装ROS Noetic4. 配置环境变量5. 创建ROS节点(小球运动模拟)6. 配置RVIZ默认视图7. 创建启动脚本8. 运行可视化系统效果展示与交互技术解析ROS节点通…...