Запуск дополнительной копии модуля
На одном сервере Asterisk могут быть запущены несколько копий модуля. Они могут быть подключены к одной телефонии, но к разным CRM.
Важно:
  1. 1.
    Внутренние номера на порталах не должны пересекаться (иначе один звонок будет попадать в несколько порталов).
  2. 2.
    У каждой копии модуля должен быть свой конфиг-файл и свои сетевые порты для подключения к админке, а также получения команд из CRM.
  3. 3.
    У каждой копии модуля должен быть свой кастомизатор.
  4. 4.
    Лицензирование осуществляется по адресам порталов.
  5. 5.
    При запуске нескольких копий модуля на один и тот же портал возможно превышение лимита запросов API CRM (копии модуля не согласовывают между собой частоту запросов).

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

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

Назовём его /etc/itgrix_bx/config-1.json
1
cp /etc/itgrix_bx/config{,-1}.json
Copied!
В новом конфиге исправляем обязательно:
  • port, secure_port другой порт отличный от 8077, 8078
Пример обновлённых значений:
1
"port": 8075,
2
"secure_port": 8076,
Copied!

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

1
cp /etc/systemd/system/itgrix_bx{,-1}.service
Copied!
В новом файле для systemd вносим следующие изменения:
  • Description поменять на имя новой службы (itgrix_bx-1);
  • В ExecStart добавить флаг --config с именем нового конфига, который был создан на шаге 2;
  • В ExecStart поменять имя лог-файла на новое.
Пример обновлённых значений:
1
[Unit]
2
Description=itgrix_bx-1
3
4
[Service]
5
ExecStart=/bin/sh -c "/opt/itgrix_bx/itgrix_bx --config=/etc/itgrix_bx/config-1.json >> /var/log/itgrix_bx-1.log"
Copied!

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

Нужно создать отдельный файл лога cp /var/log/itgrix_bx{,-1}.log и поменять его владельца на пользователя, под которым будет стартовать служба.
В /etc/logrotate.d/itgrix_bx копируем всё содержимое с новым именем лога.
Новое содержимое файла:
1
/var/log/itgrix_bx.log {
2
3
# ротация раз в день. Возможные варианты daily, weekly, monthly, size (например size=1M)
4
daily
5
6
# сохраняется последние 5 ротированных файла
7
rotate 5
8
9
# сжимать ротируемый файл
10
compress
11
12
# сжимать предыдущий файл при следующей ротации
13
delaycompress
14
15
# отсутствие файла не является ошибкой
16
missingok
17
18
# не создаём новый файл, копируем содержимое и обнуляем старый
19
copytruncate
20
}
21
22
/var/log/itgrix_bx-1.log {
23
24
# ротация раз в день. Возможные варианты daily, weekly, monthly, size (например size=1M)
25
daily
26
27
# сохраняется последние 5 ротированных файла
28
rotate 5
29
30
# сжимать ротируемый файл
31
compress
32
33
# сжимать предыдущий файл при следующей ротации
34
delaycompress
35
36
# отсутствие файла не является ошибкой
37
missingok
38
39
# не создаём новый файл, копируем содержимое и обнуляем старый
40
copytruncate
41
}
Copied!

4. Создаём второй кастомизатор

Для первой копии модуля кастомизатор располагается в папке /opt/itgrix_bx/customizer/.
В файле /opt/itgrix_bx/customizer/Settings.php указаны конфиг и лог первой копии.
Для второй копии создаём папку /opt/itgrix_bx/customizer-1/ и в файле /opt/itgrix_bx/customizer-1/Settings.php прописываем конфиг и лог второй копии:
1
class Settings {
2
3
const CONFIG_PATH = '/etc/itgrix_bx/config-1.json';
4
const LOG_PATH = '/var/log/itgrix_bx-1.log';
5
6
}
Copied!
Также в конфиге второй копии /etc/itgrix_bx/config-1.json нужно указать соответствующий кастомизатор:
1
"customizer": {
2
...
3
"program_path": "/opt/itgrix_bx/customizer-1/customize.php",
4
...
5
}
Copied!
Теперь настраиваем кастомизации в /opt/itgrix_bx/customizer-1/actions/ в соответствии с подтребностями второй копии.

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

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

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

При запущенной службе заходим в админку на страницу настройки CRM:localhost:8075/config/master/crm
Выполняем авторизацию.
Last modified 2d ago