Push Notification Reporter¶
Overview¶
This web service may be used to collect reports about received push notifications. When configured, the web service is called each time a push notification is received and it reports the push notification to the server.
It can be used to create some automated test which sends push notification to a device and wait for the device to report that the push has been successfully received or to collect statistics about push delivery success rate.
Push notifications are sent via Acrobits Push Notification Mediator (pnmediator) server. For instructions on how to send pushes, see Push Notifications over HTTP.
Parameters¶
Parameter templates for Push Notification Reporter can use any variables from Global parameters and Account parameters scopes. Other parameters are taken from the received push notification, which is a key-value dictionary. The keys may be used as placeholders which will be replaced by the appropriate values.
Unfortunately, the structure of the push notifications do not follow any well-defined, strict format for historical reasons. The following keys may be useful for detecting the type of push notification.
pushId
¶
if not empty, the received push was sent as a response to PUSH-TEST.
s
¶
if not empty, the received push is a notification about incoming call.
c
contains the callee.
sm
¶
if not empty, the received push is a notifition about incoming text message
s_missed
¶
indicates missed call notification
type
¶
if not empty, it specifies other push types
Configuration¶
The following Account XML keys are relevant for Push Notification Reporter configuration:
pushNotificationReporterUrl
¶
Contains the URL, including URL scheme, of the web service, possibly also with query string.
Example (with query-string):
https://example.com/pushReceived/?username=%account[username]%&pushTestId=%pushId%
pushNotificationReporterPostData
¶
If filled in, the app will use POST request to report the token
Example ( for application/x-www-form-urlencoded):
username=%account[username]%&pushTestId=%pushId%Example ( for application/json ):
{ "username" : "%account[username]%", "pushTestId" : "%pushId%" }
pushNotificationReporterContentType
¶
Specifies the value of Content-Type header to be sent in the request. If not specified, the app will default to
application/x-www-form-urlencoded
Response¶
The response will be considered successful if the HTTP response code is 2xx. Any responses which have other response code are silently ignored and the app will not retry the request.
There are no response values expected, so the body of the response is not parsed or processed in any way.
Examples¶
GET method¶
request:
GET /pushReceived/?username=johndow&pushTestId=aELTLURy HTTP/1.1 Host: example.com Connection: close Cache-Control: max-age=0 User-Agent: CloudSoftphone/1.5.6
response:
HTTP/1.1 200 OK Date: Sun, 15 Mar 2015 00:46:17 GMT Server: Apache/2.4.7 (Ubuntu) Vary: Accept-Encoding Content-Encoding: gzip Content-Length: 0 Keep-Alive: timeout=5, max=100 Connection: Keep-Alive
POST method, JSON¶
request:
POST /pushReceived/johndow/ HTTP/1.1 Host: example.com Connection: close Cache-Control: max-age=0 User-Agent: CloudSoftphone/1.5.6 Content-Type: application/json Content-Length: 183 { "pushTestId" : "aELTLURy" }
response:
HTTP/1.1 200 OK Date: Sun, 15 Mar 2015 00:46:17 GMT Server: Apache/2.4.7 (Ubuntu) Vary: Accept-Encoding Content-Encoding: gzip Content-Length: 0 Keep-Alive: timeout=5, max=100 Connection: Keep-Alive