# Twilio

[Twilio](https://twilio.co) — широко используемый глобальный провайдер связи, базирующийся в Калифорнии, известный своей надежностью и покрытием во многих странах, особенно в США, Канаде и Великобритании.

Чтобы использовать Twilio в качестве SMS-шлюза в Navixy, вам потребуется получить ваши `ACCOUNT_SID` и `AUTH_TOKEN` (или `API_SID`/`API_SECRET` пару), которые вы можете получить, зарегистрировав аккаунт в Twilio. Эти учетные данные необходимы для аутентификации и должны быть включены в JSON-конфигурацию для шлюза Twilio в **'sms\_gates'** таблице **'google'** базы данных.

## JSON-конфигурация Navixy для Twilio

JSON-конфигурация Navixy для Twilio — это набор параметров, необходимых для настройки SMS-шлюза Twilio в Navixy. Эти параметры определены в формате JSON и хранятся в **'params'** поле **'sms\_gates'** таблицу в **'google'** базы данных.

Рекомендуемая конфигурация с `account_sid` и `auth_token`:

```json5
 поле params:
 {
 "account_sid": "ACdc5f132a3c49700934481addd5ce1659",
 "auth_token": "1095175a27d2044c06e1db8577b484f3",
 "enable_status_callback": false
 }
 type: transceiver
 provider: twilio
```

или, альтернативно, с `account_sid`, `api_sid`, `api_secret`:

```json5
 поле params:
 {
 "account_sid": "ACdc5f132a3c49700934481addd5ce1659",
 "api_sid": "SK12347865ugdfjbdf7845876345",
 "api_secret": "BS12347865ugdfjbdf7845876345",
 "enable_status_callback": false
 }
 type: transceiver
 provider: twilio
```

Чтобы найти ваши 'account\_sid' и 'auth\_token' Twilio, войдите в [панель управления Twilio](https://www.twilio.com/user/account) и нажмите «Show API Credentials», чтобы получить доступ к информации об аккаунте.

## SQL-запросы для выполнения

Чтобы обновить базу данных с корректными настройками для использования Twilio в качестве SMS-шлюза, выполните следующий SQL-запрос:

{% code overflow="wrap" %}

```sql
INSERT INTO google.sms_gates (type, provider, params, enabled, class_filter) VALUES ('transceiver', 'twilio','{"account_sid": "ACdc5f132a3c49700934481addd5ce1659","auth_token":"1095175a27d2044c06e1db8577b484f3", "enable_status_callback": true}',1,'*');
```

{% endcode %}

### **Номер телефона отправителя**

Чтобы настроить номер телефона, предоставленный Twilio, выполните два дополнительных SQL-запроса:

{% code overflow="wrap" %}

```sql
UPDATE google.dealers SET master_phone="TWILIO_PHONE", from_sms="TWILIO_PHONE" WHERE dealer_id=1;
INSERT INTO google.sms_gates_to_dealers (dealer_id, gate_id) VALUES (0, 1);
```

{% endcode %}

`TWILIO_PHONE` обозначает номер телефона, арендованный у Twilio. Первый SQL-запрос добавляет номер телефона, который будет использоваться в поле '**from**' при работе с Twilio API. Второй запрос связывает SMS-шлюз с аккаунтом дилера (PaaS).

### **Входящие сообщения**

Чтобы получать входящие сообщения через провайдера Twilio, добавьте следующий URL в их интерфейсе настройки:

`http://$IPADDR:22000/sms/$GATEID/incoming`

Где

* `$IPADDR` — IP-адрес сервера или его доменное имя
* `$GATEID` — id SMS-шлюза, который обрабатывает входящие сообщения
* `22000` — порт, используемый для прослушивания подключений (значение по умолчанию)

## Известные проблемы с Twilio

При использовании SMS-шлюза Twilio с Navixy существует потенциальная проблема с SMS-командами, содержащими ведущие пробелы. В некоторых случаях Twilio может удалить эти пробелы при обработке сообщения, что может привести к невозможности выполнения ожидаемой команды.

Например, если вы отправите SMS-команду на устройство с ведущим пробелом, такую как `" 123456"`Twilio может удалить пробел и отправить команду как `"123456"` устройство. Если устройству необходим пробел для распознавания команды, команда не будет выполнена корректно. Это может вызвать путаницу и разочарование у пользователей и системных администраторов.

Конкретно, эта проблема была подтверждена для устройств Teltonika и Ruptela, когда пароль для защиты конфигурации не установлен на устройстве.

Чтобы избежать этой проблемы, мы рекомендуем использовать альтернативных провайдеров SMS-связи, таких как [Vonage](https://www.navixy.com/docs/on-premise/ru/on-premise/how-to-guide/configuration/sms-gateway-configuration/vonage) или [Textlocal](https://www.navixy.com/docs/on-premise/ru/on-premise/how-to-guide/configuration/sms-gateway-configuration/textlocal).
