当前位置: 首页 > 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…...

SSY20241002提高组T4题解__纯数论

题面 题目描述 有一天 p e o p 1 e peop1e peop1e 学长梦到了一个丑陋的式子: ∑ i 1 n ( ∑ m 1 R F m ) ! i ! ∑ l 0 i ∑ j 0 ∑ t 1 R F t { K i − l } l ! { i ∑ w 1 R F w − j } j ! \sum_{i1}^n (\sum_{m1}^R F_m)!\times i!\times \sum_{l…...

Python:lambda 函数详解 以及使用

一、lambda 语法 lambda 函数的语法只包含一个语句,表现形式如下: lambda [arg1 [,arg2,.....argn]]:expression 其中,lambda 是 Python 预留的关键字,[arg…] 和 expression 由用户自定义。 具体如下: [arg…] 是参数列表&#…...

【C++】空指针和野指针

文章目录 1.空指针2.野指针总结 1.空指针 概念:指针变量指向内存中编号为0的空间。 用途:初始化指针变量。 注意:空指针指向的内存是不可以访问的。 示例: int main(){//指针变量p指向内存地址编号为0的空间int *PNULL&#…...

大模型提示词

纯输入版提示工程词 输出一个九九乘法口诀表 当然可以!以下是九九乘法口诀表: 1 x 1 1 1 x 2 2 2 x 2 4 1 x 3 3 2 x 3 6 3 x 3 9 1 x 4 4 2 x 4 8 3 x 4 12 4 x 4 16 1 x 5 5 2 x 5 10 3 x 5 15 4 x 5 20 5 …...

在线css像素px到Em的转换器

具体请前往:在线Px转Em工具--将绝对像素(px)长度单位转换为相对长度em...

回溯算法解决排列组合及子集问题

216. 组合总和 III39. 组合总和40. 组合总和 II46. 全排列47. 全排列 II77. 组合 78. 子集 90. 子集 II 以上是力扣设计相关问题的题目。排列组合还是子集问题无非就是从序列 nums 中以给定规则取若干元素,主要有以下几类: 元素无重不可复选&#xff0…...

Unity中Mesh多种网格绘制模式使用方法参考

Unity中MeshFilter中的Mesh默认情况下使用MeshTopology.Trigangles类型绘制网格,就是通常的绘制三角形网格,实际上Mesh有五种绘制模式,对应MeshTopology的枚举,分别是 Triangles网格由三角形构成。Quads网格由四边形构成。Lines网…...

【Spring Security】基于SpringBoot3.3.4版本②如何配置免鉴权Path

基于Spring Boot 3.3.4,详细说明Spring Security 6.3.3的使用 摘要本地开发环境说明SecurityFilterChain介绍application.ymlWen3SecurityProperties.java修改DemoWen3Security修改SecurityFilterChainIgnoredPathController.javaIgnoredPathController2.java启动工程测试测试…...

信息学奥赛复赛复习11-CSP-J2020-04方格取数-动态规划、斐波那契数列、最优子结构、重叠子问题、无后效性

PDF文档回复:20241004 1 P7074 [CSP-J2020] 方格取数 [题目描述] 设有 nm 的方格图,每个方格中都有一个整数。现有一只小熊,想从图的左上角走到右下角,每一步只能向上、向下或向右走一格,并且不能重复经过已经走过的方格&#x…...

Hive数仓操作(十二)

一、Hive 中的行列转换 1. 行转列: collect_list() collect_list() 函数用于将一个列中的数据收集成一个数组。 示例数据文件 假设有一个名为 orders.txt 的文件,内容如下: 1,101 1,101 1,103 2,104 2,105导入数据到 Hive 表 首先&…...