由于小公司向远程办公的过渡,经常会出现电话通讯问题。通常,这些公司坐在租用的办公室中,而商务中心则提供电话服务。您将需要在家中连接员工:最便宜的方法是在虚拟机中部署免费的开源VoIP服务器Asterisk。在本文中,我们以Ubuntu 20.04为例,但此食谱也适用于其他流行发行版-18.04和18.10,以及(从理论上讲,我们尚未测试)Debian的当前版本。
星号+ Ubuntu + VDS = IP-PBX
还有其他VoIP服务器可用,并且某些商业产品可以在有限的时间内免费使用。它们被认为更容易配置,但是需要Windows才能从您自己的Linux发行版运行或安装。这立即切断了大多数廉价的VDS,并且您自己的带有数据传输通道的硬件或租用专用硬件服务器的成本更高。 Free Asterisk可以部署在任何虚拟机上,实现起来并不难。这甚至不需要从源头组装。在Asterisk的帮助下,可以轻松地在IP电话之间建立电话连接(硬件和软件),并且如果您连接到外部VoIP提供商,那么只需少量的钱,您就可以获得功能齐全的IP PBX(IP-PBX)。如果对她的需求消失了您可以随时拒绝-租金比投资硬件和软件更有利可图。
安装星号
对于测试,我们使用了便宜的虚拟机,但战斗配置取决于客户的需求。这就是VDS的主要优势所在:可以最少订购资源,然后在需要时添加资源。通常,为使PBX全面运行,您至少需要2 GB的RAM,但是如果其中有很多,则不难放弃额外的资源。
在Ubuntu 20.04上安装VoIP服务器是该任务中最简单的部分。所需的软件包在官方发行版本库中,并通过几个命令添加到系统中。在Ubuntu中,我们使用sudo权限升级机制,而在Debian中,我们可能不需要它,因为在这里练习了具有root权限的交互式会话:
sudo apt-get update
sudo apt-get install asterisk asterisk-dahdi
Asterisk服务通过systemd启动和停止,安装后,您可以使用以下命令查看其状态
systemctl
:
sudo systemctl status asterisk
如果一切顺利,结果将是这样的:
要在手动模式下启动/停止/重新启动服务(例如,在更改配置文件之后),请使用以下命令:
sudo systemctl start asterisk
sudo systemctl stop asterisk
sudo systemctl restart asterisk
到目前为止,一切都是标准的,但是我们冒险中最激动人心的部分就在于前方。VoIP服务器需要配置。
配置星号
配置文件位于/ etc / asterisk目录中,并且那里有很多文件。
ls /etc/asterisk
该产品非常灵活,并且具有很多可能性,但是我们不需要它们中的大多数来解决简单的任务。在本文中,我们将限制自己编辑两个配置文件:/etc/asterisk/sip.conf和/etc/asterisk/extensions.conf。您应该首先备份它们:
sudo mv /etc/asterisk/sip.conf /etc/asterisk/sip.conf.b
sudo mv /etc/asterisk/extensions.conf /etc/asterisk/extensions.conf.b
让我们继续编辑新的配置文件(最好奇的是可以研究发行版备份,有很多有趣的事情):
sudo nano /etc/asterisk/sip.conf
您需要向文件中添加至少两个用户(内部订户),其编号分别为1001和1002,并为其设置密码(secret参数)。在您的服务器上,内部数字和密码将有所不同: 类似地,我们创建了一个新的extensions.conf:
[general]
context=default
allowoverlap=no
udpbindaddr=0.0.0.0
tcpenable=no
tcpbindaddr=0.0.0.0
transport=udp
srvlookup=yes
[1001]
type=friend
host=dynamic
secret=1234
[1002]
type=friend
host=dynamic
secret=5678
sudo nano /etc/asterisk/extensions.conf
其内容如下: 更改文件的所有者和访问权限,因为特别是我们PBX用户的密码
[general]
static=yes
writeprotect=no
priorityjumping=no
autofallthrough=yes
clearglobalvars=no
[default]
exten => 1001,1,Dial(SIP/1001,10)
exten => 1002,1,Dial(SIP/1002,10)
sudo chown asterisk:asterisk /etc/asterisk/sip.conf /etc/asterisk/extensions.conf
sudo chmod 640 /etc/asterisk/sip.conf /etc/asterisk/extensions.conf
现在,我们只需要重启服务并检查其性能即可:
sudo systemctl restart asterisk
sudo systemctl status asterisk
这样就完成了IP PBX配置,并可能在内部用户之间进行电话通信。让我们继续检查其性能。
订户连接
通常,用于台式机和移动操作系统的软电话用于连接到虚拟PBX。其中有很多,对于测试,我们免费下载了适用于iOS和Android的Linphone 。首先,您需要选择“使用SIP用户”选项,然后在我们服务器的IP设置中指定登录名和密码。您不需要创建Linphone服务帐户,我们拥有自己的帐户。
连接到我们的PBX后,客户端即可相互通信。在具有图形环境的Linux工作站上,可以使用官方发行版本库中可用的同一Linphone:
sudo apt-get install linphone
它的配置方式大致相同。现在,我们有了一个虚拟PBX,可以在内部用户之间进行通信。不是上帝知道什么成就,但是实现它的劳动力成本也很低。在下一篇文章中,我们将学习如何连接到SIP提供商,如何通过它到移动电话和有线电视网络进行呼叫,接收传入的外部呼叫以及进行转发和其他有趣的事情。