On this page |
\uD83D\uDCCB What is a Push Gateway?
Push gateways act as SIP proxies responsible for directing INVITE requests to the agents. If an agent fails to answer, the push gateway sends a push notification to inform him/her about the incoming call. So we have implemented a XCALLY Push Gateway to generate push notifications when XCALLY App is in background and it is necessary to advise agents about incoming calls to handle.
☑️ To use XCALLY App you need an iOS device
☑️ For Alpha test, app can be used only for users enabled on our Apple account (it is not possible to use customer’s Apple account)
☑️ To install XCALLY Push Gateway you need our certificate, to use correctly VoIP push notification, by authenticating on our Apple's server only for our App
💡 How XCALLY Push Gateway works?
XCALLY Push Gateway works both as gateway and as a SIP Proxy which acts like a filter to accept just specific requests opening certain ports to agents registered to XCALLY machine. In this way security can be guaranteed.
Coming soon: in phase test you must use our proxy but when app will finish beta test, on XCALLY there will be a proxy configuration section used by Mobile App so if you desire to use your own proxy for Mobile App, it will be possible to configure it
When a new call arrives, it’s necessary to know if agent’s App is in foreground or background.
⚙️ Mobile App in foreground
This scenario shows you the steps of gateway operation if agent has XCALLY app in foreground.
To verify if the agent is correctly registered, Asterisk sends a ping every few seconds (configurable parameter). If app is in foreground it sends a pong to confirm connection status
When an agent, logged with the App mobile, receives a new incoming call:
XCALLY server receives an INVITE request addressed to a specific agent
XCALLY Push Gateway try to connect to the agent and if he/she is correctly registered, the INVITE request will be sent to the agent which manages the call
⚙️ Mobile App in background
To verify if the agent is correctly registered, Asterisk sends a ping every few seconds (configurable parameter) and when app is in background, pong is not sent. So, by knowing that Agent’s app is in background, this information is saved on database. If a new call arrives it is necessary to resume the app (to understand if agent is really available) by sending an iOS push notification. If agent answers to notification and Asterisk sends another ping, the connection is reestablished on foreground so app sends a pong. Let's see how below
This scenario shows you the steps of gateway operation if agent has XCALLY app in background.
When an agent, logged with the App mobile, receives a new incoming call:
XCALLY server receives an INVITE request addressed to a specific agent
XCALLY Push Gateway will firstly try to directly connect to the agent but if the call fails because app is in background, the gateway send a push request to the Apple Push server
Apple server will forward the Push notification (VoIP type) to the App mobile belonging to the relative agent to advise about the incoming call (app stays listening for possible push notifications)
With VoIP notifications it’s possible to answer the call even if the app is in background and e.g. agent has locked phone. In this way app is resumed and it returns to foreground (you can see below screenshots about it)So device receives the notification and agent accepts it: in this way app mobile passes to foreground status and app sends new REGISTER to Gateway.
Register is essential to understand who is registered to the gateway and it verify if Agent’s IP address is the same or changed (if it is different, e.g. because the agent has moved from office to smart working by changing network connection, it is correctly REGISTER again).XCALLY Push gateway rebsumit INVITE through newly created connection and the inbound call is managed by the agent
Example of Push Notification
PN with locked phone → agent can slide to answer and manage the call
PN with background app → agent can accept or decline the call
When agent starts the call he can click on XCALLY button to open app or he can directly use speaker or keypad, set mute option or end the call