Application Assurance — HTTP In Browser Notification
This chapter provides information about Application Assurance HTTP in browser notification.
Topics in this chapter include:
Applicability
The information and configuration in this chapter are based on SR OS Release 13.0.R2.
There are no specific prerequisites for this example.
Overview
Using the SR OS nodes and application assurance (AA), subscribers connected to an operator network can be sent fully customizable on-screen notification messages displayed in a non-disruptive and cost-effective manner through their web browser.
This chapter describes the different options for the operator to customize the notification messages returned to the subscriber using either different HTTP-notification policies or using the flexible HTTP-URL-PARAM VSA mechanism.
This chapter also describes the additional configuration required with the introduction in SR OS 13.0.R1 of the Notification status monitoring capability allowing the system to notify the subscriber at the next candidate flow instead of waiting for the next notification interval in case the previous notification did not result in a success.
Configuration
The setup comprises of the following elements, see HTTP notification – setup:
7750 SR node with ISA-AA.
Apache web server (delivering notification Javascript and content).
Subscriber (desktop/tablet/smartphone).
Authentication, authorization and accounting (AAA) for subscriber authentication and policy modification.
Internet access.
This example describes how to configure HTTP notification to display different notification messages. It demonstrates a simple example in the context of a residential deployment where a message is displayed when the subscriber reaches 80% or 100% of their maximum allowed volume (usage cap).
In this context the operator has two options:
Use a dedicated http-notification policy per message type.
Use a common http-notification policy for any message type together with the newly introduced Http-Url-Param RADIUS VSA.
This example provides configuration examples for both options.
HTTP Notification Policy per Message Type
In this option a dedicated http-notification policy for each notification message is required.
HTTP Notification Policy
Two dedicated HTTP notification policies are used to return a different message to the subscribers when reaching 80% and 100% of their usage cap, the interval in between notifications is set to 15 minutes.
configure
application-assurance group 1
http-notification "notification-quota-100" create
description "100% Usage Cap Notification"
script-url "http://192.168.150.251/In-Browser-Notification/script/quota-100.js"
template 1
interval 15
no shutdown
exit
configure
application-assurance group 1
http-notification "notification-quota-80" create
description "80% Usage Cap Notification"
script-url "http://192.168.150.251/In-Browser-Notification/script/quota-80.js"
template 1
interval 15
no shutdown
exit
Notification Status Monitoring
The operator then needs to enable the http-match-all-req feature for any HTTP request sent to the messaging server in order to monitor HTTP notification success and failures. This is done by creating a new application and enabling http-match-all-req within the app-filter.
Success and failure notifications include a specific HTTP encoded URI automatically interpreted as a success or a failure by Application Assurance on a per subscriber basis. If a failure is detected, the system will automatically attempt to notify a new candidate flow instead of waiting for the next notification interval.
configure
application-assurance group 1:1 policy
application "IBN Messaging Server" create
app-group "Web"
exit
app-filter
entry 100 create
expression 1 http-host eq "^192.168.150.251$"
http-match-all-req
application "IBN Messaging Server"
no shutdown
exit
exit
App-Profiles and App-Service-Options
Event based HTTP notifications is enabled by a policy modification triggered via RADIUS or Gx by modifying the subscriber app-profile or using the Application Service Option (ASO) override.
In this implementation of the HTTP notification policy per message type, the following ASO configuration is used:
configure
application-assurance group 1:1 policy
app-service-option
characteristic "quota-message-notification" create
value "100"
value "80"
value "disabled"
default-value "disabled"
exit
exit
app-profile "1-1/Default" create
divert
exit
The ASO characteristic quota-message-notification values of 100 and 80 enable the App-Qos-Policy (AQP) notification-quota-100 and notification-quota-80 as defined below:
configure
application-assurance group 1:1 policy app-qos-policy
entry 1000 create
match
characteristic "quota-message-notification" eq "100"
application neq "Advertising Statistics"
exit
action
http-notification "notification-quota-100"
exit
no shutdown
exit
entry 1100 create
match
characteristic "quota-message-notification" eq "80"
application neq "Advertising Statistics"
exit
action
http-notification "notification-quota-80"
exit
no shutdown
exit
RADIUS Policy
The following RADIUS CoA message is used to override the ASO characteristic of a residential subscriber so that a notification message can be returned to the subscriber when they reach 80% of their usage cap:
NAS-Port-Id = "1/1/5:4088"
Framed-IP-Address = 192.168.211.30
Alc-AA-App-Service-Options = "quota-message-notification=80"
Alc-App-Prof-Str = "1-1/Default"
Show Commands
Before the subscriber usage cap limit is reached, and before the RADIUS CoA message is received, the subscriber ASO parameter flag quota-message-notification is set to its default value disabled and therefore no App QoS Policy is triggered.
A:PE# show application-assurance group 1:1 aa-sub esm "sub1" summary
===============================================================================
Application-Assurance Subscriber Summary (realtime)
===============================================================================
AA-Subscriber : sub1 (esm)
ISA assigned : 1/2
App-Profile : 1-1/Default
App-Profile divert : Yes
Capacity cost : 1
Aarp Instance Id : N/A
HTTP URL Parameters : (Not Specified)
Last HTTP Notified Time : N/A
-------------------------------------------------------------------------------
Traffic Octets Packets Flows
-------------------------------------------------------------------------------
... ...
-------------------------------------------------------------------------------
Application Service Options (ASO)
-------------------------------------------------------------------------------
Characteristic Value Derived from
-------------------------------------------------------------------------------
quota-message-notification disabled default
===============================================================================
After the RADIUS CoA message is sent, the subscriber ASO characteristic quota-message-notification value is set to 80, the subscriber-related App QoS Policy entry 1100 now matches for this subscriber:
A:PE# show application-assurance group 1:1 aa-sub esm "sub1" summary
===============================================================================
Application-Assurance Subscriber Summary (realtime)
===============================================================================
AA-Subscriber : sub1 (esm)
ISA assigned : 1/2
App-Profile : 1-1/Default
App-Profile divert : Yes
Capacity cost : 1
Aarp Instance Id : N/A
HTTP URL Parameters : (Not Specified)
Last HTTP Notified Time : N/A
-------------------------------------------------------------------------------
Traffic Octets Packets Flows
-------------------------------------------------------------------------------
... ...
-------------------------------------------------------------------------------
Application Service Options (ASO)
-------------------------------------------------------------------------------
Characteristic Value Derived from
-------------------------------------------------------------------------------
quota-message-notification 80 dyn-override
===============================================================================
The same command can be used to identify when the last successful subscriber notification occurred, see the Last HTTP Notified Time field:
A:PE# show application-assurance group 1:1 aa-sub esm "sub1" summary
===============================================================================
Application-Assurance Subscriber Summary (realtime)
===============================================================================
AA-Subscriber : sub1 (esm)
ISA assigned : 1/2
App-Profile : 1-1/Default
App-Profile divert : Yes
Capacity cost : 1
Aarp Instance Id : N/A
HTTP URL Parameters : (Not Specified)
Last HTTP Notified Time : 2014/06/24 15:35:49
-------------------------------------------------------------------------------
The operator can also identify how many notifications have been sent per http-notification policy per partition:
A:PE# show application-assurance group 1 http-notification "notification-quota-80"
===============================================================================
Application Assurance Group 1 HTTP Notification "notification-quota-80"
===============================================================================
Description : 80% Usage Cap Notification
Template : 1 - Javascript-url with subId and optional Http-Url-Param
Script URL : http://192.168.150.251/In-Browser-Notification/script/quota-80.
js
Admin Status : Up
AQP Ref : Yes
Interval : 15 minutes
-------------------------------------------------------------------------------
Group 1:1 Statistics
-------------------------------------------------------------------------------
Notified : 2 Succeeded : 2
Criteria Not Matched : 5 Failed : 0
===============================================================================
The counter Criteria Not Matched is the number of HTTP flows which did not meet the AA ISA flow selection criteria for In Browser Notification. HTTP flow selection is constrained so that only HTTP web pages flows originating from a web browser are targeted, HTTP requests for content such as video or images are not candidate for notification.
HTTP Notification Customization using RADIUS VSA
Instead of using a dedicated HTTP notification policy for every single message type, the operator can return a RADIUS Http-Url-Param VSA at subscriber creation time or via CoA to customize the notification URL using a single policy. This VSA string is automatically appended to the end of the HTTP notification script-url by the SR OS which can then be used by the web server to decide which notification message to return to the subscriber.
SR OS Release supports 1 active HTTP Notification policy per subscriber, 8 different HTTP notification policies per AA ISA group and 1500 different values for the Http-Url-Param VSA. Therefore, using the Http-Url-Param VSA for the customization of the notification is the recommended model to scale the number of notification messages.
For example:
RADIUS VSA (Alc-AA-Sub-Http-Url-Param): &message=quota80"
7750 SR HTTP Notification configured script-url: http://1.1.1.1/notification.js
Subscriber HTTP request to the messaging server:
http://1.1.1.1/notification.js?SubId=sub1&var=&message=quota80
HTTP Notification Policy
A single HTTP notification policy is used to return different notification messages. The interval between notifications is set to 15 minutes.
configure
application-assurance group 1
http-notification "in-browser-notification" create
description "Default HTTP Notification Policy"
script-url "http://192.168.150.251/In-Browser-Notification/script/
notification-select.php"
template 1
interval 15
no shutdown
exit
This example does not describe the content of the notification-select.php file used to parse the URL parameters.
Notification Status Monitoring
The operator then needs to enable the http-match-all-req feature for any HTTP request sent to the messaging server in order to monitor HTTP notification success and failures. This is done by creating a new application and enabling http-match-all-req within the app-filter.
Success and failure notifications include a specific HTTP encoded URI automatically interpreted as a success or a failure by Application Assurance on a per subscriber basis. If a failure is detected, the system will automatically attempt to notify a new candidate flow, instead of waiting for the next notification interval.
configure
application-assurance group 1:1 policy
application "IBN Messaging Server" create
app-group "Web"
exit
app-filter
entry 100 create
expression 1 http-host eq "^192.168.150.251$"
http-match-all-req
application "IBN Messaging Server"
no shutdown
exit
exit
App-Profile and App-Service-Options
Similar to the previous example, HTTP notifications are enabled per subscriber using RADIUS or Gx by modifying the subscriber app-profile or using ASO override.
The following ASO configuration is used:
configure
application-assurance group 1:1 policy
app-service-option
characteristic "in-browser-notification"
value "enabled"
value "disabled"
default-value "disabled"
exit
The ASO characteristic in-browser-notification value enabled is used to enable the app-qos-policy matching the http-notification policy in-browser-notification as shown below:
configure
application-assurance group 1:1 policy app-qos-policy
entry 1300 create
match
characteristic "in-browser-notification" eq "enabled"
application neq "Advertising Statistics"
exit
action
http-notification "in-browser-notification"
exit
no shutdown
RADIUS Policy
The following RADIUS CoA message is used to modify the ASO characteristic of a residential subscriber and assign a specific Http-Url-Param VSA. The in-browser-notification ASO characteristic with value enabled is dynamically assigned to the subscriber along with the Http-Url-Param &message=quota80:
NAS-Port-Id = "1/1/5:4088"
Framed-IP-Address = 192.168.211.30
Alc-AA-App-Service-Options = "in-browser-notification=enabled"
Alc-AA-Sub-Http-Url-Param = "&message=quota80"
Alc-App-Prof-Str = "1-1/Default"
The subscriber HTTP request to the messaging server has the following format and includes the Http-Url-Param value as an argument of the URL:
http://192.168.150.251/In-Browser-Notification/script/notification-select.php?SubId=sub1&var=&message=quota80
The web server can now use the parameter value to make a decision to return a suitable notification message related to the subscriber usage cap.
Show Commands
Both the in-browser-notification ASO characteristic with value enabled and the HTTP-Url-Param VSA can be shown as follows:
A:PE# show application-assurance group 1:1 aa-sub esm "sub1" summary
===============================================================================
Application-Assurance Subscriber Summary (realtime)
===============================================================================
AA-Subscriber : sub1 (esm)
ISA assigned : 1/2
App-Profile : 1-1/Default
App-Profile divert : Yes
Capacity cost : 1
Aarp Instance Id : N/A
HTTP URL Parameters : &message=quota80
Last HTTP Notified Time : N/A
-------------------------------------------------------------------------------
Traffic Octets Packets Flows
-------------------------------------------------------------------------------
... ...
-------------------------------------------------------------------------------
Application Service Options (ASO)
-------------------------------------------------------------------------------
Characteristic Value Derived from
-------------------------------------------------------------------------------
in-browser-notification enabled dyn-override
quota-message-notification disabled default
===============================================================================
The operator can also display the HTTP URL parameters VSA currently in use, per AA ISA group:
A:PE## tools dump application-assurance group 1 http-url-param-list
-------------------------------------------------------------------------------
Application-Assurance Subscriber HTTP URL parameters for Group 1:
-------------------------------------------------------------------------------
==============================================
Http Url Parameter Sub Usage
----------------------------------------------
"&message=quota80" 1
==============================================
Total entries displayed 1
Conclusion
This chapter, intended for Application Assurance (AA) network architects and engineers, provides two implementation options for configuring and deploying HTTP In Browser Notification. It also explains how to take advantage of the Http-Url-Param RADIUS VSA to flexibly define various messaging campaigns using a common AA notification policy.