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

通过freepbx搭建小型电话系统的过程

领导说公司的客服电话需要实现语音导航和非工作时间自动接听播放语音提示的功能。任务自然落到了伟大的程序员的头上,本着为公司节约成本原则遂百度了一番,找到了asterisk 和freeswitch两个比较流行的电话系统。经过对比和考虑公司的情况选择了asterisk系统并用freepbx作为gui管理界面。

安装系统

安装可以通过linux系统源码编译的方式安装也可以通过iso镜像的方式镜像进行安装,这里为了方便我就选择下载iso镜像的方式安装。

为了节约成本从公司找了一台淘汰的pc,主板最好是支持pic插槽。公司的电话线路是模拟线路,话机也是模拟话机,所以还需要一个语音卡这里我用的TDM410P四路模拟语音卡,两个fxo外线接口和两个fxs外线接口,可以从某宝上购买山寨卡。

下载过的iso镜像可以通过u盘启动或者刻录光盘的方式进行安装,首先进入电脑bios设置U盘或者光盘启动。开机进入系统安装界面:
 

image.png


安装的过程比较简单系统推荐的是安装asterisk13版本我直接安装的是asterisk16版本。选择你需要安装的版本直接一路回车就行了,全自动傻瓜化的安装
 

image.png


等待一会直到安装完成,会让你设置系统的root密码。密码设置完成会重启电脑就可以拔掉U盘或者光驱了。重启电脑输入用户名root和刚刚设置的密码进入系统。
 

image.png


在这里可以看到系统的ip地址,打开浏览器输入系统的ip进入web-gui界面。

配置过程

image.png


第一次进入会让你设置管理员的用户名和密码和一些初始化的防火墙配置,一路yes就行了,需要设置语音和时区的时候按照中国的设置就行了。点击FreePBx管理员选项,输入设置的用户名和密码进入系统
 

image.png


首先插入电话线到模拟语音卡,从运营商那边过来的外线接口模拟卡的fxo口这里我接的是1口,模拟话机的电话线接fxs口这里我接的是3口。然后配置模拟语音卡
 

image.png


点击连接选项卡下面的DAHDI配置切换到模拟语音板卡,这里第一次进来系统会有个提示要写入一些配置文件啥的,直接点击enable的就行了。
 

image.png


点击全局设置把语音设置为中文,其他选项默认就行了。点击板卡驱动加载参数设置把Opermode设置为中国,其他的选项默认。
然后需要创建中继,这里根据实际情况我这里是运营商的模拟线路所以选择通信接口连接选项卡下面的中继,选择添加DAHDI中继(有其他线路的可以选择其它中继)
 

image.png


中继名称随便取,呼出号码就填写运营商给的电话号码,DAHDI中继选择外线插入的接口,这里我的是第一个接口选择模拟通道1点击提交保存。
设置出局路由,点击通信接口连接下面的出局线路选项卡添加出局路由
 

image.png


线路名随便写,配置中继顺序选择刚才创建的中继,然后切到Dial Patterns选项卡
 

image.png


配置模式直接输入X.,最后点击提交保存。

设置分机,点击应用配置下面的分机选项卡,添加新的DAHDI分机
 

image.png


显示名也就是分机号码我这里设置的是111,然后切换到Other选项,通道选择话机插到板卡的接口我这里选择的是3
 

image.png


提交保存。

设置呼入路由,点击通信接口连接选项卡下面的入局线路添加呼入路由
 

image.png


描述随便写,设置目的地选择刚才创建的分机111提交保存。现在可以用分机打电话试一试,不出意外的话应该呼入和呼出都是可以的。

上传录音,可以找公司的小姐姐录好语音导航要说的内容和下班之后说的内容wav格式的就行。然后点击管理下面的系统录音选项卡添加录音
 

image.png


名称随便填,选择录音文件上传,点击提交保存。这一步需要把上下班的录音都上传。

设置公告,点击应用下面的公告选项卡点击添加
 

image.png


描述随便填,录音选择刚才上传的系统录音,设置目的地选择分机111,如果是下班时间不需要客服接听的话可以选择Play Recording选择上一步上传的录音。这一步创建两个公告,一个上班时间的选择分机接听的一个下班时间自动播放语音的。

设置上下班时间,选择应用配置下面的时间小组,添加时间小组
 

image.png


很简单设置好上班时间段就行了。

然后点击应用配置下面的时间条件设置添加时间条件控制
 

image.png


名称随便填,时区设置上海,时间小组选择上一步设置的时间小组,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′kx​xy′ky​y​ 矩阵形式: ( x ′ y ′ ) ( k x 0 0 k y ) ( x y ) \be…...

数据在内存中的存储【上】

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

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智慧校园健康驿站体检论坛请假管理系统

摘要 互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对信息管理混乱,出错率高,信息安全性差&#xf…...

【数据分享】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…...

Docker 离线安装指南

参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性,不同版本的Docker对内核版本有不同要求。例如,Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本,Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...

Ubuntu系统下交叉编译openssl

一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动

一、前言说明 在2011版本的gb28181协议中,拉取视频流只要求udp方式,从2016开始要求新增支持tcp被动和tcp主动两种方式,udp理论上会丢包的,所以实际使用过程可能会出现画面花屏的情况,而tcp肯定不丢包,起码…...

VB.net复制Ntag213卡写入UID

本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...

从WWDC看苹果产品发展的规律

WWDC 是苹果公司一年一度面向全球开发者的盛会,其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具,对过去十年 WWDC 主题演讲内容进行了系统化分析,形成了这份…...

java 实现excel文件转pdf | 无水印 | 无限制

文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

优选算法第十二讲:队列 + 宽搜 优先级队列

优选算法第十二讲:队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...

面向无人机海岸带生态系统监测的语义分割基准数据集

描述:海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而,目前该领域仍面临一个挑战,即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...

LRU 缓存机制详解与实现(Java版) + 力扣解决

📌 LRU 缓存机制详解与实现(Java版) 一、📖 问题背景 在日常开发中,我们经常会使用 缓存(Cache) 来提升性能。但由于内存有限,缓存不可能无限增长,于是需要策略决定&am…...

Chromium 136 编译指南 Windows篇:depot_tools 配置与源码获取(二)

引言 工欲善其事,必先利其器。在完成了 Visual Studio 2022 和 Windows SDK 的安装后,我们即将接触到 Chromium 开发生态中最核心的工具——depot_tools。这个由 Google 精心打造的工具集,就像是连接开发者与 Chromium 庞大代码库的智能桥梁…...