Search code examples
windowsuwpteltapi

Register Windows Application for tel and callto protocols


First of all let me say that we are pretty new with this "windows app" developing process.

Our customers want us to develop an app working as click to call. The app is working just fine, but we are encountering problems with that appearing in the "default apps for protocol" menus for callto and tel protocols.

We are kinda clueless about the steps needed to achieve this goal.

What we tried:

  1. Adding the following to the manifests files.
<Applications>
  <Application Id="App" StartPage="default.html">
    <Extensions>
      <Extension Category="windows.protocol">
        <Protocol Name="alsdk" />
      </Extension>
    </Extensions>
  </Application>
</Applications>
  1. Modifying the registry keys:
[HKEY_CLASSES_ROOT\tel]
@="URL:custom_app"
"URL Protocol"=""

[HKEY_CLASSES_ROOT\tel\shell]

[HKEY_CLASSES_ROOT\tel\shell\open]

[HKEY_CLASSES_ROOT\tel\shell\open\command]
@="<path_to_exe>.app.exe" "%1"  

Any help WILL be appreciated. Thanks in advance.


Solution

  • Solved by registering the app first and then creating all the needed associations.

    Windows Registry Editor Version 5.00
    
    ;Register The App
    [HKEY_LOCAL_MACHINE\SOFTWARE\RegisteredApplications]
    "CustomApp"="Software\\Clients\\CustomApp\\Capabilities"
    
    [HKEY_LOCAL_MACHINE\SOFTWARE\Clients\CustomApp]
    @="CustomApp"
    
    [HKEY_LOCAL_MACHINE\SOFTWARE\Clients\CustomApp\Capabilities\StartMenu]
    "CustomApp"="CustomApp"
    
    [HKEY_LOCAL_MACHINE\SOFTWARE\Clients\CustomApp\Capabilities\UrlAssociations]
    "callto"="CustomApp.callto"
    "tel"="CustomApp.tel"
    
    [HKEY_CLASSES_ROOT\CustomApp.callto]
    @="CustomApp callto Handler"
     
    [HKEY_CLASSES_ROOT\CustomApp.callto\shell\open\command]
    @="\"<path_to_app>\\CustomApp.exe\" \"%1\""
    
    [HKEY_CLASSES_ROOT\CustomApp.tel]
    @="CustomApp tel Handler"
     
    [HKEY_CLASSES_ROOT\CustomApp.tel\shell\open\command]
    @="\"<path_to_app>\\CustomApp.exe\" \"%1\""
    

    If you have any file associations, you can add them easily doing this:

    [HKEY_LOCAL_MACHINE\SOFTWARE\Clients\CustomApp\Capabilities\FileAssociations]
    ".foo"="CustomApp.foo"
    
    [HKEY_CLASSES_ROOT\CustomApp.foo]
    @="CustomApp foo Handler"
     
    [HKEY_CLASSES_ROOT\CustomApp.foo\shell\open\command]
    @="\"<path_to_app>\\CustomApp.exe\" \"%1\""