HELP CENTER

Setup


Server Requirements

Any modern 64 bit CPU
512 RAM
4 GB of disk space
Linux kernel version 3.10 or higher

Docker CE

Our VoIP Push Notification Server is supplied as a Docker image which allows the widest deployment options. You can install it on any platform which can run Docker.

Access to our Docker repository is required. When you create a SessionCloud project and specify Private Push, we will send you an email invitation. In order for us to do this you will need a Docker Id. Docker Ids can be obtained at https://hub.docker.com/ when you sign up.

Install Docker Community Edition for your platform
https://docs.docker.com/engine/installation/

Following commands are for a Ubuntu Linux image
1. git clone https://github.com/sessiontalk/sessionpush_docker.git
2. cd sessionpush_docker
3. mkdir certs

4. An SSL certificate is required to allow encrypted communication between the softphones and your Push server. The SSL cert needs to be tied to a domain address not IP address. Name the SSL cert 'push_bundle.crt' and place it in the certs directory. The SSL certificate should include the private key and entire trust chain in ASCII PEM format. Below is an example of how it should look like.

-----BEGIN CERTIFICATE-----
MIIFdDCCBFygAwJBAgIRJ2buVutJ846r14Ci/ITeIjANBgkqhkiG9w0BAQwFADBv
PUsE2JOAWVrgQSQdso8AYFhH2+9uRv0V9dlfmrPb2LjkQLPNlzmuhbsdjrzch5vR
pu/xO28QOG8=
-----END CERTIFICATE-----
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAsExXZ5M8jfmId/blXNfKCcHogsU3imJJPF7RqFlFV7P1gsUk
3k8pDTpenT4WAQq9Zck4gC7ZddiVSIbdYMEJNuVwUVM58Vd5+s8dHC2EjjO9ElPX
ZLtOsDo6aqDYUBHziB2uMTZ2yqaIKa/W7v1O1/YPQlbYlIaAlkwO
-----END RSA PRIVATE KEY-----


Environment variables are specified in the .env file under the sessionpush_docker directory. Please note there is already a .env file, there is no need to create a new one, please edit the existing one.

5. Create an Apple Push Notifcation key in your Apple developer account
https://help.apple.com/developer-account/#/deva05921840
Rename the key file to 'pushvoip.p8' and place it in the certs directory.

apple-push-voip-key

6. Fill in Docker Environment Variables

PUSH_TOKEN_IOS_KEYID=your_push_token_key_id
PUSH_IOS_TEAMID=your_team_id
PUSH_TOPIC=com.softphone.yourapp.voip
SESSIONPUSH_APP_ID= leave_this_as_is
SESSIONPUSH_MASTER_KEY=your_master_key
SESSIONPUSH_MONGOLAB_URI= leave_this_as_is
PUSH_HOST=your_pushfqdn
FIREBASE_DATABASE_URL=https://softphone.firebaseio.com


Push Token Key. Use this to set the 'PUSH_TOKEN_IOS_KEYID' in the .env file.

apple-push-voip-key-location To obtain your Team ID .. from your Apple Developer Account main page select the 'Membership' tab

apple-team-id

The PUSH_TOPIC is your iOS Application Id with '.voip' postfix. Your iOS Application Id is what you specified in the SessionCloud portal under App Store -> Application Identifier and is also your Bundle Id in App Store Connect.

PUSH_HOST.. This is the Fully Qualified Domain name of your Private Push server

SESSIONPUSH_MASTER_KEY.. Set a long password here

7. To support Android Push you need to create a Firebase Project https://firebase.google.com/

firebase-console-view Navigate to the console. Tap 'Add Project'. Give your project a name and optionally rename the project Id. Tap 'Create Project' to finish.

firebase-add-project
Once you have a project you need to add an Android application to the project. Tap 'Add Firebase to Your Android App'.


add-android-app-firebase-project
Enter the Application Id of your app in the Android Package Name field. Then tap 'Register App'. Skip the next few dialogs that are shown by tapping 'Next' to complete setup of the project.

android-push-firebase-app-setup
Some of the following settings are not specifically required for the Push server but are required for us to build your Android app so it supports receiving Push notificaitons. Browse to Project settings -> General Tab. Here note the Web API key shown. This needs to be entered in your SessionCloud portal settings under Provisioning-> Incoming Calls -> Push -> Firebase Web API.

firebase-web-api-key

The Firebase Application Id value shown below needs to be set in the portal.
Provisioning-> Incoming Calls -> Push -> Firebase Application Id.

firebase-android-app-id
In your Firebase Project -> Project Settings -> Service Accounts tab

firebase-service-accounts
Note the Firebase Database Url, enter this in your SessionCloud portal. This will also be used to set the FIREBASE_DATABASE_URL environment variable. Tap 'Generate new Private key' and rename the downloaded file to 'firebase.json' and place it in the certs directory on your Push server.

firebase-json-key

All should be ready to start your Push server now...

On your platform, ensure Docker is running.

service docker start

Inside the directory that contains the docker-compose.yml file run the following command

docker-compose up —build

8. Set Firewall Rules on your Push server. Incoming TCP ports 443 and 6000 need to be open. Port 6000 is for encrypted SIP call signalling to the softphone. Port 443 is how the softphone sends user credentials and settings to the Push notification server.

If the server starts successfully you shoud see a flood of logging messages. Your Push server is now ready. Ensure the apps are correctly configured to receive Push notifications.

android-push-settings

With Private Push selected you have fields to enter Firebase Web API Key, Firebase Application Id and Firebase Database Url as described above. If your apps are not receiving incoming calls, please contact us at support@sessiontalk.co.uk and we will be happy to help you get up and running.