Creating your own Compass supported softphone app for mobile phones

Compass supports softphones based on Cloud Softphone. You can create your own app, including your own logo and settings. When everything is set up, users can configure their softphone by downloading the Cloud Softphone app and simply scanning a QR code on the Compass phone status page.

Introduction

Please have a look at https://www.cloudsoftphone.com first. It tells everything you need to know about the general features of the Cloud Softphone. This document describes the layout and configuration of the Cloud Softphone. Partners who are using Compass via any reseller or distributor can always create their own Cloud Softphone account. After creating the account, you will be logged in and will be shown a dashboard (https://providers.cloudsoftphone.com). From this dashboard you can do several things:

  1. Create or Duplicate / Read(View) / Update all Cloud Softphone apps. (To Delete an app, click on the app title in the dashboard and make a comment in the support box on the end of the page)
  2. Watch video tutorial, download the latest Android/iOS apps en view the latest news.
  3. Open an app for more details: Click on the app title. URL will look like this https://providers.cloudsoftphone.com/record/detail/XXXX (Where XXXX is a variable for that app)

Other Visible information

Name: Any random name that’s visible in the dashboard of the Cloud softphone configuration dashboard (Can be changed anytime) Owner: Company name of the Cloud softphone configuration dashboard Cloud ID: Unique identifier that’s embedded in the provisioning template (cannot be changed after going live) Description: Notes field (Can be changed anytime)

Opened app

When opening an app, you will be able to

  1. Edit application name
  2. View settings for current Live version, Edit settings for the editable copy or Edit settings for an app that’s not live yet.
  3. View provisioning for QR for android/ios apps, Pricing, Actions: (Make an Editable copy if you want to make changes to the live version (Don’t use the duplicate feature on the main dashboard & Pause / Cancel review), Billing and payments in progress, Latest 3 invoices, Latest 3 usage periods (users).
  4. Comments

Known issues

  • In Cloud Softphone 1.9.19 and up, DTMF in combination with Opus codec might not work. Using the dialpad to navigate IVRs won’t work. Workaround: select other codecs, such as G.722, GSM, G.711 mu-law and G.711 A-law, preferably in that order.

How to launch your own Softphone App?

  1. Create an account on https://www.cloudsoftphone.com.
  2. Decide wether you want to use our template or build from scratch. Depending on your choice, use the steps below to setup your app.
  3. Pay and launch the app
  4. Explain your users how to login and distribute phone credentials or QR codes

Good to know

  • Multiple SIP accounts or identities are not supported. The first identity is being used when logging in.
  • Phone credentials are stored on the Acrobits server to enable push notifications and save battery life.
  • Multiple SIP domains should be possible, but are not tested yet. We use one app per SIP domain.
  • We use OPUS as audio codec from the app to the Compass server. Compass transforms this codec to another codec if parties don’t support this codec.
  • Acrobits documentation can be found here: https://doc.acrobits.net and https://doc.acrobits.net/cloudsoftphone/faq.html
  • Android and iPhone behave differently regarding network settings. Please see the section Making a New App > Phone Settings
  • (Android) Issue found by Cloudsoftphone: When setting network constraint to Mobile data only, android is still using SDP over wifi. As of writing (28-10-2018) this hasn’t been resolved yet. Please contact Cloudsoftphone to get the recent status about this issue.
  • (Android) Issue found by IPerity: (Android) When setting network constraint to Mobile data only and when wifi is connected the account won’t register. After wifi is enabled it’s registered again.
  • (Android) There seems to be another bug on Android where the pressed keys are not cleared. Expectation is that this will be fixed soon.

Using our app template as a starting point

Below you will find the steps to configure the Cloud Softphone following the configuration we made. But you can also get an copy of our app (which has the same settings). This saves you some time editing, and you have the confidence you get the exact same settings of the app as tested by us. To do this:

  1. Create an account on https://www.cloudsoftphone.com.
  2. Send an email to support@iperity.com stating your reseller/distributor, SIP Domain and your Cloud Softphone account email address.
  3. We will create a copy with the correct SIP domain and ask Cloud Softphone support to transfer the copy to your account.
  4. You edit the design (see section further down below)
  5. You pay and push it to live.
  6. Read below (Section: Logging in into the Softphone app) how to login.

Creating a new app from scratch

The first screen asks for a feature set. Choose the Full-Featured app. All other (higher) feature sets should also work, but we didn’t test it yet. After selecting a feature set, we need to select the features we want.

Selecting the right features

Below you will find the features we selected in our (working) app. It’s important to note, that some other features can be enabled and used in conjunctions with Compass, but we didn’t test it ourselves. The configurator shows the exact total one-time price, monthly price and price per user for the chosen features. These cost must be paid by the account holder and cannot be paid as an in app subscription.

General

  • βœ“ The App (Cannot be unchecked)

βœ“ Extra features

  • βœ“ Business Features
  • 𐄂 Contacts from CardDAV server (Can be used separate from Compass)
  • 𐄂 Contacts from Web Service (Can be used separate from Compass)
  • 𐄂 Contacts from Office 365 account (Can be used separate from Compass)
  • 𐄂 Custom Tab with Web View (Can be used separate from Compass)
  • βœ“ Voicemail
  • 𐄂 Video Calls
  • βœ“ Secure Calls via SDES (optional, requires TLS transport protocol)
  • 𐄂 Web Callback (Not supported on Compass)
  • 𐄂 Callthrough (Not supported on Compass)
  • 𐄂 Balance checker (Not supported on Compass)
  • 𐄂 Rate checker (Not supported on Compass)
  • 𐄂 Push Token Reporter (Not supported on Compass)
  • 𐄂 Unlimited subdomains (Can be used, but not tested)
  • 𐄂 Custom Account Forms (Can be used, but not tested)
  • 𐄂 Location Reporting (Can be used separate from Compass)

βœ“ Incoming Calls via PUSH service

  • βœ“ Using Acrobits PUSH servers
  • 𐄂 Using your own PUSH servers (Can be used separate from Compass)

𐄂 SMS/IM (Not supported on Compass)

𐄂 Rich Messaging (Not supported on Compass)

ZRTP (Not supported on Compass)

  • βœ“ Off
  • 𐄂 ZRTP - High Security
  • 𐄂 ZRTP - Ultra High Security

  • App professional designs
  • βœ“ App design done by provider himself through Cloud Softphone Portal Theme Editor
  • 𐄂 Acrobits professional designs
  • 𐄂 Acrobits professional designs with logo
  • 𐄂 Digital Marketing
  • βœ“ No digital marketing
  • External Provisioning (Can be used, but not tested)
  • 𐄂 External Provisioning API
  • Provisioning options & settings
  • Basic
  • Name of the service: Same as application name
  • Domain: Registrar/proxy URL (can be found in every phone in compass).
  • Example UDP transport protocol: sip.demo.iperity.com
  • Example TCP transport protocol: sips.demo.iperity.com
  • Transport protocol: TLS (with sip: addresses) or UDP (unencrypted)
  • Note: TLS requires Secure Calls via SDES is enabled as a feature.
  • For TLS only: SRTP for outgoing calls: Required
  • For TLS only: SRTP for incoming calls: Required
  • Use CallKit on iOS: βœ“
  • Enable Busy Lamp Field: 𐄂
  • CallKit display name: Choose your own name. Preferably the name of your app.
  • Android native dialer integration: Enabled
  • SIP registration required for outgoing calls to work: βœ“
  • Incoming calls for iPhone and Android: Push
  • Allow end users to change incoming call settings: 𐄂
  • Proxy: Keep empty
  • Voicemail Number: 1233
  • Expires: 3600
  • High Security settings: Leave as default
  • Legal
  • The URL of your EULA document: Please put here the url pointing to your EULA. Here more information can be found about the GDPR implementation: https://doc.acrobits.net/cloudsoftphone/gdpr.html?

  • New account screen: Can be left empty

  • Edit account screen: Can be left empty
  • Contact Sources
  • Contact Sources: Phone Address Book
  • Contact Matching Order: Contacts, Smart Contacts, Quick Dial, SIP Display Name
  • Dial Actions
  • Dial Action on single fingertap: Auto Call
  • Dial Action on long press of finger: Show Options
  • Android native dialer integration - Dial Action: Voice Call
  • CallKit Dial Action: Auto Call
  • Dial Action on 3D touch: Show Options
  • Custom Dial Actions: Leave empty
  • Location
  • Location policy for calls: None
  • Location policy for SIP registration: None
  • Rate the App
  • You can set your own preferences
  • Tabs
  • Tab Order: History, Keypad, Contacts
  • Initial tabs: Keypad
  • Audio codec preferences when using WiFi
  • Codec order when using WiFi
  • βœ“ OPUS Wideband
  • βœ“ OPUS Narrowband
  • βœ“ G.722
  • βœ“ GSM-FR
  • βœ“ G.711 u-Law
  • βœ“ G.711 a-Law
  • 𐄂 G.729 A
  • 𐄂 iLBC
  • Preferred packetization on WiFi: 20ms
  • Audio codec preferences when using Mobile data
  • Codec order when using mobile data
  • βœ“ OPUS Wideband
  • βœ“ OPUS Narrowband
  • βœ“ G.722
  • βœ“ GSM-FR
  • βœ“ G.711 u-Law
  • βœ“ G.711 a-Law
  • 𐄂 G.729 A
  • 𐄂 iLBC
  • Preferred packetization when using mobile data: 20ms
  • NAT traversal
  • Method: Auto
  • STUN/TURN server: 𐄂
  • Use public IP in Contact: 𐄂
  • Send keep-alives: 𐄂
  • Keepalive period: 30

Phone settings

The app has hundreds of settings, the vast majority never touched by end users. Pretty much every preference is configurable, but only the common ones are in the portal. (So most of these settings are not visible and not configurable in the Cloud Softphone portal). Preferences are also not provisionable (by external provisioning feature). If you want one changed from the default, you would need to contact Cloud Softphone. Advanced account settings can be provisioned via external provisioning (a feature that must be enabled). Or can be enabled manually by Cloud Softphone (if you don’t have the feature enabled). See the provisionable settings here: https://doc.acrobits.net/cloudsoftphone/account.html. Below settings are advisable to have set and we did this for our app template.

  • Non standard settings on iOS
  • Network
  • Network constraint: Mobile Data
  • Network priorities for RTP: Prefer Mobile Data
  • Network Change Strategy: If Needed.
  • Other
  • Start video automatically: off
  • Visibility: HIDE
  • Non standard settings on Android
  • Network
  • Network constraint: Any Network
  • Network priorities for RTP: Prefer Mobile Data
  • Network Change Strategy: If Needed.
  • Other
  • Start video automatically: off
  • Visibility: HIDE

NOTE ON NETWORK SETTINGS: The reason we set the app mobile data only as much as possible, is that we are not dependent anymore on the WiFi network configuration which might block VoIP or is unstable. The reason the settings between iOS and Android are different is because when an android device is set to use mobile data only and is connected with wifi the registration will not come through. (Issue/Bug)

Only show the below settings

Many, settings can be hidden, as the don’t provide any value for a non tech user. We decided to only show below settings.

  • Account
  • Username
  • Password
  • General settings
  • Preferences
  • Ringtones > Standard
  • Sound
  • Echo suppression βœ“
  • Speaker phone echo suppression βœ“
  • Handset echo suppression βœ“
  • Noise suppression βœ“
  • Mic volume boost (0%)
  • Play volume boost (0%)
  • Keypad volume (70%)
  • Auto speakerphone mode > Video Calls
  • Bluetooth support βœ“
  • Log SIP Traffic
  • Information
  • About
  • Usage
  • ACTIVATION
  • Reset Application

iPhone design

Basic Customization

  • Set all variables to preferred design (advised)

Detailed configuration

  • You can leave all settings by default

N/A > Messaging page

  • Set all variables to preferred design

About page

  • About image: upload your own image. Example: see below
  • Ringtones
  • Upload ringtones (optional)

Android design

Basic Customization

  • Number Field Text Color
  • Badge Background Color
  • Selected Tab Color
  • Leave rest of the settings unchanged

N/A > Messaging page

  • Set all variables to preferred design

About page

  • About image: upload your own image.

Docs