Другое

Как перенести номер Twilio в аккаунт клиента

Узнайте, как перенести номер Twilio в отдельный аккаунт клиента с помощью REST API. Полное пошаговое руководство с примерами кода и советами по устранению неполадок.

Как перенести номер Twilio в аккаунт клиента

Мы приобрели номер Twilio для клиента во время тестирования и теперь нам нужно перенести его в их отдельный аккаунт Twilio. Может ли кто-нибудь предоставить пошаговые инструкции по переносу номера между аккаунтами Twilio? Мы понимаем разницу между субаккаунтами и отдельными проектами, но нам нужно переместить номер в независимый аккаунт нашего клиента, который не является субаккаунтом нашего.

Для переноса номера Twilio в отдельный аккаунт клиента необходимо выполнить HTTP POST-запрос к ресурсу REST API IncomingPhoneNumber, используя учетные данные вашего аккаунта, указав AccountSid аккаунта назначения в теле запроса. Этот метод подходит для переноса между полностью отдельными аккаунтами Twilio, а не только между субаккаунтами, и требует наличия соответствующих разрешений в обоих аккаунтах.

Содержание

Обзор процесса переноса

Перенос номера Twilio между отдельными аккаунтами — это простой процесс, который включает в себя вызов API вместо использования веб-интерфейса. Согласно официальной документации Twilio, этот метод позволяет переносить номера телефонов из одного аккаунта Twilio в совершенно другой отдельный аккаунт, что идеально подходит для переноса клиентам.

Ключевое различие между переносом в субаккаунт и отдельный аккаунт заключается в требуемых данных для аутентификации и разрешениях. Для отдельных аккаунтов вам понадобятся данные из исходного (вашего) аккаунта и аккаунта назначения (клиента), в то время как переносы между субаккаунтами часто можно выполнить только с использованием данных основного аккаунта.

Важное замечание: При переносе между отдельными аккаунтами номер телефона потеряет существующую конфигурацию и может потребовать повторной настройки в аккаунте назначения. Это включает в себя голосовые URL, SMS URL и другие настройки, связанные с номером.

Предварительные требования и условия

Перед началом переноса убедитесь, что выполнены следующие требования:

Разрешения аккаунта

  • Ваш исходный аккаунт должен иметь права роли Владелец или Администратор
  • Аккаунт назначения клиента должен иметь права роли Владелец или Администратор
  • Оба аккаунта должны быть активными и в хорошем состоянии

Необходимая информация

  • SID номера телефона (PN) номера, который вы хотите перенести
  • AccountSid и AuthToken вашего исходного аккаунта
  • Account аккаунта назначения
  • Доступ для выполнения API-вызовов (cURL, Postman или язык программирования)

Технические требования

  • Включенный доступ к API для обоих аккаунтов
  • Правильные учетные данные для аутентификации
  • Подключение к сети к конечным точкам API Twilio

Как объясняется в документации поддержки Twilio, при выполнении API-запроса на перенос номера телефона необходимо использовать данные основного аккаунта, даже при переносе в совершенно отдельный аккаунт.

Пошаговое руководство по переносу

Шаг 1: Найдите SID номера телефона

  1. Войдите в консоль Twilio
  2. Перейдите в “Phone Numbers” > “Manage” > “Active Numbers”
  3. Найдите номер телефона, который хотите перенести
  4. Нажмите на номер для просмотра деталей
  5. Скопируйте Phone Number SID (начинается с “PN”)

Шаг 2: Соберите учетные данные аккаунта

  1. В консоли Twilio перейдите в “Settings” > “API Credentials”
  2. Скопируйте ваш AccountSid (начинается с “AC”)
  3. Скопируйте ваш AuthToken (храните этот токен в безопасности)
  4. Запросите у клиента их AccountSid (или предоставьте инструкции для его поиска)

Шаг 3: Подготовьте запрос на перенос

Для переноса требуется HTTP POST-запрос к конечной точке ресурса номера телефона. Базовая структура:

POST https://api.twilio.com/2010-04-01/Accounts/{SOURCE_ACCOUNT_SID}/IncomingPhoneNumbers/{PHONE_NUMBER_SID}.json

Со следующими параметрами:

  • AccountSid: SID аккаунта назначения (аккаунт вашего клиента)

Шаг 4: Выполните перенос

Используя cURL (как показано в примерах на Stack Overflow):

bash
curl -XPOST https://api.twilio.com/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/IncomingPhoneNumbers/PNXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.json \
-d "AccountSid=ACYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY" \
-u "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:your_auth_token"

Замените значения-заглушки на ваши реальные учетные данные и SID номера телефона.

Метод с использованием cURL

Вот подробное описание метода API с полным рабочим примером:

Структура команды cURL

bash
curl -X POST https://api.twilio.com/2010-04-01/Accounts/{SOURCE_ACCOUNT_SID}/IncomingPhoneNumbers/{PHONE_NUMBER_SID}.json \
-u "{SOURCE_ACCOUNT_SID}:{AUTH_TOKEN}" \
-d "AccountSid={DESTINATION_ACCOUNT_SID}"

Разбор параметров

  • -X POST: Указывает метод HTTP POST
  • URL: Конечная точка для ресурса конкретного номера телефона
  • -u: Базовая аутентификация с учетными данными исходного аккаунта
  • -d: Полезные данные, содержащие AccountSid назначения

Пример с реальными значениями

bash
curl -X POST https://api.twilio.com/2010-04-01/Accounts/AC12345678901234567890123456789012/IncomingPhoneNumbers/PN9876543210987654321098765432109.json \
-u "AC12345678901234567890123456789012:your_auth_token_here" \
-d "AccountSid=AC9876543210987654321098765432109"

Примеры на языках программирования

Если вы предпочитаете использовать язык программирования, вот примеры:

Python:

python
import requests
from requests.auth import HTTPBasicAuth

url = f"https://api.twilio.com/2010-04-01/Accounts/{SOURCE_ACCOUNT_SID}/IncomingPhoneNumbers/{PHONE_NUMBER_SID}.json"
auth = HTTPBasicAuth(SOURCE_ACCOUNT_SID, AUTH_TOKEN)
data = {"AccountSid": DESTINATION_ACCOUNT_SID}

response = requests.post(url, auth=auth, data=data)
print(response.json())

JavaScript (Node.js):

javascript
const accountSid = 'ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
const authToken = 'your_auth_token';
const client = require('twilio')(accountSid, authToken);

client.incomingPhoneNumbers(PHONE_NUMBER_SID)
  .update({
    accountSid: DESTINATION_ACCOUNT_SID
  })
  .then(phone_number => console.log(phone_number.accountSid));

Важные замечания и ограничения

Потеря конфигурации

При переносе номера телефона в отдельный аккаунт вся существующая конфигурация будет утеряна. Это включает в себя:

  • Голосовой URL и резервный голосовой URL
  • SMS URL и резервный SMS URL
  • Конфигурации службы сообщений
  • Любые связи с приложениями
  • Правила маршрутизации звонков

Как отмечено в документации Flex Twilio, “номера Twilio теряют свою существующую конфигурацию при переносе между проектами.”

Требования по времени

  • Процесс переноса обычно завершается в течение 5-10 минут
  • Во время переноса простоев не происходит
  • Номер остается активным на протяжении всего процесса

Финансовые последствия

  • Дополнительные комиссии за перенос между аккаунтами не взимаются
  • Номер телефона сохраняет исходную дату покупки и условия продления
  • Любой существующий баланс или кредиты остаются в исходном аккаунте

Требования к разрешениям

  • Оба аккаунта должны иметь необходимые разрешения
  • Номер телефона должен принадлежать исходному аккаунту
  • Для номера не должно быть в процессе запросов переноса порта

Проверка и завершение

Проверка статуса переноса

После выполнения API-запроса вы должны получить ответ, подтверждающий перенос. Ответ будет содержать обновленную информацию о номере телефона, включая его новый AccountSid.

Шаги для проверки завершения

  1. Проверьте ответ от API-вызова на статус успеха (HTTP 200 OK)
  2. Войдите в аккаунт Twilio вашего клиента
  3. Перейдите в “Phone Numbers” > “Manage” > “Active Numbers”
  4. Убедитесь, что перенесенный номер появился в их аккаунте
  5. Проверьте, что конфигурация номера показывает правильный AccountSid

Постпереносная настройка

Вашему клиенту потребуется повторно настроить номер телефона в их аккаунте:

  • Установить голосовые и SMS URL
  • Настроить службы сообщений
  • Настроить маршрутизацию и обработку звонков
  • Обновить связанные приложения

Устранение распространенных проблем

Ошибки аутентификации

Проблема: “Ошибка аутентификации” или “Недействительные учетные данные”
Решение: Убедитесь, что ваш AccountSid и AuthToken правильные и имеют необходимые разрешения.

Ошибки разрешений

Проблема: “Недостаточно разрешений” или “Роль аккаунта не разрешена”
Решение: Убедитесь, что оба аккаунта имеют роль Владелец или Администратор.

Номер не найден

Проблема: “Номер телефона не найден” или неверный SID
Решение: Дважды проверьте SID номера телефона и убедитесь, что он принадлежит вашему исходному аккаунту.

Проблемы с конфигурацией

Проблема: Номер появился в аккаунте назначения, но не работает
Решение: Клиенту необходимо повторно настроить голосовые/SMS URL и другие настройки в их аккаунте.

Ограничение по частоте запросов

Проблема: Ошибка “Слишком много запросов”
Решение: Добавьте задержки между API-вызовами или реализуйте логику повторных попыток с экспоненциальным увеличением задержки.

Согласно официальной документации Twilio, при выполнении API-запроса на перенос номера телефона необходимо использовать данные основного аккаунта, даже при переносе в совершенно отдельный аккаунт.

Заключение

Перенос номера Twilio в отдельный аккаунт клиента — это простой процесс с использованием REST API. Ключевые выводы:

  1. Используйте метод API: Выполните HTTP POST-запрос к ресурсу IncomingPhoneNumber с параметром AccountSid назначения
  2. Имейте правильные разрешения: Оба аккаунта должны иметь роль Владелец или Администратор
  3. Ожидайте потери конфигурации: Номер потеряет все существующие настройки и потребует повторной настройки
  4. Проверьте завершение: Проверьте оба аккаунта, чтобы убедиться в успешности переноса
  5. Планируйте повторную настройку: Вашему клиенту потребуется настроить голосовые/SMS URL и другие сервисы

Для большинства переносов клиентам метод API является наиболее эффективным подходом. Если вы работаете с несколькими номерами или вам требуется более автоматизированное решение, рассмотрите возможность реализации скрипта для пакетных переносов. Всегда тестируйте процесс с непроизводственным номером сначала и храните ваши токены аутентификации в безопасности на протяжении всего процесса.

Источники

  1. Moving Twilio Phone Numbers to another Twilio Account – Twilio Support
  2. Move Phone Numbers Between Twilio Accounts and their Subaccounts – Twilio Support
  3. How to transfer phone number from master account to subaccount - Stack Overflow
  4. REST API: Subaccounts | Twilio
  5. Move or Transfer a Phone Number to your Flex Project – Twilio Support
  6. IncomingPhoneNumber resource | Twilio
Авторы
Проверено модерацией
Модерация