Запуск дополнительной копии модуля

На одном сервере Asterisk могут быть запущены несколько копий модуля. Они могут быть подключены к одной телефонии, но к разным Битриксам. Важно 1. Внутренние номера на порталах не должны пересекаться. Иначе один звонок будет попадать в несколько порталов. 2. У каждой копии модуля должен быть свой конфиг-файл, и свои сетевые порты для подключеник к админке и получения команд из Битрикса. 3. Лицензирование осуществляется по адресам порталов.

Шаги создания копии

1. Создаём второй конфиг

Назовём его /etc/itgrix_bx/config-1.json

cp /etc/itgrix_bx/config{,-1}.json

В новом конфиге исправляем обязательно:

  • port, secure_port другой порт отличный от 8077, 8078

Пример обновлённых значений:

"port": 8075,
"secure_port": 8076,

2. Создаём файл конфигурации для нового сервиса

cp /etc/systemd/system/itgrix_bx{,-1}.service

В новом файле для systemd вносим следующие изменения:

  • Description поменять на имя новой службы (itgrix_bx-1)

  • В ExecStart добавить флаг --config с именем нового конфига (который создан на шаге 2)

  • В ExecStart поменять имя лог-файла на новое

Пример обновлённых значений:

[Unit]
Description=itgrix_bx-1
[Service]
ExecStart=/bin/sh -c "/opt/itgrix_bx/itgrix_bx --config=/etc/itgrix_bx/config-1.json >> /var/log/itgrix_bx-1.log"

3. Настроить ротацию лога

Нужно создать отдельный файл лога cp /var/log/itgrix_bx{,-1}.log и менять его владельца на пользователя под которым будет стартовать служба.

В /etc/logrotate.d/itgrix_bx копируем всё содержимое с новым именем лога.

Новое содержимое файла:

/var/log/itgrix_bx.log {
# ротация раз в день. Возможные варианты daily, weekly, monthly, size (например size=1M)
daily
# сохраняется последние 5 ротированных файла
rotate 5
# сжимать ротируемый файл
compress
# сжимать предыдущий файл при следующей ротации
delaycompress
# отсутствие файла не является ошибкой
missingok
# не создаём новый файл, копируем содержимое и обнуляем старый
copytruncate
}
/var/log/itgrix_bx-1.log {
# ротация раз в день. Возможные варианты daily, weekly, monthly, size (например size=1M)
daily
# сохраняется последние 5 ротированных файла
rotate 5
# сжимать ротируемый файл
compress
# сжимать предыдущий файл при следующей ротации
delaycompress
# отсутствие файла не является ошибкой
missingok
# не создаём новый файл, копируем содержимое и обнуляем старый
copytruncate
}

4. Запуск/стоп/рестарт/статус

systemctl start itgrix_bx-1 systemctl stop itgrix_bx-1 systemctl restart itgrix_bx-1 systemctl status itgrix_bx-1

5. Авторизуемся на портале

При запущенной службе, заходим в админку на страницу настройки CRMlocalhost:8075/config/master/crm

Выполняем авторизацию.