Freeswitch — это сервер для IP телефонии, аналог Asteisk. FusionPBX — это админка для управления freeswitch. Установка в LXC контейнер полезна, если вы хотите легко перенести настроенный freeswitch с одного сервера на другой, с сохранением всех настроек.

Установка контейнера

Скачайте LXC шаблон Debian 8 Jessie:

_x000D_lxc-create -t download -n freeswitch -- -d debian -r jessie -a amd64

Если вы используете LibVirt, пропишите следующие настройки:

_x000D_sed -i "s|lxc.network.link =.*|lxc.network.link = virbr0|g" /var/lib/lxc/freeswitch/config_x000D_virsh net-update default add-last ip-dhcp-host "<host name='freeswitch' ip='10.0.0.150' />" --live --config

Создайте конфиг LibVirt из LXC config:

_x000D_virsh -c lxc:/// domxml-from-native lxc-tools /var/lib/lxc/freeswitch/config > ~/freeswitch.xml

Отредактируйте xml файл, командой nano ~/freeswitch.xml

Содержимое файла xml:

_x000D_<domain type='lxc'>_x000D_ <name>freeswitch</name>_x000D_ <uuid>35a17f7c-e38a-4051-b1e1-f9d3ab6b948d</uuid>_x000D_ <memory unit='KiB'>65536</memory>_x000D_ <currentMemory unit='KiB'>65536</currentMemory>_x000D_ <vcpu placement='static'>1</vcpu>_x000D_ <os>_x000D_ <type arch='x86_64'>exe</type>_x000D_ <init>/sbin/init</init>_x000D_ </os>_x000D_ <idmap>_x000D_ <uid start='0' target='100000' count='65536'/>_x000D_ <gid start='0' target='100000' count='65536'/>_x000D_ </idmap>_x000D_ <features>_x000D_ <capabilities policy='allow'>_x000D_ </capabilities>_x000D_ </features>_x000D_ <clock offset='utc'/>_x000D_ <on_poweroff>destroy</on_poweroff>_x000D_ <on_reboot>restart</on_reboot>_x000D_ <on_crash>destroy</on_crash>_x000D_ <devices>_x000D_ <emulator>/usr/lib/libvirt/libvirt_lxc</emulator>_x000D_ <filesystem type='mount' accessmode='passthrough'>_x000D_ <source dir='/var/lib/lxc/freeswitch/rootfs'/>_x000D_ <target dir='/'/>_x000D_ </filesystem>_x000D_ <interface type='network'>_x000D_ <mac address='00:16:3e:09:96:30'/>_x000D_ <source network='default' bridge='virbr0'/>_x000D_ <target dev='vnet0'/>_x000D_ <guest dev='eth0'/>_x000D_ <link state='up'/>_x000D_ </interface>_x000D_ <console type='pty' tty='/dev/pts/0'>_x000D_ <source path='/dev/pts/0'/>_x000D_ <target type='lxc' port='0'/>_x000D_ <alias name='console0'/>_x000D_ </console>_x000D_ </devices>_x000D_</domain>_x000D_

Обратите внимание на секции idmap, interface, console . Задайте в них корректные значения.

Импортируйте конфигурацию:

_x000D_virsh -c lxc:/// define ~/freeswitch.xml

Запустите контейнер:

_x000D_virsh -c lxc:/// start freeswitch

Пропишите root пароль для контейнера:

_x000D_nano /var/lib/lxc/freeswitch/rootfs/etc/shadow

Замените строку root на следующую:

_x000D_root:$6$jOJaaad3$213aac5XXw7XMVrtI8dPuwyJazAeMOoaq5QOvo.uf/7V70lA3PIsV7WAiM3d1SWPyDkPiVTvizRHta1P7ZyKs/:17541:0:99999:7:::

Это хэш пароля qwerty!2 . Сохраните изменения и выйдите из редактора nano.

Подключитесь к гостевой консоли, используя команду:

_x000D_virsh -c lxc:/// console freeswitch

Введите логин root и пароль qwerty!2. Чтобы отключиться от терминала нужно нажать клавиши Ctrl+5

Настройка контейнера

Установите базовые программы:

_x000D_apt update && apt-get upgrade -y && apt install -y mc nano htop wget net-tools sudo less aptitude apt-utils

Пропишите следующие содержимое файла nano /etc/apt/sources.list

_x000D_deb http://deb.debian.org/debian jessie main contrib non-free_x000D_deb http://deb.debian.org/debian jessie-updates main contrib non-free_x000D_deb http://security.debian.org jessie/updates main contrib non-free

Обновите кэш:

_x000D_apt update

Установите ssh сервер:

_x000D_apt install openssh-server

Создайте нового пользователя для подключения через SSH:

_x000D_useradd -m -s /bin/bash username_x000D_usermod -a -G sudo username

Задайте пароль для этого пользователя:

_x000D_passwd username

Выйдите из логина:

_x000D_exit

Отключитесь от терминала нажав клавиши Ctrl+5 .

Подключитесь к контейнеру через SSH:

_x000D_ssh username@10.0.0.150

Перейдите под пользователя root:

_x000D_sudo su

Установка Freeswitch и FusionPBX

_x000D_apt install -y git_x000D_cd /usr/src_x000D_git clone https://github.com/fusionpbx/fusionpbx-install.sh.git_x000D_chmod 755 -R /usr/src/fusionpbx-install.sh_x000D_cd /usr/src/fusionpbx-install.sh/debian_x000D_./install.sh_x000D_