> For the complete documentation index, see [llms.txt](https://itgro-aly.gitbook.io/test-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://itgro-aly.gitbook.io/test-docs/readme-1.md).

# README

## Как перенести кастомизации на новую версию

1. Переименовать `get_updated_lead_fields.php` в `get_updated_entity_fields.php`;
2. Перенести код для черных/белых списков (если есть) из кастомизаций `process_search_params.php` и/или `process_final_params.php` в `need_registration.php`.

## Для версий с одним кастомизатором

Если у вас версия до 2.13.1, то у вас, скорее всего, единый файл кастомизации – его нужно будет разделить на отдельные файлы до переноса.

## Схема обработки звонка модулем интеграции Itgrix (bx24asterisk)

(Схема для версий до 2.15.0)

![](/files/53ad9d4f95dbc5140384068c87595930115c790f)

#### Описание схемы

“Сущность” — это контакт или лид.

**Краткое описание кастомизаций**

| Файл кастомизации                     | Описание                                                                                                                                                              |
| ------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| get\_search\_filter.php               | <p>Фильтруем полученные из Б24 сущности. (Для посвященных в Битрикс. Только для избранных.)<br><br>Можно выбрать по параметрам, с какими сущностями работать.</p>     |
| get\_updated\_activity\_fields.php    | Обновление полей дела (в конце звонка)                                                                                                                                |
| get\_updated\_entity\_fields.php      | Обновить поля сущности (в конце звонка)                                                                                                                               |
| need\_registration.php                | <p>Нужна ли регистрация?<br></p><p>Можно сделать черно-белые списки по внутреннему номеру/транку.</p>                                                                 |
| process\_entity\_creation\_params.php | Изменение параметров создания сущности в Б24.                                                                                                                         |
| process\_final\_params.php            | Изменение данных завершения звонка.                                                                                                                                   |
| process\_originate\_params.php        | <p>Изменение параметров при инициализации звонка из Битрикс.<br></p><p>Можно позвонить через другой транк, через другой контекст, сменить формат номера и прочее.</p> |
| process\_phone\_number.php            | <p>Изменение номера получаемого телефона:<br></p><p>Можно сменить формат телефонного номера (+7, 8...).</p>                                                           |
| process\_record\_file\_path.php       | Кастомизация пути до файла записи разговора.                                                                                                                          |
| process\_registration\_params.php     | Изменение параметров регистрации звонка.                                                                                                                              |
| process\_task\_creation\_params.php   | Кастомизация создания задач по пропущенным звонкам.                                                                                                                   |

## Входные и выходные параметры кастомизаций

### **1) process\_phone\_number**

Преобразование номеров – как внутренних, так и внешних.

**Примеры использования**

[Изменение номера телефона перед отправкой данных в CRM](file:///custom_common/client-phone-number.md)

**Вход:**

`{"params":`\
`{"phone": <номер>}`\
`}`

**Вернуть:**

`{"data":`\
`{"phone": <кастомизированный_номер>},`\
`"state": "success"`\
`}`\\

### **2) process\_record\_file\_path**

Преобразование пути до файла записи разговора.

Примеры использования – [Кастомизация имени файла аудиозаписи](file:///custom_common/filepath.md)

**Вход:**

`{"params":`\
`{"call_id": <id_звонка>},`\
`{"from": <номер>},`\
`{"to": <номер>},`\
`{"path": <путь_до_записи>}`\
`}`

**Вернуть:**

`{"data": {"path": <кастомизированный_путь_до_записи>},`\
`"state": "success"`\
`}`\\

### **3) process\_originate\_params**

Изменение параметров при инициализации звонка из Битрикс24.

Примеры использования – [Изменения номера\контекста для вызова в Астериск](file:///1659967/Archive.zip/#vkhodnye-i-vykhodnye-parametry-kastomizacii)

**Вход:**

`{"params": {`\
`"caller_id": "<caller_id>",`\
`"channel": "<channel>",`\
`"context": "<context>",`\
`"extension": "<extension>",`\
`"priority": "<priority>"`\
`}}`

**Вернуть:**

`{"data": {`\
`"caller_id": "<caller_id>",`\
`"channel": "<channel>",`\
`"context": "<context>",`\
`"extension": "<extension>",`\
`"priority": "<priority>"`\
`}}`

Опционально:

`"codecs": "<codecs>",`\
`"variable": "variable"`\\

### **4) process\_search\_params**

Изменение параметров поиска сущности, а также данных на входе.\\

Примеры использования:

1. [Черные и белые списки](file:///custom_common/black-white-list.md);
2. [Кастомизация поиска](broken://pages/346d7b4df13c3d19e53e51f6390727f4a178c013).

**Вход:**

```
  {"params": {
(см. https://dev.1c-bitrix.ru/rest_help/scope_telephony/telephony/telephony_externalcall_register.php)
      "CALL_START_DATE": "<Дата, время начала звонка>"
      "CRM_CREATE": "<Создавать или нет новый лид (если номер не найден в CRM)>"
      "CRM_SOURCE": "<STATUS_ID источника из справочника источников>"
      "LINE_NUMBER": "<Транк, на который пришел звонок>"
      "PHONE_NUMBER": "<Номер для поиска сущности в битрикс>"
      "SHOW": "<[0/1] Показывать ли карточку звонка при регистрации>"
      "TYPE": "<Направление звонка: 2 - входящий; 1 - исходящий>"
      "USER_ID": "<Идентификатор пользователя>",
      "conversation": {Данные о звонке},
      "call": {Если есть разговор, придет этот набор вместо conversation},
      "user": {}
}}
```

**Вернуть:**

`{"data": { - измененные входные параметры`\
`"<Название поля задачи в битрикс>": "<Значение этого поля>",`\
`}}`

Опционально:

`"action": "<ignore/register При значении ignore, звонок НЕ будет зарегистрирован в CRM>",`\
`"filter": { - параметры для поиска в битрикс. Логика описана в статье https://bx24asterisk.ru/support/30-customize_search_params`\
`"lead": {},`\
`"contact": {},`\
`"company": {}`\
`}`

### **5) process\_final\_params**

Преобразование данных завершения звонка.

Примеры использования:

1. [Организация черных и белых списков](file:///custom_common/black-white-list.md);
2. [Разные ответственные за пропущенные за разные транки](file:///1659967/default-resp-for-trunks.md).

**Вход:**

```
{"params": {
      "ADD_TO_CHAT": "<Добавить сообщение о звонке в бизнес чат>",
      "CALL_ID": "<Идентификатор звонка в битрикс>",
      "DURATION": "<Длительность>",   
      "STATUS_CODE": 200,
      "USER_ID": "<Идентификатор пользователя Битрикс, ответственного за разговор>",
      "conversation": {
          "answered_at": "<Время поднятие трубки>",
          "channel_id": "<Идентификатор канала>",
          "ended_at": "<Время окончания разговора>",
          "from": "<Номер позвонившего>",
          "from_local": <Локальный номер позвонившего. Принимает значение true или false>,
          "id": "<Идентификатор звонка>",
          "parent_channel_id": "<Идентификатор родительского канала>",
          "started_at": "<Время начала звонка>",
          "state": <Статус состояния звонка>,
          "state_code": "<Состояния звонка>",
          "to": "<Номер, кому пришел звонок>",
          "to_local": <Локальный номер принимающего. Принимает значение true или false>,
          "trunk": "<Внешний номер, на который поступил звонок>",
          "type": <Направление звонка. Принимает значения: 1 - внутренний; 2 - входящий; 3 - исходящий>,
          "type_code": "<Направление звонка. Принимает значения: incoming - входящий, outgoing - исходящий>",
          "was_answered": <Отвеченный звонок. Принимает значение true или false>
      },
      "entity_data": {
          "entity_id": <Идентификатор сущности в битрикс>,
          "entity_type": "<Тип сущности. Принимает значения: lead, company, contact>",
          "was_created": <Был ли лид создан модулем (для новых лидов). Принимает значение true или false>
      }
  }}
```

**Вернуть:**

```
 {
      "data": {
          "ADD_TO_CHAT": "<Добавить сообщение о звонке в бизнес чат>",
          "CALL_ID": "<Идентификатор звонка в битрикс. Не рекомендуется изменять!>",
          "DURATION": "<Длительность>",
          "STATUS_CODE": "<SIP-код статуса звонка>",
          "USER_ID": "<Идентификатор пользователя Битрикс, ответственного за разговор>",
      },
      "action": "<delete/register При значении delete, звонок будет удален из CRM>",
      "state": "success"
  }
```

### **6) process\_entity\_creation\_params**

Событие возникает при входящем звонке с неизвестного номера.

**Вход:**

```
  {"params": {
      “type”: lead,    // значения: contact, deal, lead
      "ASSIGNED_BY_ID":238,
      "COMMENTS":"",
      "OPENED":"Y",
      "PHONE": [
          {"VALUE":"83432872875"}
      ],
      "SOURCE_ID":"7",
      "TITLE":""
  }}
```

**Вернуть:**

`{`\
`"data": {`\
`"<Название поля сущности в битрикс>": "<Значение этого поля>",`\
`},`\
`"state": "success"`\
`}`

Примеры использования:

1. Описание полей лида в [API Битрикса](https://dev.1c-bitrix.ru/rest_help/crm/leads/crm_lead_fields.php);
2. Описание полей контакта в [API Битрикса](https://dev.1c-bitrix.ru/rest_help/crm/contacts/crm_contact_fields.php);
3. Описание полей сделки в [API Битрикса](https://dev.1c-bitrix.ru/rest_help/crm/cdeals/crm_deal_fields.php).

### **7) process\_task\_creation\_params**

[Кастомизация создания задач по пропущенным звонкам](file:///1659967/task-for-missed-call.md)

Событие возникает перед постановкой задачи (при пропущенном входящем звонке).\
Полное описание полей задачи в [API Битрикса](https://dev.1c-bitrix.ru/rest_help/tasks/fields.php).

**Вход:**

```
{"params": {
      "arNewTaskData": {
          "DEADLINE":"<Крайний срок исполнения>",
          "CREATED_BY": <Идентификатор постановщика>,
          "RESPONSIBLE_ID": <Идентификатор сотрудника, ответственного за задачу>,
          "TITLE":"<Заголовок задачи>",
          "UF_CRM_TASK": [ - связь задачи с сущностью.
              "L_11201" - состоит из типа сущности (L - лид, C - контакт, CO - компания, D - сделка) и ее идентификатора, которые указываются через символ "_".
          ]
      }
  }}
```

**Вернуть:**

`{`\
`"data": {`\
`"arNewTaskData": { - массив полей для создания задачи`\
`"<Название поля задачи в битрикс>": "<Значение этого поля>"`\
`}`\
`},`\
`"state": "success"`\
`}`

### **8) get\_updated\_lead\_fields**

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

Примеры использования – [Обновление полей лида](broken://pages/a85014c5ec7c32633db81520a441fdb7cfb5e2ce)

**Вход: Е**

Параметры звонка описаны в 5 пункте process\_final\_params

```
 {"params": {
      "conversations": { - набор всех разговоров, которые были в звонке
          "1550838819.13014": {<Набор данных о разговоре>},
          "1550838850.13029":{<Набор данных о разговоре>}
      },
      "answered_at":"",
      "ended_at":"",
      "from":"",
      "from_local":false,
      "id":"1550838797.13013",
      "started_at":"",
      "state":3,
      "to":"",
      "to_local":true,
      "trunk":"",
      "type":2
  }}
```

**Вернуть:**

`{`\
`"data": {`\
`"<Название поля лида в битрикс>": "<Значение этого поля>",`\
`},`\
`"state": "success"`\
`}`

Описание полей лида в [API Битрикса](https://dev.1c-bitrix.ru/rest_help/crm/leads/crm_lead_fields.php)

### **9) get\_updated\_activity\_fields**

Обновление полей дела в конце звонка.

Примеры использования – [Обновление полей дела](file:///1659967/update-activity-fields.md)

**Вход:**

Обновление полей дела в конце разговора.

Параметры звонка описаны в 5 пункте process\_final\_params

```
{"params": {
      "answered_at":"",
      "channel_id":"",
      "ended_at":"",
      "from":"",
      "from_local":false,
      "id":"",
      "parent_channel_id":"",
      "started_at":"",
      "state":3,
      "state_code":"hung",
      "to":"",
      "to_local":true,
      "trunk":"",
      "type":2,
      "type_code":"incoming",
      "was_answered":true
  }}
```

**Вернуть:**

`{`\
`"data": {`\
`"<Название поля дела в битрикс>": "<Значение этого поля>",`\
`},`\
`"state": "success"`\
`}`
