Как сделать набор номера на телефоне Grandstream GXP21xx с компьютера
Возникла необходимость набирать номер на стационарном IP-телефоне Grandstream GXP2140 (и всей линейки GXP21xx) прямо с компьютера – чтобы нажать кнопку на ПК, а телефон сам начал вызов. Это удобно при частых звонках из браузера, таблиц или CRM, когда не хочется каждый раз вбивать длинные номера вручную на клавиатуре аппарата.
Стационарный IP-телефон Grandstream GXP2140
Сделать это довольно просто через встроенный HTTP API телефона, но стандартные строки вызова сначала не срабатывают – мешает отключенная по умолчанию опция удаленного набора. Ниже – настройка веб-интерфейса Grandstream GXP21xx, точный формат URL, а также готовые способы запуска звонка из браузера, PowerShell, .bat-файла, Excel, 1С и по ссылкам tel:.
1. Включение Click-To-Dial в веб-интерфейсе Grandstream GXP21xx
Перед отправкой HTTP-команд нужно разрешить удаленный набор номера на самом телефоне. Откройте IP-адрес аппарата в браузере и войдите в панель администратора (по умолчанию часто используются admin/admin, но на настроенных офисных телефонах пароль обычно изменен).
В верхнем меню перейдите на вкладку SETTINGS:
Панель управления IP-телефоном Grandstream GXP2140: вкладка SETTINGS
В левом меню откройте раздел Call Features:
Переход в раздел Settings – Call Features
Найдите пункт Click-To-Dial Feature и переключите его в положение Enabled:
Включение функции Click-To-Dial Feature (Enabled)
Нажмите Save and Apply внизу страницы – телефон применит конфигурацию (и при необходимости перезагрузится). На некоторых версиях прошивки также требуется зайти в Network → Remote Control, включить Action URI Support (Enabled), указать IP-адрес вашего ПК в Action URI Allowed IP List и отключить Remote Control Pop up Window Support (Disabled), чтобы телефон набирал номер сразу без подтверждения на экране.
2. Формат HTTP-запроса api-make_call
Для запуска исходящего звонка используется CGI-обработчик api-make_call. На прошивках линейки GXP21xx применяется такой URL-адрес:
http://PHONE_IP/cgi-bin/api-make_call?phonenumber=NUMBER&account=0&login=ADMIN_USER&password=ADMIN_PASSWORD
Расшифровка параметров:
- PHONE_IP: локальный IP-адрес телефона в вашей сети (например,
192.168.1.50). - NUMBER: номер вызываемого абонента без лишних пробелов и скобок.
- account: индекс SIP-аккаунта на аппарате (
0– первый аккаунт,1– второй и т.д.). - login и password: логин и пароль учетной записи веб-интерфейса.
На более свежих прошивках Grandstream CTI вместо пары login и password может использоваться параметр passcode:
http://PHONE_IP/cgi-bin/api-make_call?passcode=PASSWORD&phonenumber=NUMBER
После вызова этого URL телефон сразу начнет набор указанного номера по громкой связи или через трубку – вам остается только вести разговор.
3. Как сделать удобный набор с компьютера
Закладка в браузере (букмарклет)
Если нужно быстро набрать номер из буфера или вручную без установки программ, создайте на панели закладок браузера новую закладку и в поле URL вставьте JavaScript-код (подставив свой IP, логин и пароль):
javascript:(()=>{var n=prompt('Номер:');if(n)window.open(
'http://192.168.1.50/cgi-bin/api-make_call?phonenumber='
+encodeURIComponent(n)+'&account=0&login=user&password=PASS',
'_blank');})();
При клике по закладке откроется окно ввода номера, после чего телефон сразу начнет вызов.
Скрипт PowerShell и ярлык (или .bat-файл)
Чтобы при каждом звонке не открывалась пустая вкладка браузера, удобно отправлять HTTP-запрос фоново через скрипт PowerShell (например, C:\scripts\dial.ps1):
param([string]$Num = $(Read-Host "Номер")) $ip = "192.168.1.50" $u = "user"; $p = "PASS" $url = "http://$ip/cgi-bin/api-make_call" + "?phonenumber=$Num&account=0&login=$u&password=$p" Invoke-RestMethod -Uri $url | Out-Null
Создайте ярлык на рабочем столе с командой запуска этого скрипта, либо используйте простой .bat-файл на базе встроенного в Windows curl.exe:
@echo off set /p NUM=Номер: set "BASE=http://192.168.1.50/cgi-bin/api-make_call" set "AUTH=account=0&login=user&password=PASS" curl.exe -s "%BASE%?phonenumber=%NUM%&%AUTH%" >nul
Интеграция с Excel, 1С, CRM и ссылками tel:
- Таблицы Excel: если номер клиента хранится в ячейке
A2, добавьте рядом формулу=HYPERLINK("http://192.168.1.50/cgi-bin/api-make_call?phonenumber=" & A2 & "&account=0&login=user&password=PASS", "Позвонить"). - CRM и 1С: в обработчике кнопки карточки клиента достаточно выполнить фоновый HTTP GET-запрос на
api-make_call, предварительно очистив номер от пробелов, дефисов и скобок. - Протокол tel: чтобы звонить по клику на ссылки вида
tel:+380501234567прямо с сайтов, зарегистрируйте в реестре Windows (HKEY_CLASSES_ROOT\tel\shell\open\command) обработчик, который передает аргумент%1в скрипт PowerShell, убирает префиксtel:и отправляет запрос на телефон.
admin/admin и user/123 и по возможности не прописывайте главный пароль администратора в общих таблицах Excel или скриптах – используйте отдельную учетную запись пользователя (user) или passcode, если прошивка это позволяет. Обязательно ограничьте доступ к API в разделе Network → Remote Control → Action URI Allowed IP List конкретными IP-адресами рабочих ПК и держите IP-телефоны в отдельном VLAN от гостевого Wi-Fi.