Conferencing app deployment guide

The Dolby Conference Phone version 3.0 release includes an SDK that allows service providers to create downloadable applications and thereby customize the user’s experience.

This article describes how service providers can deploy the conferencing app for the Dolby Conference Phone at scale.

Overview

The key components of the app deployment model are:

ComponentDescription
App deployment serverThe service provider hosts an app deployment server in its service infrastructure. The app deployment server contains the conferencing app, developed either by the service provider or by Dolby for the service provider. When it boots up, the Dolby Conference Phone downloads the app from the app deployment server using HTTP or HTTPS. The service provider is responsible for deploying new versions of the app when they become available.
Conferencing AppThe conferencing app is a QML application that is hosted on the app deployment server.
Dolby Conference PhoneDolby Conference Phones are deployed on the customer's premises. Based on its configuration, a phone can download a conferencing app from the app deployment server.
Dolby Voice enabled service backendThe Dolby Voice enabled service backend is the service infrastructure created and maintained by the service provider. The conferencing app uses HTTP, WebSocket, SIP (Session Initiation Protocol), and RTP to communicate with the service backend.
Provisioning serverThe provisioning server allows for flexibility in installing, upgrading, maintaining and configuring the Dolby Conference Phone at scale. The provisioning server is typically located on the customer's premises and is managed by the customer's IT group. The service provider can also set up a provisioning server in the cloud and manage the Dolby Conference Phones on behalf of its customers. The Dolby Conference Phone supports FTP, HTTP and HTTPS for provisioning; it also supports automatic provisioning server discovery via DHCP Option 66 and a DNS SRV record.
ProxyIn certain customer environments, an HTTP proxy server may be required to allow the network clients to connect to an Internet server. To provide access to an HTTP proxy server, the Dolby Conference Phone can be either statically configured or dynamically configured using a PAC (Proxy Auto Configuration) file.

On-premises provisioning scenario

On-premises provisioning is the most common deployment scenario, especially for customers who use dual mode (IP PBX and Conferencing). The following diagram shows the system architecture and the app deployment process.

In this scenario, the customer is responsible for setting up the provisioning server to manage the Dolby Conference Phones. Dolby also provides a Dolby Conferencing Console, an all-in-one solution which includes a provisioning server. Its web-based GUI interface allows customer IT administrators to easily manage a large number of Dolby Conference Phones.

"On-Premises deployment model"

Off-premises provisioning scenario

Off-premises provisioning is suitable when the service provider offers provisioning services to the customer. In this scenario, the customer is only required to configure the Dolby Conference Phones to access the service provider's provisioning server. The service provider then manages configuration, software upgrades, etc. on its customer's behalf.

"On-Premises deployment model"

Provisioning server

The Dolby Conference Phone supports FTP, HTTP and HTTPS for provisioning. HTTPS is the recommended protocol since it provides the best performance and security. Refer to the Dolby Conference Phone Administrator's Guide for setting up a provisioning server to manage Dolby Conference Phone configuration files.

Dolby also offers the Dolby Conferencing Console, a web-based dashboard and management portal powered by a highly secure and scalable backend server. The Dolby Conferencing Console replaces manual, time-consuming configuration and provisioning tasks with a streamlined and automated bulk-provisioning process. It also provides real-time operational awareness via detailed device and network analytics and reports, enabling IT to track assets, proactively monitor systems, and remotely diagnose and resolve issues.

Since the Dolby Conferencing Console includes a provisioning server, customers can avoid the complex task of setting up their own. In addition, a RESTful API and SNMPv2 protocol simplify integration into the service provider's enterprise network management platforms.

The Dolby Conferencing Console is essential for any deployment of 20 or more Dolby Conference Phones. For more information on the Dolby Conferencing Console, refer to the Dolby Conferencing Console Operations and Management Guide.

The following provisioning server parameters must be set to allow the Dolby Conference Phone to connect to the app deployment server and download the conferencing app.

Parameter keyValuePurposeWeb UI location
Dvms.Server.Addresshttps://app.csp-company.com/dolby/The app deployment server’s IP address or URL. The Dolby Conference Phone downloads the app from this locationSettings > Dolby Voice Conferencing Service > Server > Server address
Dvms.Service.ProviderCustomMust be set to CustomSettings > Dolby Voice Conferencing Service > Service > Service Provider
Dvms.Service.TypeAppSettings > Dolby Voice Conferencing Service > Service > Application Type
Dvms.Custom.Parameter1 - Dvms.Custom.Parameter44 custom parameters that can be used by the conferencing appSettings > Dolby Voice Conferencing Service > Custom > Custom Parameter 1-4

The Dolby Conference Phone supports automatic provisioning server discovery using either DHCP Option 66 or a DNS SRV record. For more information on provisioning server auto discovery, please refer to the Dolby Conference Phone administrator's guide.

App deployment server

The Dolby Conference Phone downloads the app using the standard HTTP or HTTPS protocol. Based on the scale of the app deployment, the service provider can choose to use a content distribution network (CDN) or a simple cluster of web servers to host the conferencing app. In case the service provider uses an HTTPS server, the server CA certificate must be imported to the Dolby Conference Phone using the Dolby Conferencing Console or a provisioning server.

The Dolby Conference Phone does not support HTTP authentication for downloading the app from the app deployment server.

Firewall ports

All Dolby Voice clients, including the Dolby Conference Phone, must connect to the Dolby Voice-enabled backend server through either a direct SIP connection or a SIP connection over a secure tunnel. To ensure that real-time packet traffic can be initiated with the backend server, it is the service provider's responsibility to provide its customers with details regarding which firewall ports and outbound destination addresses (or address ranges) need to be opened.

TLS configuration

The Dolby Conference Phone supports Transport Layer Security (TLS) in the following scenarios:

  • The Dolby Conference Phone uses HTTPS to download its configuration and software from the provisioning server or the Dolby Conferencing Console.
  • The Dolby Conference Phone uses HTTPS to download the conferencing app from the app deployment server.
  • The conferencing app communicates with the service provider's web and call control services using HTTPS or Secure Web Socket.

In all the above scenarios, the Dolby Conference Phone must be installed with adequate CA certificates to allow for successful TLS negotiation. The Dolby Conference Phone can load the CA certificate bundle from the provisioning server using the master configuration file. The Dolby Conferencing Console also supports easy-to-use mechanisms that IT administrators or service providers can use to provision CA certificates for the Dolby Conference Phones. It is the service provider's responsibility to ensure that the personnel who manage the provisioning server have details regarding downloading the CA certificate bundle.

For more information on how to load CA certificates onto the Dolby Conference Phone, please refer to the Dolby Conference Phone Administrator's Guide and Dolby Conferencing Console Operations and Management Guide.

Once the CA certificates are loaded onto the Dolby Conference Phone, the IT administrator can verify their existence using the following steps:

  • Open the Dolby Conference Phone web UI (enter the Dolby Conference Phone's IP address in a browser)
  • Log in as admin and use default password 1739
  • Click on Status > System > Device > System certificates details to view the system certificate store

Proxy

Often, the customer network requires clients to go through a proxy server to communicate with Internet services. The Dolby Conference Phone supports the HTTP proxy in the following scenarios:

  • The Dolby Conference Phone downloads its configuration and software from the provisioning server or the Dolby Conferencing Console.
  • The Dolby Conference Phone downloads the conferencing app from the app deployment server.
  • The conferencing app communicates with the service provider's web and call control services using HTTP, HTTPS, or WebSocket.

There are two ways to configure the proxy server.

1. Configure a PAC (Proxy Auto-Config) URL that instructs the Dolby Conference Phone to automatically discover the proxy settings based on the target URL. The Dolby Conference Phone also supports the WPAD (Web Proxy Auto Detection) method for locating the PAC URL. IT administrators can enable this to trigger automatic proxy discovery in the network. This is the recommended mechanism as it allows for more flexibility in dynamically allocating proxy resources in the customer’s network.

Parameter keyTypeNoteWeb UI location
Network.Proxy.AutoDiscoverBooleanTurns WPAD on or off; by default it is set to falseSettings > Network > Proxy > Enable WPAD
Network.Proxy.PacUrlURLIf AutoDiscover is set to false, a PAC URL can be specified. The Dolby Conference Phone uses the PAC URL to locate the proxy server that it will use to communicate with the service provider's infrastructure.Settings > Network > Proxy > PacUrl
Network.Proxy.UserNameStringProxy authentication user nameSettings > Network > Proxy > Proxy Server Login Name
Network.Proxy.PasswordString, encryptedProxy authentication passwordSettings > Network > Proxy > Proxy Server Login Password

2. Configure a conferencing app specific proxy server using Dvms.Proxy.x configuration parameters

Parameter keyTypeNoteWeb UI location
Dvms.Proxy.AddressHost nameA statically configured proxy server address, dedicated to the conferencing app. Once configured, the Dolby Conference Phone will go through the specified proxy server to download the conferencing app, and all network communications initiated from the conferencing app will also go through this proxy server.Settings > Dolby Voice Conferencing Service > Proxy > Proxy Address
Dvms.Proxy.PortIntegerBy default this parameter is set to 8080. It specifies the network port for the proxy server.Settings > Dolby Voice Conferencing Service > Proxy > Proxy Port
Dvms.Proxy.UserNameStringProxy authentication user nameSettings > Dolby Voice Conferencing Service > Proxy > Proxy User
Dvms.Proxy.PasswordString, encryptedProxy authentication passwordSettings > Dolby Voice Conferencing Service > Proxy > Proxy Password

Please note that if both methods are implemented, the Dvms.Proxy.x parameters will be used for conferencing app related network communications; the PAC file is not utilized.

For more information on proxy setups, please refer to the Dolby Conference Phone Administrator's Guide.

HTTP User Agent

All HTTP transactions in the Dolby Conference Phone use a special HTTP user agent in the HTTP header. The format is: DolbyConferencePhone_SN:%1;MAC:%2;SDK_VERSION:%3;VERSION:%4.

  • SN: The serial number of the Dolby Conference Phone.
  • MAC: The MAC address of the Dolby Conference Phone.
  • SDK_VERSION: The CSAF API version of the Dolby Conference Phone.
  • VERSION: The software version of the Dolby Conference Phone.

For example, when the conferencing app sends an HTTP request using the AJAX API to the service provider's web and call control service, it uses user agent DolbyConferencePhone_SN:D0025416;MAC:00D0145678;SDK_VERSION:2;VERSION:3.0.0.9 to identify itself.

Software updates and app compatibility.

Dolby regularly releases updated versions of the Dolby Conference Phone software which contain bug fixes and introduce new features.

The software can be pushed to the Dolby Conference Phones using a provisioning server or the Dolby Conferencing Console. It is the service provider's responsibility to notify customers of recommended software versions; for example, a new version of a conferencing app may require a newer version of software to support it.

The Dolby Conference Phone SDK maintains a versioning scheme and backward compatibility. Therefore, a new, official software release is guaranteed to work with older version conferencing apps that were designed to work with a prior version of software.

.app.cfg file

The .app.cfg file, also known as the app meta file, is deployed along with the conferencing app on the app deployment server. By default, the Dolby Conference Phone periodically downloads this file at runtime to check for version changes. If a version change is detected, the phone will download the new app. Service providers can use this mechanism to deploy new versions of the conferencing app as long as the new app is compatible with the Dolby Conference Phone software running on the phone.

The following shows a sample code-signed .app.cfg file.

{
    "certificate": "-----BEGIN CERTIFICATE-----
MIIGhjCCBG6gAwIBAgIJAOG8aIjXMAlPMA0GCSqGSIb3DQEBBQUAMIGIMQswCQYD
VQQGEwJVUzELMAkGA1UECBMCQ0ExEjAQBgNVBAcTCVN1bm55dmFsZTETMBEGA1UE
ChMKRG9sYnkgTGFiczEOMAwGA1UECxMFQ29tbXMxFjAUBgNVBAMTDTEwLjExMi4y
MDMuMzMxGzAZBgkqhkiG9w0BCQEWDGtkQGRvbGJ5LmNvbTAeFw0xNjExMDIxODM0
NThaFw0xNzExMDIxODM0NThaMIGIMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0Ex
EjAQBgNVBAcTCVN1bm55dmFsZTETMBEGA1UEChMKRG9sYnkgTGFiczEOMAwGA1UE
CxMFQ29tbXMxFjAUBgNVBAMTDTEwLjExMi4yMDMuMzMxGzAZBgkqhkiG9w0BCQEW
DGtkQGRvbGJ5LmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALWZ
Ia59QQw/CV4y35o3797fZgSs8Jd1u2glbzYim3pzpf4MQTkNu1mWNRr4vlDTVdCp
89laaQHNk8SCjr14OMHyGm2sOywkLqqiiFA/jwSv/lb3SIhfGONqFTs7Y09kzPr7
QzfuoJgAX2S6KpXy0a4W30Dm5qZQPNJr1HRB5y0SmlaaaCq6odHIByHtWUSxjVzd
qyL0A4wxc5CCB5a6Y1810akOGpn9SYvHCrc3+686sA6mvDrDblMAdCHRa0uVxljB
----END CERTIFICATE-----\n",
    "checksums": {
        "Servermain.qml": "999ff81e977d15a652d56958ea56aa88a5b7aab8d18542524105dc74b370234f",
        "dvrsapp.qml": "bbdc83e2abca6fff9d50ce97fe92c59109482a8cd7367e0104e562eac18c46ec",
        "qml/ConfConnectingScreen.qml": "e0349ed91367c840381e1eeaaa9462c760540623cd5e4b6b0472d1e0aad8be75",
        "qml/ConferenceScreen.qml": "7ddf6a1fec907710c1242f8053bc91efeef386b8434076dbcec9432388288dea",
        "qml/DirectoryDataModel.qml": "9aea564cc1e24cf9c5bda2b48502db2bed3d0bfa8bd4ae87bd4efbfb0d442cb2",
        "qml/DirectoryTab.qml": "e955f2d186c37e7f389cd692acee1d26d4c008b7e214f1854ac897ea7c2c0e44",
        "qml/GlobalVariables.js": "55c35d6c6b85efb112c2dbccaf5c91af06c8bfcb0910250cedd116a767803381",
        "qml/InConferenceScreen.qml": "2c65f829452617504d04a3e454798441b5eeb8ed80ec70c14bf7a1da3ee342f7",
        "qml/InConferenceView.qml": "f7eef3d64e1db65a33f90b4e63f6e311b734c94c8cf511bff65c440092ad2f6b",
        "qml/JoinConferenceTab.qml": "7c0b8f4d5df2f839f75697137bb2b69b11dcd6e27f7ec0e452fa138dd258bd98",
        "qml/RosterView.qml": "5e259dd845ecb7cfec9200ba012b58386051ea2f84ac1a5ffbbba260c0dc5452",
        "qml/photos/user1.PNG": "e1746b4d41aef0884ea240fea674e32d363f1fc3ed5c95a8cb45ce0d34b4ebe0",
        "qml/photos/user2.PNG": "252857c548e778c469e0a193ac4f18dd816d734774dd569ba81e2a0b6c317147",
        "qml/photos/user3.PNG": "8fd84ccc057612414e8f845c2268969604fe6626c147ed2312b6d690780314a0",
        "qml/photos/user4.PNG": "730c248dfba0f755d8eb4e8905b0bce06b172db59823e63727b610e91dc3e65e",
        "qml/photos/user5.PNG": "ad6e8c4d9d9ceee0c1e4231b54949afb5446c1ad64a0da9baee9ccd934a3c413",
        "qml/photos/user6.PNG": "59ce3340cc2ee780e8c01e1907fbbd4476785876efcd380db1b81b3c36424cc2",
        "qml/photos/user7.PNG": "098d3b98a57f6983f193dd890e9691807b2af5fd8a060af5b878c3c7bc5015d9",
        "qml/photos/user8.PNG": "ed9c858371f6d6b7e59cbd2936026a79cb663b74b0bde8caf629506aafdb99f1",
        "qml/photos/user9.PNG": "a0c619436887dad7621d7ff4d2cd65634ec0e8d4a6478bd296cad2985517d772",
        "qml/photos/user10.PNG": "7653518125e7d6195c55f27b0c6f730d51ab4e8912092a343f7dc7a17ac5e6dc",
        "qml/photos/user11.PNG": "7bc6afbca81ea0c057f24fdb225db0ca954d29d281118535d132e144f6799cb4",
        "qml/photos/user12.PNG": "4f866207d89e5ed1de3014fd970b6511fa86d443c160bf97f20de492931d6805",
        "qml/photos/user13.PNG": "fe8cad5734e101b6cfbea7b5e76a7af0c2aea09eabcae452e54721e6a020cc1d",
        "qml/photos/user14.PNG": "fd1a5eb9e6b9ea6fe25cac6bf719a6e73cc75a7b74562209f01329dccb4234ae",
        "qml/qmldir": "52f9fa34af09a29e4caf0cb02ce55c0614d8bb5b290c225fbdd95bba9339174a",
        "qmldir": "5f35b4ec531c3e7b95fc9d2608d5a192273ef50c250f4d72fce62ab5acb29b14"
    },
    "contact": "dcpsdksupport@dolby.com",
    "developer": "Dolby",
    "name": "com.dolby.test-app",
    "version": "0.0.1"
}

The Dolby Conference Phone SDK provides several APIs that control update functionality:

  • An interval can be set that causes the Dolby Conference Phone to periodically check for version changes in the .app.cfg file. Refer to the checkForUpdatesInterval method.
  • The automatic version check can be disabled, and instead, the checkForUpdates method can be used to check for version changes in the .app.cfg file.

Note: Starting Dolby Conference Phone 3.1 release, the Dolby Conference Phone requires the app to be digitally signed. The app signing tool generates a signature file called .app.cfg.sig that must be deployed in the same directory as the .app.cfg file.

For more information on the APIs related to the .app.cfg file, please refer to the App module.

For more information on signing the app, please refer to Sign the App article.

Logs and diagnostics

The Dolby Conference Phone SDK includes a logging API that can be used by the app to generate log events. The app log level is determined by the UI component. To adjust the log level at runtime, set the configuration parameter Logging.Level.UI to the appropriate value. See Logging, The app log level, and the logging API for details.

Note: File uploads of diagnostics, core dumps, CDR, and log files can be disabled via the Provisioning.Server.PrivacyBlock configuration parameter. This parameter must be left in its default false setting for the uploads to take place.

Access logs

The Dolby Conference Phone supports following the methods for the customer's IT administrator or the service provider to access the logs:

  • The log is stored in the phone's non-volatile memory. The user can download the log directly using the Dolby Conference Phone web UI under Tools > Utilities.
  • The Dolby Conference Phone can perodically upload the log file to the provisioning server or the Dolby Conferencing Console. The log can then be accessed from the server. See uploadLogs and and related APIs.
  • The Dolby Conference Phone supports the syslog protocol. The customer can configure the phone's syslog server address parameters to forward the logs to a centralized log server (e.g. Splunk).

For more information on Dolby Conference Phone logging capabilities, please refer to the Dolby Conference Phone Administrator' Guide which can be found on the Dolby web site.

Access core dumps

If the Dolby Conference Phone program fails catastrophically, the phone generates a core dump and automatically reboots. During the reboot, the Dolby Conference Phone uploads the core dump file to the provisioning server for later diagnostic analysis. The core dump can be accessed on the provisioning server or the Dolby Conferencing Console.

App process failure and recovery

The conferencing app is executed within the host process' context. An error condition in the conferencing app can cause the host process to fail and crash. For example, an app programming error can cause an unexpected memory leak and trigger an Out of Memory (OOM) failure. When this type of event occurs, the host process is automatically shut down and restarted. This restart process usually takes less than 10 seconds. The restart event is logged by the Dolby Conference Phone for later diagnostic analysis.