zl程序教程

您现在的位置是:首页 >  工具

当前栏目

Docker 安装MikoPBX VOIP —— 筑梦之路

Docker安装 筑梦之路 VoIP
2023-09-14 09:16:00 时间
#在主机上创建目录以存储MIKOPBX数据
mkdir -p /var/spool/mikopbx/cf 

#用于存储通话记录和旁白
mkdir -p /var/spool/mikopbx/storage

#拉取镜像
docker pull ghcr.io/mikopbx/mikopbx-x86-64

#在特权模式下运行mikopbx(SSH端口23):
docker run --privileged --cap-add=NET_ADMIN --net=host --name mikopbx \
           -v /var/spool/mikopbx/cf:/cf \
           -v /var/spool/mikopbx/storage:/storage \
           -e SSH_PORT=23 \
           -it -d --restart always ghcr.io/mikopbx/mikopbx-x86-64

#不是特权模式。用户和组“www-data”必须存在于系统中:
docker run --cap-add=NET_ADMIN --net=host --name mikopbx \
           -v /var/spool/mikopbx/cf:/cf \
           -v /var/spool/mikopbx/storage:/storage \
           -e SSH_PORT=23 \
           -e ID_WWW_USER="$(id -u www-data)" \
           -e ID_WWW_GROUP="$(id -g www-data)" \
           -it -d --restart always ghcr.io/mikopbx/mikopbx-x86-64

#说明

fail2ban和iptables需要NET_ADMIN标志才能在容器内工作

--net=host标志表示 NAT 不会用于新容器。容器应该占用的所有端口都将在主机上被占用。文档中的更多详细信息...如果主机上的某些端口被占用,则加载 MikoPBX 时可能会出现错误。

以下是允许您调整 MikoPBX 使用的端口的环境变量:
SSH_PORT - SSH 端口(22)
WEB_PORT - 通过 HTTP 协议进行 Web 界面操作的端口 ( 80 )
WEB_HTTPS_PORT - 通过 HTTPS 协议进行 Web 界面操作的端口 ( 443 )
SIP_PORT - 用于连接 SIP 客户端的端口 ( 5060 )
RTP_FROM - RTP 端口范围的开始,语音传输(10000)
RTP_TO - RTP 端口范围结束,语音传输 ( 10200 )
IAX_PORT - 用于连接 IAX 客户端的端口 ( 4569 )
AMI_PORT - AMI 端口(5038)
AJAM_PORT - AJAM 端口用于连接 1C ( 8088 )的电话面板
AJAM_PORT_TLS - AJAM 端口用于连接 1C ( 8089 )的电话面板
BEANSTALK_PORT - Beanstalkd队列服务器的端口( 4229 )
REDIS_PORT - Redis服务器的端口( 6379 )
GNATS_PORT - gnatsd服务器的端口(4223)
ID_WWW_USER - www 用户 ID(可以使用表达式"$(id -u www-data)"设置,其中 www-data 是非root用户的名称)
ID_WWW_GROUP - www 组标识符(可以使用表达式"$(id -g www-data)"设置,其中 www-data 是非root用户的名称)
#docker-compose.yml

version: "3.9"
services:
  mikopbx:
    container_name: "mikopbx"
    image: "ghcr.io/mikopbx/mikopbx-x86-64"
    network_mode: "host"
    command: '-d'
    cap_add:
      - NET_ADMIN
    volumes:
      - /var/spool/mikopbx/cf:/cf
      - /var/spool/mikopbx/storage:/storage
    # environment:
    ## 将标准SSH端口更改为23
    #  - SSH_PORT=23
    ##将标准SSH端口更改为81
    #  - WEB_PORT=81
    # DAHDI不是必须的。它是在电话面板中运行MeetMe所必需的
    # devices:
    #  - "/dev/dahdi/transcode:/dev/dahdi/transcode"
    #  - "/dev/dahdi/channel:/dev/dahdi/channel"
    #  - "/dev/dahdi/ctl:/dev/dahdi/ctl"
    #  - "/dev/dahdi/pseudo:/dev/dahdi/pseudo"
    #  - "/dev/dahdi/timer:/dev/dahdi/timer"

容器中没有与核心兼容的DAHDI主机模块。因此,如果您需要Meetme会议功能,那么DAHDI需要手动将系统组装到主机上

#连接到PBX控制台的命令
docker exec -it mikopbx sh

#连接到ATS控制台菜单的命令
docker exec -it mikopbx /etc/rc/console_menu

官方wiki:

Руководство по MikoPBX [MikoPBX WIKI]https://wiki.mikopbx.ru/