Как совершить звонок с нового номера Twilio через bash или zsh

Автор: | 04.08.2026

Закройте текстовый редактор! Мы научимся совершать звонки с помощью Twilio прямо из командной строки bash или zsh. Не покидая терминал, мы пройдём путь от поиска доступного номера до его покупки и совершения звонка, используя стандартные встроенные команды *NIX.

Начнём!

Перейдите в консоль Twilio. Войдите в аккаунт или зарегистрируйтесь (не забудьте подтвердить свой номер), затем найдите раздел **Account Summary**, как показано ниже:

Вам нужно заменить переменные ‘account_sid’ и ‘auth_token’ ниже на значения ‘ACCOUNT SID’ и ‘AUTH TOKEN’ из вашей консоли Twilio. Нажмите на значок глаза, чтобы увидеть токен авторизации, и скопируйте его в терминал.

«`

account_sid=»ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX»

auth_token=»your_auth_token»

«`

Прежде чем совершить звонок с помощью Twilio, нам нужно получить номер телефона Twilio. Теперь, когда наши учётные данные API настроены, мы можем запросить ресурс AvailablePhoneNumbers, чтобы найти новый номер для нашего аккаунта.

«`

available_number=`curl -X GET \

«https://api.twilio.com/2010-04-01/Accounts/${account_sid}/AvailablePhoneNumbers/US/Local» \

-u «${account_sid}:${auth_token}» | \

sed -n «/PhoneNumber/{s/.*//;s/<\/PhoneNumber.*//;p;}"` \ && echo $available_number ``` Выполнение этой команды присвоит переменной `available_number` первый доступный номер, который вернёт Twilio. В этой строке происходит несколько действий — давайте разберём их: `available_number=` — синтаксис в bash или zsh для установки локальной переменной. Обратные кавычки (`` ` ``) содержат выражение, которое оболочка должна выполнить для получения значения переменной. Использует пакет cURL и HTTP-метод GET для запроса доступных номеров у конечной точки Twilio. Ключ '-u' означает, что мы будем передавать учётные данные с помощью HTTP Basic Auth. Синтаксис `${variable_name}` внутри двойных кавычек подставляет ранее заданные переменные в команду. `curl -X GET "https://api.twilio.com/[опущено]" -u "${account_sid}:${auth_token}"` Символ `|` в оболочке означает, что результаты предыдущей команды передаются следующей. Использует утилиту потоковой обработки sed для извлечения первого вхождения тегов `` из XML-ответа Twilio: `sed -n «/PhoneNumber/{s/.*//;s/<\/PhoneNumber.*//;p;}"` Двойные амперсанды `&&` означают, что следующая команда будет выполнена сразу после завершения предыдущих. `echo $available_number` — проверка, что мы получили результат, выводя содержимое переменной в терминал. *(Для опытных пользователей: 'US' после AvailablePhoneNumbers в URI — это код страны по стандарту ISO.)* **Примечание:** Если у вас не пробный аккаунт, вы потратите деньги на покупку номера. Подробнее на нашей странице с ценами. Теперь, когда мы нашли доступный номер Twilio для покупки, нужно его приобрести. Следующая команда купит найденный номер и добавит его в ваш аккаунт. ``` curl -X POST -F "PhoneNumber=${available_number}" \ "https://api.twilio.com/2010-04-01/Accounts/${account_sid}/IncomingPhoneNumbers" \ -u "${account_sid}:${auth_token}" ``` После выполнения этой команды вы станете счастливым обладателем нового номера телефона от Twilio (если нет, возможно, номер только что купил кто-то другой — можно повторить шаг поиска доступного номера и попробовать снова). Обратите внимание на несколько изменений при использовании cURL с конечной точкой IncomingNumber: - Теперь мы используем HTTP-метод POST - Мы отправляем параметр `PhoneNumber` на конечную точку IncomingPhoneNumbers, подставляя номер, найденный на предыдущем шаге Предполагая, что всё прошло успешно и теперь номер `$available_number` принадлежит вам, мы почти готовы к главному. Когда Twilio совершает или принимает звонок, он запрашивает у вашего приложения инструкции по обработке звонка. Эти инструкции пишутся с помощью TwiML — языка разметки Twilio. TwiML обладает множеством функций (ознакомьтесь с документацией по TwiML), которые вы сможете изучить после завершения работы в командной строке. Обратите внимание, что Twilio также может размещать ваш TwiML в TwiML Bins, что избавит вас от необходимости настраивать хостинг для ваших экспериментов. В этом руководстве мы будем использовать пример TwiML, который можно найти здесь. Когда будете готовы продолжить, отредактируйте переменную `your_number` ниже и выполните следующую команду: ``` your_number="+15555555555" curl -X POST \ --data-urlencode "Url=https://demo.twilio.com/docs/voice.xml" \ --data-urlencode "To=${your_number}" \ --data-urlencode "From=${available_number}" \ "https://api.twilio.com/2010-04-01/Accounts/${account_sid}/Calls" \ -u "${account_sid}:${auth_token}" ``` Если всё прошло хорошо, вы услышите сообщение от голоса Alice (больше вариантов в ) и классический mp3. Надеемся, мы вас не разочаровали.

Использование API Twilio для совершения звонков, не покидая командную оболочку, упростит прототипирование и написание скриптов. Теперь вы можете автоматизировать поиск, покупку и совершение звонков с помощью Twilio, не выходя из bash или zsh.