> For the complete documentation index, see [llms.txt](https://docs.itgrix.ru/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.itgrix.ru/for-admins/config/opisanie-faila-konfiguracii-before-3-0.md).

# Описание файла конфигурации (до версии 3.0)

Путь по умолчанию для Битрикс24: `/etc/itgrix_bx/config.json`

Для пользователей AmoCRM: `/etc/itgrix_amo/config.json`

{% hint style="warning" %}
После ручного редактирования убедитесь в валидности json файла (например, через сервис <https://jsonlint.com/>). Иначе модуль не будет работать.
{% endhint %}

**Для применения настроек перезапустите модуль:**

`# systemctl restart itgrix_bx # systemctl restart itgrix_amo`

либо

`# service itgrix_bx stop # service itgrix_amo stop`\
`# service itgrix_bx start # service itgrix_amo start`

Для изменения настроек через веб-интерфейс (админку), перезагружаться не нужно.\
Сохраняться нужно на каждой странице админки – `https://<Asterisk IP>:8078/config` .

## App – раздел настроек работы приложения

**Создавать сущности (лиды/контакты) для входящих/исходящих разговоров**\
(Начиная с версии 2.15.0):

`"create_entity_for_incoming": true,`\
`"create_entity_for_outgoing": true,`

*true* – лиды/контакты создаваться будут,\
\&#xNAN;*false* – лиды/контакты создаваться не будут.

Параметры создания сущности могут быть [кастомизированы.](/custom_bx.md)

Создавать новые дела для каждого переведенного вызова:

`"create_new_activity_at_transfer": true`

*true* – после каждого перевода вызова будет создаваться новое дело с ответственным сотрудником, на которого переведен вызов.\
\&#xNAN;*false* – будет создано одно дело для всего разговора со всеми переводами, ответственным за это дело будет последний разговаривавший сотрудник.

**Создание задачи по пропущенному**

`"create_task_for_unanswered": false,`

*true* – при пропущенном звонке будет создаваться задача. Параметры могут быть кастомизированы (см. раздел[ task creation params](/custom_bx.md)).\
\&#xNAN;*false* – задача создаваться не будет.

**Таймаут ожидания ответа от скриптов кастомизации**, мс (рекомендуемое значение 10000):

`"customization_time_msec": 10000`\\

**Путь до скрипта кастомизации** (в [этом файле](/custom_common/vklyuchenie-kastomizatora.md) возможно переопределять настройки приложения):

`"customizer_program_path": "/opt/bx24asterisk/customizer.php"`

Если используется кастомизатор, то у него должны быть права на исполнение. Их можно добавить командой:

`chmod +x /opt/bx24asterisk/customizer.php`

Если кастомизатор не используется, то поле необходимо оставить пустым.

**Включение дополнительных возможностей кастомизации** (методы для версий, начиная с 2.15.0):

`"customize_activity"` – дела после завершения звонка,\
`"customize_entity"` – сущности (лида, контакта), после завершения звонка,\
`"customize_final_params"` – параметров завершения звонка,\
`"customize_registration_params"` – параметров регистрации разговора,\
`"customize_task"` – задачи после пропущенного звонка.

Подробнее про кастомизации можно узнать в разделе [Полезные кастомизации](/custom_common.md).

**Суффикс для папки со временными файлами** token и state (используется для запуска нескольких экземпляров приложения на одном сервере):

`"generated_postfix": ""`

Дата и время, начиная с которых загружаются события о разговорах (рекомендуемое значение - дата и время установки модуля):

`"history_start_date": "2018-01-15 10:30:00"`

**Уровень логирования:**

`"log_level": "debug"`

*debug* – фиксируем все события в логе;\
\&#xNAN;*info* – фиксирует всё, кроме отладочной информации;\
\&#xNAN;*warning* – фиксируем только исключительные ситуации, критические ошибки;\
\&#xNAN;*critical* – фиксируем только критические ошибки;\
\&#xNAN;*fatal* – фатальные ошибки.

При нормальной работе ничего не выводится.

**Отправлять информацию о новых лидах в бизнес-чат:**

`"post_lead_info_to_chat": false`

*true* – информация будет отправляться в бизнес-чат CRM. В нем также можно будет дополнительно настроить отдельные чаты по каждому клиенту либо один общий чат для всех совершенных звонков.\
\&#xNAN;*false* – информация отправлена не будет.

**Префиксы:**

`"prefixes": [`\
`"7",`\
`"8",`\
`"+7"`\
`]`

**Загружать файлы записей разговора в CRM или они будут прослушиваться с локального сервера** (по ссылке):

`"store_recordings_in_crm": true`

*true* – записи будут выгружаться в CRM;\
\&#xNAN;*false* – в CRM будут только ссылки на записи.

**У нас реализовано 2 способа прослушивания разговоров на портале:**

1\) Выгрузка записей при создании дела. При этом варианте запись отдаем в CRM, указывая к какому делу она принадлежит. Минусы этого способа – все пользователи портала смогут прослушивать все записи, тратится место на портале.

Важно: перед отправкой файла его нужно сконвертировать в mp3. Как это сделать, можно прочитать в [Статье базы данных](/custom_common/mp3-record.md).

2\) К делу прикрепляем плеер, который получает запись на стороне Астериска.\
Есть нюанс: для случаев, когда сервер с записями находится за NAT, ссылка на получение аудиозаписи будет указана либо на внешний адрес, либо на внутренний. Соответственно запись будет доступна либо тем, кто запрашивает ее извне, либо только тем, кто находится в одной сети с сервером.\
Если необходимо прослушивание записей извне, то необходимо открыть порт 8077 на маршрутизаторе и в переменной Адрес для локальных сервисов `“address_int”` указать внешний IP.

**Сопоставление внешних номеров телефона с источниками вызова в CRM:**

`"trunk_to_source": {`\
`"2723033": "WEB",`\
`"4993508890": "CALL"`\
`}`

Для корректной работы модуля необходимо указать все используемые транки. Если не указать транк, то могут возникнуть проблемы с отображением окна при входящем.

Транки можно узнать следующими способами:

* в БД asterisk в таблице trunks (номера в столбце outcid);
* в файле `/etc/asterisk/extensions_additional.conf` (в FreePBX extensions\_additional.conf), выполнив команду: `grep ^OUTCID /etc/asterisk/extensions{,_additional}.conf`;
* выполнить команду в базе данных CEL (самый надежный способ):\
  `select distinct exten from cel where uniqueid=linkedid and eventtype='CHAN_START' and length(cid_num)>4 and length(exten)>4;`

## Asterisk – Раздел настроек подключения к Asterisk

**Настройки подключения к AMI:**

`"host": "127.0.0.1"`\
`"port": 5038`\
`"user": "bx24"`\
`"password": "bx24secret"`

**Настройки инициации вызова в Asterisk:**

`"originate": {`\
`"caller_id": "Звонок на #TO# <#TO#>",`\
`"channel": "SIP/#FROM#", (Вместо SIP можно указывать любой другой протокол IAX2, PJSIP)`\
`"context": "from-internal",`\
`"extension": "#TO#",`\
`"priority": "1"`\
`}`

Про параметры originate в Asterisk можно прочитать [здесь](http://asterisk.ru/knowledgebase/Asterisk+Manager+API+Action+Originate/).

**Codecs и variable добавляется в кастомизаторе:**

`//$params['codecs'] = 'someCodecName';`\
`//$params['variable'] = 'SIPADDHEADER="Call-Info:\;answer-after=0"';`

**Путь до файлов с записями разговоров:**

`"recordings_dir": "/var/spool/asterisk/monitor"`

**Файлы с записями хранятся в поддиректориях согласно дате разговора:**

`"recordings_dir_subdirs_by_date": true`

**Комбинация для совершения перехвата вызова** (указывается настроенная на Астериск комбинация для распознавания перехвата):

`"pickup_code": *8`

## Bitrix – раздел настроек подключения к Битрикс24

**Путь до портала Битрикс24:**\
`"host": "`[`https://portal.bitrix24.ru`](https://host.bitrix24.ru)`",`

{% hint style="info" %}
Будьте внимательны: если у вас коробочный 1С-Битрикс24 с протоколом http, здесь должен быть указан http\://, обычно используется https\:// ( в том числе и для облачных порталов).
{% endhint %}

**ID пользователя портала Битрикс24**, назначенного ответственным за пропущенные звонки с неизвестных номеров и за новые лиды:

`"user_id": 1`

Этот пользователь является первым ответственным за созданную сущность. Когда ответит другой пользователь, то ответственный сменится на ответившего пользователя. Если никто не ответит, то по умолчанию за сущность останется ответственным прежний пользователь. Он может отличаться от пользователя, под которым работает модуль.

**Логин и пароль администратора в Битрикс24:**

`"user_login": "login",`\
`"user_password": "password"`

**Использование внешних линий** при регистрации звонков в Битрикс24:

`"use_external_lines": "true"`

## Database **–** раздел подключения к MySQL

**Параметры подключения к MySQL** (настраивали в разделе 2.2.1).\
Название БД должно соответствовать настройкам системы.

`"database": "asteriskcdrdb",`\
`"host": "127.0.0.1",`\
`"user": "freepbxuser"`\
`"password": "mysqlsecret",`\
`"port": 3306,`

**Названия таблиц и полей в MySQL** (для типовых случаев оставляем значения по умолчанию):

`"column_name_aliases": {`\
`"cdr_calldate": "calldate",`\
`"cdr_cnum": "cnum",`\
`"cdr_recordingfile": "recordingfile",`\
`"cdr_src": "src",`\
`"cdr_uniqueid": "uniqueid",`\
`"cel_channame": "channame",`\
`"cel_cid_num": "cid_num",`\
`"cel_eventtime": "eventtime",`\
`"cel_eventtype": "eventtype",`\
`"cel_exten": "exten",`\
`"cel_id": "id",`\
`"cel_linkedid": "linkedid",`\
`"cel_uniqueid": "uniqueid"`\
`}`\
`"table_name_aliases": {`\
`"cdr": "cdr",`\
`"cel": "cel"`\
`}`

В большинстве конфигураций поля в MySQL выглядят именно так.\
При необходимости проверить можно SQL-запросом: `describe *имя_таблицы*`.

## WebServer **–** Настройки встроенного в модуль ВЕБ-сервера

**Адрес и порт, на которых запускается WEB-сервер**\
(по умолчанию адрес – `0.0.0.0`, порт – `8077`, `8078`):

`“listen_host”: “0.0.0.0”`\
`“listen_port”: http“8077”`\
`“listen_port_secure”: “8078”`

Для доступа в админку наберите IP-адрес сервера с Астериск (куда установлен модуль) и порт. Для админки используется только https (по умолчанию порт 8078). При входе по 8077 стоит редирект.

**Адрес, по которому приложение будет доступно для внешних сервисов:**`“address_ext” : “1.1.1.1”`

Адрес необходим для исполнения функции click-to-call из облачного Битрикс24, внешнего по отношению к сети компании. Нужен внешний IP-адрес компании.

**Адрес для локальных сервисов:**\
`“address_int” : “`[`192.168.0.1`](http://192.168.0.1:8077)`”`\
Адрес, необходимый для формирования ссылки на получение записи разговора в деле.\
Рекомендуем указать внутренний адрес сервера с модулем.\
Протокол и порт указывать не нужно – они добавляются автоматически.

**Логин и пароль для доступа в админку:**

`"user": "user_name"`\
`"password": "secret_password"`

**Данные для браузерного расширения (пока не используются):**

`"sockets_port": 8089`

**Флаг для отключения http:**

`"use_http": true` (по умолчанию)

Значение *true* – позволяет использовать http протокол для следующих запросов:

* запрос записи,
* автораспределение,
* click\_to\_call
* callback обработчики.

*false* – используется только https для всех запросов.

Для доступа в админку используется только https (по умолчанию порт 8078).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.itgrix.ru/for-admins/config/opisanie-faila-konfiguracii-before-3-0.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
