How to Setup Sangoma Phone Desktop on the PBX
Usage Requirements
PBX OS
SNG7 with PBX version 15+.
PBX Modules
Please find below the module list to fulfill the dependency requirement for Sangoma Phone Desktop client.
Sangoma Connect
Sangomartapi
Sysadmin
Phone Apps (Restapps)
Firewall v15.0.39 or v16.0.57.1 (not required, recommended minimum version if Firewall module is being used)
Framework
There are multiple commercial and open source module dependencies required to support Sangoma soft clients. PBX deployments that have the paid version of Endpoint Manager or Phone Apps licensed for multiple years may require that the module maintenance to be current to ensure that they have the minimum version to support the Sangoma Connect module.
Asterisk
16 latest and up (18+ recommended)
Licensing
Your system will need to have some Sangoma Connect user licenses. The Admin→SangomaConnect page will list the current number of licensed users on the PBX.
Modules
While installing or updating the required sangomartapi module, the following required modules should also get updated automatically. Just as a reference, these are the modules that will also need to be up to date, and enabled:
contactmanager
restapps
sangomaconnect
sysadmin
userman
webrtc
Note: When installing the sangomartapi module from the command line, you may need to use the "downloadinstall" command if a previous version does not already exist on your system. In this case, you might be seeing a "Cannot find module" error when using the "install" command. If you have an existing install of the module, the "update" command should work.
# fwconsole ma downloadinstall sangomartapi
RPMS
A quick way of installing the PJSIPCallIDToChannel RPM is to use the built-in asterisk-version-switch updater. By running 'asterisk-version-switch' and selecting any asterisk version (+16 is recommended) all the required RPMs will be downloaded and installed along with the new Asterisk version. Make sure to run 'yum update' first, to have all the packages up to date.
WARNING! THIS PROCESS WILL DROP ACTIVE CALLS. CONSIDER TAKING AROUND 10 MINUTES FOR THIS PROCESS TO COMPLETE.
The freepbx_asterisk_modules RPM for the running version of asterisk will need to be installed. With this installed properly, PJSIPCallIDToChannel should be an available asterisk manager command. Running "manager show commands" should show it if it's installed:
# asterisk -rx "manager show commands"|grep PJSIP
PJSIPCallIDToChannel PJSIPNotify Send a NOTIFY to either an endpoi PJSIPQualify Qualify a chan_pjsip endpoint. PJSIPRegister Register an outbound registration PJSIPShowAors Lists PJSIP AORs. PJSIPShowAuths Lists PJSIP Auths. PJSIPShowContacts Lists PJSIP Contacts. PJSIPShowEndpoint Detail listing of an endpoint and PJSIPShowEndpoints Lists PJSIP endpoints. PJSIPShowRegistrationInboundContactStatuses Lists ContactStatuses for PJSIP i PJSIPShowRegistrationsInbound Lists PJSIP inbound registrations PJSIPShowRegistrationsOutbound Lists PJSIP outbound registration PJSIPShowResourceLists Displays settings for configured PJSIPShowSubscriptionsInbound Lists subscriptions. PJSIPShowSubscriptionsOutbound Lists subscriptions. PJSIPUnregister Unregister an outbound registrati
If PJSIPCallIDToChannel is not listed. Manually install the rpm. Asterisk will need to reloaded after the install. For example:
Search for "freepbx_asterisk_modules"
# yum clean all; yum search freepbx_asterisk_modules Loaded plugins: fastestmirror, versionlock Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast Cleaning repos: sng-base sng-epel sng-extras sng-pkgs sng-updates sng7-debuginfo sng7-testing Cleaning up list of fastest mirrors Loaded plugins: fastestmirror, versionlock Determining fastest mirrors sng-base | 3.6 kB 00:00:00 sng-epel | 2.9 kB 00:00:00 sng-extras | 2.9 kB 00:00:00 sng-pkgs | 3.4 kB 00:00:00 sng-updates | 2.9 kB 00:00:00 sng7-debuginfo | 3.4 kB 00:00:00 sng7-testing | 3.4 kB 00:00:00 (1/8): sng-base/7-8.2003.3.el7.sangoma/x86_64/group_gz | 153 kB 00:00:00 (2/8): sng-extras/7-8.2003.3.el7.sangoma/x86_64/primary_db | 206 kB 00:00:00 (3/8): sng-pkgs/7-8.2003.3.el7.sangoma/x86_64/primary_db | 1.0 MB 00:00:00 (4/8): sng-base/7-8.2003.3.el7.sangoma/x86_64/primary_db | 6.1 MB 00:00:00 (5/8): sng-epel/7-8.2003.3.el7.sangoma/x86_64/primary_db | 7.3 MB 00:00:00 (6/8): sng-updates/7-8.2003.3.el7.sangoma/x86_64/primary_db | 4.5 MB 00:00:00 (7/8): sng7-debuginfo/primary_db | 38 kB 00:00:01 (8/8): sng7-testing/primary_db | 1.6 MB 00:00:01 ========================================================== N/S matched: freepbx_asterisk_modules =========================================================== asterisk13.21-freepbx_asterisk_modules-debuginfo.x86_64 : Debug information for package asterisk13.21-freepbx_asterisk_modules asterisk16.8-freepbx_asterisk_modules-debuginfo.x86_64 : Debug information for package asterisk16.8-freepbx_asterisk_modules asterisk16cert-freepbx_asterisk_modules-debuginfo.x86_64 : Debug information for package asterisk16cert-freepbx_asterisk_modules asterisk18-freepbx_asterisk_modules-debuginfo.x86_64 : Debug information for package asterisk18-freepbx_asterisk_modules asterisk19.0-freepbx_asterisk_modules-debuginfo.x86_64 : Debug information for package asterisk19.0-freepbx_asterisk_modules asterisk13.21-freepbx_asterisk_modules.x86_64 : Provides additional asterisk modules for freepbx systems asterisk16.8-freepbx_asterisk_modules.x86_64 : Provides additional asterisk modules for freepbx systems asterisk16cert-freepbx_asterisk_modules.x86_64 : Provides additional asterisk modules for freepbx systems asterisk18-freepbx_asterisk_modules.x86_64 : Provides additional asterisk modules for freepbx systems asterisk19.0-freepbx_asterisk_modules.x86_64 : Provides additional asterisk modules for freepbx systems Name and summary matches only, use "search all" for everything.
Find the rpm name that corresponds to your running major version of asterisk. Install it. For example, if you're running Asterisk 16.X :
# yum install asterisk16.8-freepbx_asterisk_modules
Fully restart Asterisk. Calls will be dropped.
# asterisk -rx "core restart now"
Ports
Users will need to be able to access these system ports, which might require port forwarding for remote users.
Sangoma Phone Desktop Client Service (Secure Port Required)
This port number will need to be given to users, because they will need to include it with the host address during login
This port can be set through Admin→System Admin→Port Management
UCP (Secure Port Recommended for remote users)
This is required to use the Forgot Password option from the login screen. The UCP login page will be loaded in a web browser, which has a Forgot Password tool. The same credentials are used for UCP and the Sangoma Connect Desktop client.
Ports 6000-6199 - These should not need to be forwarded since they will only be used internally
This range of ports should not be used for any other options set by the admin. This is a range we are reserving the right to use for internal purposes.
If an admin set things up to use one of these ports before we started enforcing things, it is recommended they choose a different port
Firewall Settings
For some environments where Sangoma Phone will be used from remote networks, the zone accessibility settings must be set properly for the Sangoma Phone Desktop Client Service port.
These settings are found in Connectivity->Firewall->Services→Extra Services. By default, the service is open only to the Local zone, enable for other zones only as needed.
Asterisk SIP Settings
Select a TLS certificate in Settings→Asterisk SIP Settings→SIP Settings[chan_pjsip].
Make sure the tls, and ws(websocket) transports are enabled in Settings→Asterisk SIP Settings→SIP Settings[chan_pjsip]. Changes here require an Asterisk restart.
After those are enabled, set the Default TLS Port Assignment to PjSip, from the General SIP Settings tab
Advanced Settings
After the above Asterisk SIP Settings are applied, Enable the mini-HTTP Server, with TLS, and Force the WebSocket Mode to PJSIP. These options are found in Settings→Advanced Settings.
Set the Conference Room App to app_confbridge. Sangoma Phone Desktop Client conference features will not work unless the Conference Room App set is ConfBridge(app_confbridge).
SangomaConnect Settings
Set the PBX's host address in Admin→SangomaConnect→Settings
To avoid potential issues, the following is advised:
Client users will use this same Address value, along with the PBX's "Sangoma Phone Desktop Client Service" Secure Port when logging in. With that in mind, this Address will need to be something that is resolvable from the client user's desktop.
A proper Fully Qualified Domain Name is recommended
A Secure Port must be enabled for "Sangoma Phone Desktop Client Service" in Admin→System Admin→Port Management
This address should also match what is used as the PBX's HTTPS SSL cert's Common Name
In most cases, this address should be what is found in Admin→System Admin→Hostname
While an FQDN and valid SSL certificate is recommended, an IP address can be set here as long as a self-signed certificate with the IP address as its common name is used during the HTTPS setup when enabling Secure Ports in Port Management.
Generating a self-signed certificate with an IP for its common name can be done through Admin→Certificate Management
To do this, you will likely need to remove all existing Self-signed certificates by clicking the Delete Self-Signed CA button. This is because a typical install will have added a Default Self-Signed certificate which is based on a local hostname. Adding new self-signed certs while that exists will not work as expected. After deleting the default cert, choose the option to Generate Self-Signed Certificate, and set the pbx ip address as the hostname.
This method can lead to issues if not all client users will be logging in with the same IP address set here. For example, some situations might have users logging in using the PBX's external IP vs internal IP.
User Setup
SangomaConnect Settings
Each Sangoma Phone user will need to be based on an existing PJSip extension.
In User Manager, the Sangoma Phone users will need to have "Enable Sangoma Phone Login" option enabled in the SangomaConnect tab of their user settings.
Language Settings
The desktop client's Login screen will always be in English.
After logging in successfully, the client will be translated if the User's Language Setting matches a language supported by the client. Otherwise, it will default to English.
The User's Language Setting can be set through Admin->User Management, by editing a User or Group.
The current list of supported languages include:
English (United States)
English (United Kingdom)
French (France)
German (Germany)
Italian (Italy)
Spanish (Spain)