Как перенести номер Twilio в аккаунт клиента
Узнайте, как перенести номер Twilio в отдельный аккаунт клиента с помощью REST API. Полное пошаговое руководство с примерами кода и советами по устранению неполадок.
Как перенести номер Twilio в аккаунт клиента
Мы приобрели номер Twilio для клиента во время тестирования и теперь нам нужно перенести его в их отдельный аккаунт Twilio. Может ли кто-нибудь предоставить пошаговые инструкции по переносу номера между аккаунтами Twilio? Мы понимаем разницу между субаккаунтами и отдельными проектами, но нам нужно переместить номер в независимый аккаунт нашего клиента, который не является субаккаунтом нашего.
Для переноса номера Twilio в отдельный аккаунт клиента необходимо выполнить HTTP POST-запрос к ресурсу REST API IncomingPhoneNumber, используя учетные данные вашего аккаунта, указав AccountSid аккаунта назначения в теле запроса. Этот метод подходит для переноса между полностью отдельными аккаунтами Twilio, а не только между субаккаунтами, и требует наличия соответствующих разрешений в обоих аккаунтах.
Содержание
- Обзор процесса переноса
- Предварительные требования и условия
- Пошаговое руководство по переносу
- Метод с использованием cURL
- Важные замечания и ограничения
- Проверка и завершение
- Устранение распространенных проблем
Обзор процесса переноса
Перенос номера Twilio между отдельными аккаунтами — это простой процесс, который включает в себя вызов API вместо использования веб-интерфейса. Согласно официальной документации Twilio, этот метод позволяет переносить номера телефонов из одного аккаунта Twilio в совершенно другой отдельный аккаунт, что идеально подходит для переноса клиентам.
Ключевое различие между переносом в субаккаунт и отдельный аккаунт заключается в требуемых данных для аутентификации и разрешениях. Для отдельных аккаунтов вам понадобятся данные из исходного (вашего) аккаунта и аккаунта назначения (клиента), в то время как переносы между субаккаунтами часто можно выполнить только с использованием данных основного аккаунта.
Важное замечание: При переносе между отдельными аккаунтами номер телефона потеряет существующую конфигурацию и может потребовать повторной настройки в аккаунте назначения. Это включает в себя голосовые URL, SMS URL и другие настройки, связанные с номером.
Предварительные требования и условия
Перед началом переноса убедитесь, что выполнены следующие требования:
Разрешения аккаунта
- Ваш исходный аккаунт должен иметь права роли Владелец или Администратор
- Аккаунт назначения клиента должен иметь права роли Владелец или Администратор
- Оба аккаунта должны быть активными и в хорошем состоянии
Необходимая информация
- SID номера телефона (PN) номера, который вы хотите перенести
- AccountSid и AuthToken вашего исходного аккаунта
- Account аккаунта назначения
- Доступ для выполнения API-вызовов (cURL, Postman или язык программирования)
Технические требования
- Включенный доступ к API для обоих аккаунтов
- Правильные учетные данные для аутентификации
- Подключение к сети к конечным точкам API Twilio
Как объясняется в документации поддержки Twilio, при выполнении API-запроса на перенос номера телефона необходимо использовать данные основного аккаунта, даже при переносе в совершенно отдельный аккаунт.
Пошаговое руководство по переносу
Шаг 1: Найдите SID номера телефона
- Войдите в консоль Twilio
- Перейдите в “Phone Numbers” > “Manage” > “Active Numbers”
- Найдите номер телефона, который хотите перенести
- Нажмите на номер для просмотра деталей
- Скопируйте Phone Number SID (начинается с “PN”)
Шаг 2: Соберите учетные данные аккаунта
- В консоли Twilio перейдите в “Settings” > “API Credentials”
- Скопируйте ваш AccountSid (начинается с “AC”)
- Скопируйте ваш AuthToken (храните этот токен в безопасности)
- Запросите у клиента их 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):
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
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 назначения
Пример с реальными значениями
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:
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):
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.
Шаги для проверки завершения
- Проверьте ответ от API-вызова на статус успеха (HTTP 200 OK)
- Войдите в аккаунт Twilio вашего клиента
- Перейдите в “Phone Numbers” > “Manage” > “Active Numbers”
- Убедитесь, что перенесенный номер появился в их аккаунте
- Проверьте, что конфигурация номера показывает правильный AccountSid
Постпереносная настройка
Вашему клиенту потребуется повторно настроить номер телефона в их аккаунте:
- Установить голосовые и SMS URL
- Настроить службы сообщений
- Настроить маршрутизацию и обработку звонков
- Обновить связанные приложения
Устранение распространенных проблем
Ошибки аутентификации
Проблема: “Ошибка аутентификации” или “Недействительные учетные данные”
Решение: Убедитесь, что ваш AccountSid и AuthToken правильные и имеют необходимые разрешения.
Ошибки разрешений
Проблема: “Недостаточно разрешений” или “Роль аккаунта не разрешена”
Решение: Убедитесь, что оба аккаунта имеют роль Владелец или Администратор.
Номер не найден
Проблема: “Номер телефона не найден” или неверный SID
Решение: Дважды проверьте SID номера телефона и убедитесь, что он принадлежит вашему исходному аккаунту.
Проблемы с конфигурацией
Проблема: Номер появился в аккаунте назначения, но не работает
Решение: Клиенту необходимо повторно настроить голосовые/SMS URL и другие настройки в их аккаунте.
Ограничение по частоте запросов
Проблема: Ошибка “Слишком много запросов”
Решение: Добавьте задержки между API-вызовами или реализуйте логику повторных попыток с экспоненциальным увеличением задержки.
Согласно официальной документации Twilio, при выполнении API-запроса на перенос номера телефона необходимо использовать данные основного аккаунта, даже при переносе в совершенно отдельный аккаунт.
Заключение
Перенос номера Twilio в отдельный аккаунт клиента — это простой процесс с использованием REST API. Ключевые выводы:
- Используйте метод API: Выполните HTTP POST-запрос к ресурсу IncomingPhoneNumber с параметром AccountSid назначения
- Имейте правильные разрешения: Оба аккаунта должны иметь роль Владелец или Администратор
- Ожидайте потери конфигурации: Номер потеряет все существующие настройки и потребует повторной настройки
- Проверьте завершение: Проверьте оба аккаунта, чтобы убедиться в успешности переноса
- Планируйте повторную настройку: Вашему клиенту потребуется настроить голосовые/SMS URL и другие сервисы
Для большинства переносов клиентам метод API является наиболее эффективным подходом. Если вы работаете с несколькими номерами или вам требуется более автоматизированное решение, рассмотрите возможность реализации скрипта для пакетных переносов. Всегда тестируйте процесс с непроизводственным номером сначала и храните ваши токены аутентификации в безопасности на протяжении всего процесса.
Источники
- Moving Twilio Phone Numbers to another Twilio Account – Twilio Support
- Move Phone Numbers Between Twilio Accounts and their Subaccounts – Twilio Support
- How to transfer phone number from master account to subaccount - Stack Overflow
- REST API: Subaccounts | Twilio
- Move or Transfer a Phone Number to your Flex Project – Twilio Support
- IncomingPhoneNumber resource | Twilio