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.

    Figure 1. HTTP notification – setup

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).

Figure 2. Notification Message Example – Quota 80%

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
Note:

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.