обработчик протокола URL tel, mailto, callto в Windows 10

Как изменить обработчик протокола URL ( tel, mailto, callto ) в Windows 10

В этой статье будет описано, как в Windows 10 настроить приложение для открытия ссылок URL (tel, mailto, callto и т.д.) в браузере.

Например, сделать так, чтобы при нажатии на телефонный номер на сайте открывался софтфон phonerlite.

Также будет показан общий принцип добавления и изменения приложения по умолчанию через реестр в Windows 10.

 

 

  Содержание

Введение

Данная статья возникла из-за банальной задачи, которая до Windows 10 решалась достаточно просто, через графический интерфейс "Панель управления - Все элементы панели управления - Программы по умолчанию - Задать сопоставления"

Задача следующая:

Существует отдел продаж, который использует в своей работе ip-телефонию. В качестве телефонов используют софтфоны (Softphone) phonerlite и microsip. Также нужно, чтобы у менеджера при нажатии на телефонный номер на сайте клиента открывалось окно с выбором софтфона, а после выбора выполнялся вызов на этот номер.
Казалось бы, что тут сложного. Выбираем приложение для протокола tel и всё. Но в Windows 10 при выборе приложения отсутствуют установленные софтфоны.

PhonerLite Default Tel
PhonerLite Default Tel

При изучении вопроса оказалось, что не все приложения (не только софтфоны) корректно заносят данные в реестр.

В этой статье приведем пример, как добавить софтфон PhonerPhone в список приложений для выбора протокола tel для браузера Chrome.

 Описание тестового стенда

  • Для тестирования будем использовать виртуальную машину с установленной Windows 10 Pro Версия:1909
  • Устанавливать будем софтфон PhonerLite версия: 2.89
  • Открывать будем в браузере Chrome 89.0.

План работ. Краткое описание действий

  1. Установим софтфон PhonerLite
  2. Внесем изменения в реестр (изменения реестра и описание ниже в статье)
  3. Откроем браузер Chrome перейдем по ссылке tel:+788888888888 (номер для примера). Также можно зайти на какой-нибудь сайт, где есть номера телефонов (открытие через протокол tel:) и нажать на него.
  4. Проверяем, что приложение PhonerLite появилось в списке для выбора.
  5. Выбираем софтфон PhonerLite и проверяем, что в нем будет выполняться вызов номера +788888888888

Установка и настройка софтфона PhonerLite

Подробно описывать установку softphone PhonerLite в данной статье не будем, там все очень тривиально. Если с этим возникнут проблемы, можете обратиться к нашей статье Обзор и основные возможности софтфона PhonerLite.

Отметим один важный момент. В настройках софтфона PhonerLite есть выбор "Обработчика протокола URL", можно выбрать: tel:, sip:, callto:, hungup:. При выборе вносятся изменения в реестр. Как выяснилось, изменения не совсем корректные. Работать будет, но только с одним софтфоном. Этим способом не получится добавить в меню "Как вы хотите это открыть?" несколько приложений, например: phonerlite, microsip и blink.
Поэтому рекомендуем внести изменения в реестр самим.
 

Регистрация в реестре программы для обработчика протокола URL  

 Добавление ProgID

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

Данные в ProgID указывают, как будет обрабатываться ввод, данный ему (ProgID - программному идентификатору). 

[HKEY_CURRENT_USER\Software\Classes\PhonerLite]
@="Internet Call Protocol"
[HKEY_CURRENT_USER\Software\Classes\PhonerLite\DefaultIcon]
@="\"C:\\Program Files (x86)\\PhonerLite\\PhonerLite.exe\",0"

[HKEY_CURRENT_USER\Software\Classes\PhonerLite\shell\open\command]
@="\"C:\\Program Files (x86)\\PhonerLite\\PhonerLite.exe\" \"%1\""

В нашем примере мы добавили:

  • ProgID - PhonerLite
  • DefaultIcon - иконка для отображения в меню. Она берется из файла C:\Program Files (x86)\PhonerLite\PhonerLite.exe . Параметр "0" указывает, что берем иконку указанного файла. 
  • command - программа, которая запускается при обращении к ProgID - PhonerLite. Обратите внимание на параметр %1. В нашем случае это как раз номер телефона, который будет передаеться для набора. Если у вас передаются два параметра и вам нужен второй, то укажите %2.

 

Добавление Capabilities (возможностей приложения)

Следующим шагом добавляем описание для нашего приложения PhonerLite и ассоциацию протокола tel и созданного выше ProgID - PhonerLite

[HKEY_CURRENT_USER\Software\PhonerLite\Capabilities]
"ApplicationDescription"="PhonerLite VoIP Softphone"
"ApplicationIcon"="C:\\Program Files (x86)\\PhonerLite\\PhonerLite.exe,0"
"ApplicationName"="PhonerLite"

[HKEY_CURRENT_USER\Software\PhonerLite\Capabilities\URLAssociations]
"tel"="PhonerLite"
  • ApplicationDescription - описание приложения
  • ApplicationIcon - путь к ярлыку приложения 
  • ApplicationName - имя приложения
  • URLAssociations - раздел, в котором содержатся протоколы, которые могут использовать приложение. Формат Protocol=ProgID

Регистрация возможностей приложения [HKEY_CURRENT_USER\Software\RegisteredApplications]

 В заключении нужно добавить наше приложение PhonerLite в список программ по умолчанию 

[HKEY_CURRENT_USER\Software\RegisteredApplications]
"PhonerLite"="Software\\PhonerLite\\Capabilities"

 

Полный текст reg файла для добавления приложения PhonerLite в список приложений по умолчанию. 

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Classes\PhonerLite]
@="Internet Call Protocol"

[HKEY_CURRENT_USER\Software\Classes\PhonerLite\DefaultIcon]
@="\"C:\\Program Files (x86)\\PhonerLite\\PhonerLite.exe\",0"

[HKEY_CURRENT_USER\Software\Classes\PhonerLite\shell\open\command]
@="\"C:\\Program Files (x86)\\PhonerLite\\PhonerLite.exe\" \"%1\""



[HKEY_CURRENT_USER\Software\PhonerLite\Capabilities]
"ApplicationDescription"="PhonerLite VoIP Softphone"
"ApplicationIcon"="C:\\Program Files (x86)\\PhonerLite\\PhonerLite.exe,0"
"ApplicationName"="PhonerLite"

[HKEY_CURRENT_USER\Software\PhonerLite\Capabilities\URLAssociations]
"tel"="PhonerLite"



[HKEY_CURRENT_USER\Software\RegisteredApplications]
"PhonerLite"="Software\\PhonerLite\\Capabilities"

Для удобства предлагаем создать файл phonerUrlTel.reg и записать туда данный текст.

После этого запустить данный файл (понадобятся права администратора) и данные будут записаны в реестр.

 

Проверка того, что приложение PhonerLite появилось в списке приложения по умолчанию для протокола tel

Для проверки откроем браузер Chrome и в адресной строке введем tel:+788888888888 (номер для примера).

PhonerLite Default Tel:
PhonerLite Default Tel:

Нажимаем "Выбор приложения" и в открывшемся окне, после наших настроек, появилось приложение PhonerLite.

PhonerLite Default Tel:
PhonerLite Default Tel:

Выбираем его и видим, что открылся софтфон и в нем выполняется исходящий вызов по номеру  +788888888888

PhonerLite Default Tel:
PhonerLite Default Tel:

Задачу выполнили. Теперь по нажатию на телефонный номер в браузере (где протокол tel:) выполняется вызов через приложение PhonerLite.