How the push works and how to configure it in Stretto
Esteban Jimenez | November 30, 2021
Push Principle:
Softphones on mobile devices can be heavy on battery consumption, they tend to drain the battery really fast.
If you want to receive calls on a softphone, the app needs to be always looking for calls which drains battery.
This is why CounterPath developed the push notifications system, it allows you to kill the app without missing a single call.
The principle is simple, when the app goes to background or is killed by the OS, Bria Push servers connect to the SIP server as the softphone would do.
When a call is presented, the Push server sends a notification to the phone using the built-in notification system from iOS or Android, it wakes up the app which connects to the SIP server and receives the call.
Requirements:
For the push to work properly, your SIP server will need to be reachable by Bria push servers and your mobile devices will need to be reachable by the OS notification services (Apple APN or Google FMC).
Making your SIP server reachable:
There are 2 ways you can configure Bria to access your SIP server:
- For cloud or hosted SIP servers: If your SIP server is on the cloud, your SIP clients will already connect through a public IP/domain also available for Push servers. This IP/domain will be configured in the attribute “accountN.credentials.domain”. Push servers will use it to connect.
- For local SIP servers: If your SIP server is located inside a private network its IP/domain is private, push servers won’t be able to connect using the attribute “accountN.credentials.domain”. You will then need to configure a public IP/domain for the Push to use, it can be configured in the attribute “accountN.briaPush.OutboundProxy”.
Note that your SIP clients will still connect using the value in the attribute “accountN.credentials.domain” to communicate with the server.
If you use a custom port, you can append it to any of the two attributes using the standard format “domain:port”.
Please refer to the documentation for further details.
Notification services access:
Push servers will use the notification services of your OS to wake up the app, it’s important that your mobile devices have access to those services.
Please follow the guidelines given by Apple and Google.
IMPORTANT: The only Push notification service currently available for Android is Google services. Any other services like Huawei notification services will NOT work.
Configuring Push services:
To use Bria push servers on this account, you first need to activate the push service from the provisioning interface, you must set the attribute “bria.push.enabled” value to “true”.
Configuring the registration mode for Push:
The Push has 4 different registration methods, some allow the push to work when only one device can be active at a time on the same SIP account and ensures no call is missed even during transitions between the phone and the Push server.
Account1Sip.briaPush.RegistrationMode:
Standard mode and Continuous mode are used if your VoIP service provider supports multiple registrations.
Single Device Emulation mode and Single Device Takeover mode are used if your VoIP service provider does not support multiple registrations. Most VoIP service providers do support multiple registrations.
- Standard (0): Allows both the Bria Push servers and the Bria Enterprise clients to register to a customer’s SIP account in an alternating manner.
- Single Device Emulation (1): Ensures that both the Bria Enterprise client and the Bria Push server unregister before the other one registers.
- Continuous (2): Ensures that the Bria Push server is always registered on behalf of the Bria Enterprise client. In this mode, all inbound calls and all outbound calls from the Bria Enterprise client are handled by the Bria Push server.
The Continuous mode is used when a SIP server supports multiple registrations at the same time. - Single Device Takeover (3): The Bria Enterprise client and the Bria Push server take over registrations from each other without unregistering first.
Other attributes:
accountNSip.briaPush.NATEmulation: Set true if your VoIP service provider uses a session border controller (SBC), it will allow Bria push server to simulate a registering from behind a Network Address Translation (NAT) router or another network element.
accountNSip.briaPush.RegistrationRefresh: With an interval of time value set in second it Instruct the Bria Push server to re-register with the SIP Server. It corresponds to the field “Expires” in the SIP INVITE.
AccountN.bria.push.AutoSend180: “AutoSend180” option instructs the Bria push server to issue a SIP 180 RINGING message to the SIP server without waiting for the Bria mobile client to be woken up for an incoming call, use it if you have timeout issue on push notification.