|
|
You can use the Cisco Subscriber Registration Center (CSRC) application framework to customize the User Registrar Subscriber interface presented to the end user during subscriber activation and maintenance. The CSRC application framework provides a common platform for developing Web-based applications.
You can change the following aspects of the User Registrar Subscriber application:
The User Registrar Subscriber application allows you to tailor your own user interface, such as adding specific corporate branding or tailoring the subscriber experience. The following sections describe the specific areas that you can configure to meet your company's needs.
Every page in the application has a corresponding template file containing the HTML presentation and textual content. You can use most HTML design tools or text editors to modify these template files.
![]() | Tips Some HTML editors change the order of tags or add new ones. Be sure to use an editor that does not add Body and Head tags to template files. |
While the template files primarily contain layout and text, these files also determine which input fields the user must complete. In the case of a registration screen, the template determines what information a new subscriber must enter.
The template files reference external images for each of the buttons in the UI. These files are referenced with the HTML tag <IMG SRC=xxx>. To change the image, replace the xxx with the new file name.
For example, change <IMG SRC='/csrc/images/ciscologo.gif'> to <IMG SRC='/csrc/images/MSO.gif'>.
If you have an existing image, you can simply replace it. Otherwise, use a standard image editor to create the image and then specify the new image by file name.
The template files contain the width and height of every image. If you replace or update an image with one of a different size, you need to update every <IMG> tag that references the modified image. The images are stored in the <csrc-root>/csrc/images directory.
![]() | Tips Make sure that you enter the correct width and height for each image. Having specified dimensions is critical to increasing the perceived performance of any Web page displayed to end users. This is particularly noticeable when using the Netscape browsers. If the template does not contain the dimensions, Netscape browsers wait to display a page until they have loaded all the images. |
Each template file contains text that describes user actions. You can edit the source templates to modify the text in these template files. Remember, however, if you add or delete significant amounts of text you may need to adjust the layout of the page.
The default installation of the User Registrar Subscriber application specifies the English language. The files that support the English language are located in the <csrc-root>/csrc/html/csrc-ur-sub/en directory.
If you plan to use another language or multiple languages, see "Using Locales" section.
In addition to the text in the template files, there is also a file containing all of the error messages the system displays. This file contains a mapping from the message code to the message text. The English version of this file is <csrc-root>/csrc/html/csrc-ur-sub/en/messages.cwaf.
For example, the following two lines are messages for the known_login page:
page:known_login:missing:Username=Username, please re-enter.page:known_login:missing:Password=Password, please re-enter.
System messages apply across all pages whereas page messages are specific to each page.
The template files rely upon tables to layout the components of each page. You may want to change the order of components or to completely redo the page. In either case, you should use standard HTML formatting guidelines to modify the template.
<GX> or %GX% syntax. For example, during template rendering, User Registrar replaces <GX TYPE=cell ID=Subscriber.Username></GX> with the current subscriber's username. <GX TYPE=tile...> and <GX TYPE=cell...> tags. For more information about templates, see the NAS developer documentation
For each data object in the system, there are attributes that are available after installation called the core attributes, and there are attributes configurers create that extend the basic application schema called extension attributes. For more information about extension attributes, see "Schema Extensions."
The default User Registrar template files use a subset of the core attributes, however you can change these files to show any attribute.
For example, to display a hint for the user's password on the login page, create an extension attribute named Hint and add it to the Subscriber object with the line <GX TYPE=cell ID=Subscriber.Hint></GX> in the login template page. Then every time the user accesses the login page, User Registrar displays the hint.
Similarly, you do not need to make code changes to access extension attributes of referenced objects. If you extended the Account object with a LastPayment attribute, you could access it indirectly through a Subscriber object by <GX TYPE=cell ID=Subscriber.AccountNumber.LastPayment></GX>.
The User Registrar page logic application schema performs dynamic input processing so that you can easily add attribute inputs. Each page has the required object attributes for self-provisioning already requested from the user.
For example, to have users enter a hint for their password, add an input box to the choose_username page using a special syntax<INPUT> tag. In the case of the hint, it looks like: <INPUT type=text name=NewSubscriber.Hint>.
The new_login page expects a NewSubscriber object of type Subscriber to be created and passed in as an input. The addition of new attribute extensions is discussed in"Extending the Application Schema" section and "Creating Schema Extensions" section.
To support additional extension input fields, the application schema has the concept of required and optional flags for attributes. These flags allow User Registrar to dynamically determine what error messages should be returned when setting values for arbitrary objects.
The CSRC schema also employs required and optional attributes. In this case, required means that the attribute must have a value in the database. Whereas, in the application specification file, required means the subscriber must enter the value.
For example, to add a new field to a Subscriber object, specify in the page whether this is a required or optional attribute. The application specification file defines the required attributes for a given page in contrast to those required by the CSRC schema. For example, the schema may require 10 subscriber attributes, but the application specification file might require only five attributes. For User Registrar to successfully write the page attribute values to the database, the balance of the attributes need to be present.
One of the easiest changes you can make to the User Registrar Subscriber application is to put the application inside frames. User Registrar is based on the assumption that the content in the surrounding frame panes do not need to change in association with the current application context.
Example 4-1 shows an index page that loads CSRC in the bottom portion of the window and has a menu frame along the top of the page.
[index.html]
<FRAMESET ROWS="50,*">
<FRAME
SRC="/menu.html"
NAME="menu">
<FRAME
SRC="/cgi-bin/gx.cgi/GUIDGX-{75BBB960-C80E-11D2-8207-0060B0FC247E}"
NAME="csrc">
</FRAMESET>
One result of placing the User Registrar Subscriber application inside frames is that the Web browser will not display the cryptic URLs that Netscape Application Server uses. Instead, the browser displays only the first URL that contains the <FRAMESET> tag. This hides the lower-level implementation from the subscriber.
Each page has a common header and footer that the application defines.The application's header and footer are defined in the CSRCURSubscriber.tmpl file. Modifying this file allows you to change the application's header and footer. You do not need to change the source code to make these changes.
Example 4-2 shows example headers and footers that you might use in the User Registrar Subscriber application:
<!-- HEADER START -->
<!-- Setup the header -->
<IMG SRC='/csrc/images/CiscoLogo.gif'> 
<B>User Registrar 1.0 </B>(Subscriber)
<!-- If appropriate, show the help button -->
<GX type=tile id=UseHelpButton max=1>
<FORM Method=POST
Action="/cgi-bin/gx.cgi/GUIDGX-<GX Type=cell Id=_GUID>(guid)</GX>">
<INPUT Type=hidden Name='_goto' Value='urhelp'>
<INPUT type=image src=/csrc/images/nbHelp.gif
border=0 name=helpButton></FORM>
</GX>
<!-- If appropriate, show the exit help button -->
<GX type=tile id="ExitHelpButton" max=1>
<FORM Method=POST
Action="/cgi-bin/gx.cgi/GUIDGX-<GX Type=cell Id=_GUID>(guid)</GX>">
<INPUT Type=hidden Name='_goto' Value='urhelp'>
<INPUT type=image src=/csrc/images/nbExitHelp.gif
border=0 name='Exit Help' value='Exit Help'></FORM>
</GX>
<!-- If appropriate, show the logout button -->
<GX type=tile id="LogoutButton" max=1>
<FORM Method=POST
Action="/cgi-bin/gx.cgi/GUIDGX-<GX Type=cell Id=_GUID>(guid)</GX>">
<INPUT Type=hidden Name='_logout'
Value="<GX Type=cell Id=_PageName>(pagename)</GX>">
<INPUT Type=image Src=/csrc/images/nbLogout.gif
Border=0 Name=logout_button></FORM>
</GX>
<!-- End the header section -->
<HR>
<!-- HEADER END -->
<!-- BODY START -->
<!-- Include the current page template file -->
<GX Type=Include Id=PageTemplate></GX>
<!-- BODY END -->
<!-- FOOTER START -->
<!-- Common application footer -->
<HR>
<FONT SIZE='-2'>Copyright (C) 1999 by Cisco Systems.</FONT>
<!-- FOOTER END -->
Example 4-2 contains three primary sections:
Since the page body is simply the location of the current page the user is viewing, you should not modify this section. In the header and footer sections, you can change the header and footer presentation. In particular, you can use any regular HTML tags, including graphics and fonts, to alter the presentation.
<HEAD> or <BODY> tag. The application framework provides these tags as part of its execution.
You can also change the location and order of the system buttons. For example, if a certain UI design calls for the logout button to be located in the footer instead of in the header, simply move the entire section that defines the logout button behavior.
You can change the User Registrar Subscriber configuration options through the User Administrator UI. These customizations are grouped by locale. For example you can choose to have a specific set of customizations for a college and another for a residential neighborhood. You can use locales to automatically determine the look and workflow of the pages, or to allow subscribers a language choice, such as whether they want pages in English or Spanish.
You can customize User Registrar Subscriber pages in three ways:
The following configuration options control the User Registrar Subscriber pages. You specify them through the User Registrar Administrator UI.
If you choose SingleService, User Registrar disables the service selection page and automatically configurers the subscriber for the specified service. If User Registrar cannot locate the service, it displays the normal service selection page. By default, SingleService is disabled. To enable or disable this option, see the "Editing Locale" section.
For more information about these pages, see the "Choosing a Service" section.
You can choose to have User Registrar display the new_login_pinonly page, which allows subscribers to login with just their PIN. User Registrar logs in the subscriber if it can find a matching PIN in an LDAP Account object.
Choose pinonly mode only if your Account objects are indexed by PIN. The default login page is normal, which requires a subscriber to enter an account number and PIN. To enable or disable this option, see the "Editing Locale" section.
For more information about these pages, see the "Logging to User Registrar" section.
To enable or disable this option, see the "Editing Locale" section.
You can determine how User Registrar handles activating devices. If you choose reboot, User Registrar displays the activate_reboot and update_reboot pages. If you choose countdown, User Registrar displays the activate_wait and update_wait pages. The default is countdown.
To enable or disable this option, see the "Editing Locale" section.
For more information about these pages, see the "Activating a Computer" section and the "Reconfiguring a Computer" section.
You can determine how User Registrar treats unrecognized computers. If you set TreatAllUnknownAsNew to true, User Registrar automatically displays the add_computer page when a subscriber attempts to log in with an unregistered computer. If you set TreatAllUnknownAsNew to false, User Registrar displays the unknown_computer page when a subscriber attempts to log in with an unregistered computer.
In both cases, if the subscriber exceeds the maximum number of computers, User Registrar displays the max_cpe_reached page. By default TreatAllUnknownAsNew is disabled.
To enable or disable this option, see the "Editing Locale" section.
For more information about this page, see the "Changing a Computer" section and the "Managing Unregistered Equipment" section.
When using a username lookup class, SkipUsernameSelection causes User Registrar to skip the choose_username page and instead use the output of the lookup class. User Registrar, however, still uses the looked-up value to populate the Subscriber object. By default, SkipUsernameSelection is disabled. If you set this value to true and do not specify a username-lookup-class, User Registrar displays the choose_username page.
To enable or disable this option, see the "Editing Locale" section.
For more information about the username lookup class, see the "Username Lookup" section.
When using a hostname lookup class, this option causes User Registrar to skip the activate_device page and instead use the output of the lookup class. User Registrar, however, still uses the looked-up value to populate the Computer object. By default, this option is disabled. If you set this value to true and do not specify a hostname-lookup-class, User Registrar displays the activate_device page.
To enable or disable this option, see the "Editing Locale" section.
For more information about the hostname lookup class, see the "Hostname Lookup" section.
You can choose to add additional optional pages. For example, you might want User Registrar to display a welcome page that greets the subscriber; a steps page that outlines the self-provisioning steps, or a select locale page that lets the subscriber select a language.
The following configuration options control the User Registrar Subscriber pages.
You can choose to have User Registrar display the welcome page as an introductory page to the self-registration process. If you use the welcome page, User Registrar determines if subscribers are new or known users. If the subscriber is known, User Registrar displays the known_login page. If the subscriber is new, User Registrar displays the welcome page. By default User Registrar does not display this page.
To enable or disable this option, see the "Editing Locale" section.
For more information about this page, see the "Accessing User Registrar" section.
You can choose to have User Registrar display the steps page. This page provides a description of the self-registration process. If you choose to use this page, User Registrar displays it only for new subscribers. By default User Registrar does not display this page.
To enable or disable this option, see the "Editing Locale" section.
For more information about this page, see the "Accessing User Registrar" section.
You can choose to have User Registrar display the accept_svc_agreement page, which requires the subscriber to accept the service agreement before beginning the self-registration process. If the subscriber declines the service agreement terms, User Registrar displays the declined_svc_agreement page, which updates the Account object's AcceptedServiceAgreement attribute so that you can track subscriber service agreement acceptance.
The confirm_svc_agr page works in conjunction with the accept_svc_agreement page. If the subscriber declines the service agreement terms, User Registrar displays this page. The subscriber can choose to either accept or decline. If the subscriber accepts, User Registrar displays the next page in the workflow. If the subscriber declines, User Registrar displays the declined_svc_agreement page.
The declined_svc_agreement page works in conjunction with the accept_svc_agreement page. If the subscriber declines and confirms the decline, User Registrar displays this page and sets the AcceptedServiceAgreement flag to false. From the declined_svc_agreement pag, the subscriber can only logout and close the browser.
By default User Registrar does not display these pages. To enable or disable this option, see the "Editing Locale" section.
For more information about this page, see the "Enabling Service Agreement" section.
You can choose to have User Registrar display the select_locale page. This page allows a subscriber to choose the language, such as English or Spanish for the User Registrar pages. After the subscriber has chosen the language, User Registrar updates the Subscriber's object local attribute with that language value. When the subscriber logs in again, User Registrar automatically displays the correct language pages.
To enable or disable this option, see the "Editing Locale" section.
For more information about this page, see the "Accessing User Registrar" section.
This option determines the locale to present to a new subscriber. If you have enabled LocaleLookup, User Registrar uses its value otherwise it uses the Default subscriber locale. User Registrar learns the value for LocaleLookup when the subscriber selects a locale from the select_locale page. The default value is en for English.
To enable or disable this option, see the "Editing Global Settings" section.
For more information about this page, see the "Editing Global Settings" section.
The following example describes one way you could use locales to support different types of customers. A cable provider serves both a university and a residential neighborhood.
The cable provider services both groups by configuring three locales: University, Residential_English, and Residential_Spanish.
The cable provider configures User Registrar to automatically determine which locale customers are connecting from and to display the corresponding locale pages. For residential subscribers, User Registrar displays a language choice, allowing subscribers to choose between English and Spanish. After subscribers have chosen the language, User Registrar displays that language for all subsequent interactions with User Registrar.
The following are the areas in which you can customize locale use:
To create a new locale, do the following:
Step 1 From the Manage Defaults page, enter the name and description of the new locale.
Step 2 Click Add Locale.
User Registrar redisplays the page adding the new locale to the list of locales. After you have created a locale, you need to initialize the workflow settings.
To edit the workflow, do the following:
Step 1 From the Manage Defaults page, click Edit next to the name of the locale you have just created.
Step 2 From the Edit Locale page, select or enter the workflow options for this locale.
On this page, you can also control the usage of the locale selection page and enable the desired locale-specific page extensions. For more information about these options, see Table 3-26.
When you create a new locale, User Registrar copies a set of template files into the /csrc-root/html/csrc-ur-sub/locale-name directory where locale-name is the name of the locale you just created. These template files define the appearance of the pages User Registrar displays to the subscriber.
![]() | Tips If you want to base one locale on another locale, first create the new locale, then copy all of the template files from the old locale into the new locale directory overwriting the files User Registrar placed there as part of locale creation. |
To customize the page presentation, do the following:
Step 1 From the Manage Defaults page, click Edit next to the name of the locale you have just created.
Step 2 From the Edit Locale page, click Edit Page Presentations.
Step 3 From the Edit Page Presentations page, accept the defaults or enter the background color (in hexadecimal, for example, #003366) and page title for each User Registrar Subscriber page. For more information about these pages, see "Using User Registrar."
To create a page extension that uses the ILocaleLookup interface, do the following:
1. Create a new Java class that implements the ILocaleLookup interface with the getLocale() method returning the name of the locale for the given subscriber.
2. In the User Registrar Administrator Edit Locale page, specify the newly created Java class in the Locale lookup class field.
The following is a simple class that implements locale determination using the modem's IP address.
public class SampleLocaleLookup
implements com.cisco.csrc.ursub.ILocaleLookup
{
public String getLocale(String computerIP, String modemIP)
{
if (modemIP.startsWith("123.123."))
return "University";
else
return "Residential_English";
}
}
After CSRC has determined the subscriber's locale, User Registrar displays the appropriate pages.
Although you can use locales to support geographic regions, the primary reasons for using locales is for language selection. When a subscriber begins the self-registration process, the first page User Registrar displays can be the select_locale page. This page presents the subscriber with a list of locales.
To use the select_locale page, do the following:
Step 1 From the Manage Defaults page, click Edit next to the name of the locale you have just created.
Step 2 From the Edit Locale page, enable the Use select locale page option.
By default, the select_locale page lists all of the available locales configured in the system.
To display a subset of locales available for a subscriber, create a the ILocaleChoices page extension by doing the following:
1. Create a new Java class that implements the ILocaleLookup interface with the getLocaleChoices() method returning a string array containing the two desired locale names.
2. In the User Registrar Administrator Edit Locale page, specify the newly created Java class in the Locale lookup class field for the Residential_English & Residential_Spanish locales.
The following is a simple class that constrains the available locale choices for a certain subscriber group.
public class ResidentialLocaleChoices
implements com.cisco.csrc.ursub.ILocaleChoices
{
public String[] getLocaleChoices(String computerIP, String modemIP)
{
return new String[]
{ "Residential_English", "Residential_Spanish" };
}
}
Example 4-3 shows the Account and Subscriber objects from the User Registrar Subscriber application's schema:
class Account{
string AccountNumber, unique;
string PIN;
string LastName;
string FirstName;
string MI;
string Salutation;
string Telephone;
string Address, multi;
string City;
string State;
string ZipCode;
string SecurityQuestion, optional;
string SecurityAnswer; optional;
boolean AcceptedServiceAgreement, optional;
}
class Subscriber {
string UserName;
string LocalityName;
string StateOrProvinceName;
string AccountNumber, ref(Account.AccountNumber), unique;
boolean Isdisabled;
string Password;
objid ModemList, ref(Modem.ObjectID), multi;
objid ComputerList, ref(Computer.ObjectID), multi;
objid ServiceList, ref(Service.ObjectID), multi;
}
In Example 4-3, the class { } sections define objects and the various lines in each object define the attributes available. For each attribute, you can configure various properties.
The AccountNumber attribute of Subscriber is a reference to an Account object. This relationship is represented by ref(Account.AccountNumber). Similarly, an attribute can be multivalued (multi), unique across all instances (unique), and have default values. Unlike normal properties, specify default values by placing an equal sign to the right of the attribute name and then specify a value. For example, string IsDisabled=false; ensures that newly created Subscriber objects are not disabled by default.
If you choose to use the service agreement pages, CSRC uses the AcceptedServiceAgreement flag to store whether the subscriber has agreed to the service agreement. Note that the callouts that address the Account object must be able to return the accepted service agreement flag, must be registered for updates to the Account object, and must be able to update the callout's store with the new value after the agreement is accepted.
For example, when CSRC first access your callout to retrieve the Account object for a given subscriber, the AcceptedServiceAgreement will have no value if that subscriber has not accepted the agreement (a CSR registered the subscriber).
Working in conjunction with extension configurers, you can augment the schema with new attributes. After an extension has been properly configured to provide a new attribute, you must update the application schema to reflect this change. Additions to the application schema require a corresponding change to either an extension callout or an additional storage attribute.
Edit the schema file located in <csrc-root>/conf/cwafmw.spec to contain the new attributes and then provide the values using extension attributes or callouts. The order of the attributes in the schema is not significant to the operation of the application, though for consistency add the extension attributes after the core attributes User Registrar installed. For more information on extending the underlying CSRC object layer, refer to the "Schema Extensions," and "CSRC Schema."
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Posted: Fri Oct 22 08:26:35 PDT 1999
Copyright 1989-1999©Cisco Systems Inc.