Configuring the Voice Browser service

The Voice Browser service interprets VoiceXML content.

Management Station tab Description Related tasks
General Optional. Basic service settings. Basic service settings

Setting package-level diagnostic logging

Applications Required. Configuration of the VoiceXML applications that answer calls. Specifying VoiceXML applications

Changing the default application

Setting the To criteria

Setting To/From for a SIP softphone

Specifying a session.xml file

Telephony

Recommended. Configuration of the dialing plan.

The system uses default values for a North America plan. Customize as needed per any localized dialing requirements.

Specifying a dial plan

Example North America dial plan

Example Europe dial plan

Advanced Optional configuration possibilities. Setting advanced service properties

Basic service settings

The General tab sets the basic service configuration.

General tab Description
Diagnostic Logging

Optional. For service-level logging , different values write different amounts of information to the logs.

If necessary for troubleshooting, you can set package-level logging. See discussion below.

Cache

Optional. To apply changes to a VoiceXML page immediately (without restarting the voice browser service), click Clear Cache to reload resources at the next request instead retrieving them from virtual memory. This feature is available at the network, cluster, host, and service scopes.

The cache is persistent while the service runs. You can clear it at any time. For more information, see Caching application resources.

For example:

Setting package-level diagnostic logging

Note: Use this feature when instructed by Nuance Technical Support to investigate a problem that requires more detail in the log file.

You can use the Diagnostic Logging section on the General tab to fine-tune the logging levels of different code components in the Voice Browser service Java package. You can specify different levels at the package, subpackage, class, and method levels.

Enter the fully qualified name under the Package column and choose a logging level (ERROR, WARN, STATUS, D_INFO). To add another entry, click Add and enter the name and logging level. To remove an entry select it and click Remove.

The syntax for specifying different components is:

  • Package—package.*, for example, nuance.*, nuance.voyager.*, and nuance.voyager.browser.*
  • Class—package.class, for example, nuance.voyager.browser.Main
  • Inner class—package.class$inner_class, for example, nuance.voyager.browser.Main$inner_class
  • Method—package.class:method, for example, nuance.voyager.browser.Main:main

Inheritance rules apply—child components inherit their logging level from the parent component. For example, if you set a level at the class level, then all methods in that class inherit the same level. But once you set a level explicitly on a child, it no longer inherits the level from its parent. Inner or nested classes do not inherit logging levels from the parent class. You must explicitly set these.

The service applies logging levels from top to bottom. Be aware that entries added later might override entries added earlier. In the following example:

  • The service level is WARN. Any package not specified in the Package region inherits this level.
  • The first package sets the nuance.voyager.* package (and its subpackages) to STATUS.
  • The next package sets the nuance.* (and its subpackages) to ERROR. Since the nuance.* package is a parent to nuance.voyager.*, it overrides the STATUS level.
  • The last entry sets nuance.voyager.browser.Main class to DETAIL.

Specifying VoiceXML applications

Use the Applications tab to specify the VoiceXML applications that the Voice Browser service executes for answering calls. (You must publish the applications before specifying them. See Deploying an application.) 

The first row specifies the default application. Click Add to insert new rows for each additional application.

Depending on the criteria you specify, the service executes the same application for all calls (default) or routes calls to other applications based on the number dialed or the caller’s number (the To: and From: criteria). For example:

Criteria Cconditions for executing the VoiceXML application. (Click Add to display To and From.)
Default

Execute this VoiceXML application when no other criteria are met.

To change the default application, select the row, click Edit, and enter values for the Document URL, Company, and Application fields.

To Execute this VoiceXML application when the caller dials to a certain number (called ID or DNIS). Corresponds to the VoiceXML session.connection.localuri variable.
From Execute this VoiceXML application when the caller dials from a certain number (caller ID or ANI). Corresponds to the VoiceXML session.connection.remoteuri variable.

The general syntax of the Default Criteria is:

sip:myDNISorANI@hostname[:port]

The exact syntax depends on the telephony type (SIP or NMS), and there are differences for calls on a real network (PBX, gateway, SIP proxy) versus calls on a SIP softphone. For example, if the call goes through a real network, the DNIS or ANI is a phone number. With a SIP softphone, this value could be a phone number, the name of an application, or nvp.

In a real network, the port is determined by your PBX, gateway, or proxy. With a SIP softphone, you can optionally specify a port. The default port is 5060 on the first voice browser service instance, 5070 for the second, 5080 for the third, and so on. (The ports are configured in the role files.)

See the use cases below for more information. Here is a summary of the syntax:

Telephony type To/From syntax When using a SIP softphone...
SIP

To: sip:DNIS@hostname

  • DNIS is the called ID (dialed number).
  • hostname is the IP address or name of the host running the Voice Browser service (specifically, the telephony session service). It could specify a SIP proxy, if one is used.
The DNIS can be a specific application, a phone number, or nvp.
 

From: sip:ANI@hostname

  • The ANI is the caller ID (where the call originates).
  • The hostname is the IP address or name of the host where the call originates from.

The ANI depends on the particular phone. See your vendor documentation for more information.

For example, if the SIP softphone doesn’t send the caller ID in the SIP INVITE, NVP sets the value to Anonymous.

NMS

To: sip:DNIS@anonymous From: sip:ANI@anonymous

  • With NMS boards, you must use a sip, not a tel URl.
  • The value of the host where the call originates is always anonymous. For example, sip:5149047800@anonymous.
n/a

The Voice Browser service implements this routing behavior as follows:

  1. Evaluate the To criteria
  2. Evaluate the From criteria
  3. Use the default application
  4. Use the Document URL (Enter the URL of the VoiceXML main document that represents the initial page of the application. The syntax is:

    http://app_srvr_host:port/app/dialogs/main.vxml

Where:

  • app_srvr_host is the name or IP address of the host serving the application.
  • port depends on the application server. It is always 8090 for the NVP application container service.
  • app/dialogs/main.vxml is the path to the initial page of your application.

This example points to a travel application published on the application server host, mt-saturn: http://mt-saturn:80/MyTravelApp/dialogs/main.vxml

  • Company and Application: Choose a value from the list or choose Other... to type your own company and application values. The values will be used to segregate call log files and utterances stored locally (on the host). Note that these values take precedence over that company_name and application_name values set in session.xml. See Developing Applications for Nuance Voice Platform for more information about session.xml.
  • Use Session.xml: Check to specify a session.xml file for the particular application. Once checked, a text box appears for entering the pathname of the file. See Specifying a session.xml file for more information.

Restart the voice browser service to have the changes take effect.

Changing the default application

This example changes the default sample application from PizzaTalk to a published travel application at http://mt-appsrv1:80/TravelTalk/dialogs/welcome.vxml.

  1. Display the voice browser service Application tab at the desired scope: network, host, or service instance. See Scope for more information.
  2. Select the default application row and click Edit.
  3. For Document URL, enter http://mt-appsrv1:80/TravelTalk/dialogs/welcome.vxml.
  4. For Company, choose Other... and enter the company name, for example, Frantic Tours.
  5. For Application, choose Other... and enter the application name, for example, TravelApp.

When finished, the Applications tab might look like this:

Setting the To criteria

In this example, an application server host is running two applications for the Gizmos company, and you want to route callers dialing (777) 777-7777 to Customer Support and callers dialing (888) 888-8888 to Sales Support.

The To criteria must match exactly what is set in the incoming SIP INVITE. You can determine this from the gateway (or proxy) configuration but it’s easier to place a test call and examine the Voice Browser service logs to get this information. If the logging level is STATUS (default), search the log for “Answered call” to find the relevant information. (Alternatively, change the level to VD_INFO and search for the session.connection.localuri variable.) Example:

  1. Keep the logging level at STATUS.
  2. Let’s say that the call goes through a phone network to a gateway, which then sends an INVITE to NVP at mtl-nvp15-1-vm8. The gateway is configured to call NVP at that host’s IP address. Place a test call through the network taking the same path used by the caller.
  3. Examine the diagnostic log for the Voice Browser service instance that handled the call and search for “Answered call.” The log is at %NUANCE_DATA_DIR%\system\diagnosticLogs\vbs#-browser-instance#.log. Here is the relevant information showing the “to” URI:

    LOG,STATUS,...Answered call from sip:5149047800@10.3.22.88 to sip:7777777777@10.2.22.222 on device9.>>>1.0>>>sip5149047800@10.3.22.88>>>sip:7777777777@10.2.22.122>>>9...

    The log shows that NVP runs on host 10.2.22.222. You now have the information to configure the voice browser service.

  4. Display the Applications tab for the Voice Browser service at the desired scope and specify the To fields. When finished, the tab might look like this:

Setting To/From for a SIP softphone

In a development environment, you test applications with a SIP softphone. To get the URIs for the To and From values, place a test call to NVP and search the diagnostic logs for “Answered call”.

In this example, an SJPhone is installed on host 10.4.44.4 and NVP is installed on host 103.33.3.

For SJPhone, specify the the ANI (caller ID) in the From criteria as Anonymous. (Do this because the SIP softphone doesn’t send a caller ID as part of the URI string.)

The URL you dial must match the specified criteria exactly. The results are:

  • If you place a call to sip:blackjack@10.3.33.3, you get the Black Jack application.
  • And if you place a call from sip:Anonymous@10.4.44.4, you get the United Nations application.
  • If you place a call to sip:nvp@10.3.33.3, you get the PizzaTalk application. Since the To header in the SIP INVITE didn’t match either the To criteria, the default application is executed in this example.

Specifying a session.xml file

The session.xml is an optional configuration file where you can specify parameter defaults and resources to load for a specific application. For details about these configurations, see Application defaults.

You can specify a session.xml file at the network, cluster, host, or service scope. For example, you might define three session.xml files for three applications at the network scope. Any host subsequently added to the network inherits the settings.

Note: These examples show the NVP application container service, which uses port 8090. In a typical deployment, you’d publish the applications on a third-party application server host and use a valid port number.

To specify a session.xml for individual applications:

  1. Display the Applications tab for the voice browser service.
  2. Add the application and click Use Session.xml.

    To specify a session.xml file on an application already added, select the row and click Edit to enable the Use Session.xml field.

  3. Enter the pathname for the session.xml file. You can specify a file:// or http:// URL. For example:

The Advanced tab shows how these settings are passed internally to the Voice Browser service:

If the Voice Browser service can’t fetch the session.xml, it rejects the call and generates an alarm. This might happen if the service can’t find the file at the specified URL or if the file is invalid.

To change or remove a session.xml file:

  1. Select the application and click Edit.
  2. Modify the Session.xml URL field to point to a different session.xml.
  3. Uncheck the Use Session.XML field to remove the session.xml file.

Specifying a dial plan

Nuance recommends using the dial plan as much as possible. This allows your VoiceXML applications to be independent of the telephony configurations where they are deployed.

Use the Telephony tab to specify a dial plan. The dial plan transforms the URIs specified in VoiceXML applications and transforms them into valid telephone numbers that can be dialed from where NVP is running.

In the application, specify the URIs as part of the destination string of a call transfer. Examples:

Application URI

Example Description
Absolute URI
<transfer dest="tel:+18005551212"/>
<transfer dest="sip:+18005551212@10.0.00.0:5070;user=phone"/>

The URIs begin with + (plus symbol), followed by country code, area code, and local number.

The example +18005551212 is a North American number (1 is the country code for the USA and Canada). Alternatively, +441234567890 is a U.K. number (44 is the country code, 1234 is the area or city code, and 567890 is the local number).

For SIP, you must specify user=phone as part of the URI. Otherwise NVP ignores the dial plan.

Non-absolute
<transfer dest="tel:18005551212"/>
<transfer dest="sip:18005551212"/>
Non-absolute URIs do not begin with a + (plus symbol). The service submits them with no modification.

In Management Station, use the Telephony tab to specify the Dial Plan:

Field Description
Dial Prefix

The prefix that NVP must dial to reach an outside line. For example, in North America, enter 9.

International Prefix

The international dialing prefix for the area where NVP is running.

Use this value to signal that the number you are dialing is an international number. For example, in North America, enter 011.

Trunk Prefix

The national dialing trunk prefix of the area where NVP is running.

Specify any number that must be dialed before an area code when dialing from within your country but outside your area code. For example, in North America, enter 1.

Country Code

The country code where NVP is running. For example, in North America, enter 1.

Area Code

The area code where NVP is running. For example, in North America enter 514 for Montreal or 781 for Burlington, MA.

Trunk Prefix Exemptions

A comma-separated list of telephone prefixes, or range of prefixes that should be dialed without a trunk prefix.

For example, assume you enter 4503,4505-4509:

  • If the service receives tel:+14505556666, it dials 4505556666 (with no trunk prefix because the number matches one of the prefixes in the list), and this is a local call where the area code is required.
  • If the service receives tel:+14501113333, it dials 14501113333 (with a trunk prefix), and this is a long-distance call.
Enable call transfers

Check this field if your VoiceXML documents perform call transfers.

Uncheck this field if your VoiceXML documents do not perform call transfers. You might do this for security reasons.

When the application specifies an absolute URI, the Voice Browser service extracts the phone number, removes the + sign, and compares the remaining number against the settings in the dial plan. Depending on any matches, it removes parts of the number and adds different prefixes to dial the call. The flow looks like this:

Here are two use case to illustrate how this works. The application specifies these absolute URIs:

+17817918650—Nuance office in Burlington, MA, U.S.

+15149047800—Nuance office in Montreal, QC, Canada

+441483794444—Nuance office in London, U.K.

Example North America dial plan

For this example, assume the Voice Browser service is running in Burlington, MA. The dial plan might look like this:

Dial plan Value
Dial Prefix 9
International Prefix 011
Trunk Prefix 1
Country Code 1
Area Code 781
Trunk Prefix Exemptions 7813, 7815-7189

The service transforms each URI into a valid telephone number based on the dial plan:

Extracted phone number Country Codes match? Area Codes match? Trunk Prefix Exemptions match? Add Dial this number
17817918650 yes yes n/a Dial Prefix 97918650
15149047800 yes no no

Dial Prefix,

Trunk Prefix

915149047800
441483794444 no n/a n/a

Dial Prefix

International Prefix

9011441483794444

Example Europe dial plan

For this example, assume the Voice Browser service is running in London, U.K. The dial plan might look like this:

Dial plan Value
Dial Prefix 9
International Prefix 00
Trunk Prefix 0
Country Code 44
Area Code 1483
Trunk Prefix Exemptions 14838-14839

This table shows the results:

Extracted phone number Country Codes match? Area Codes match? Trunk Prefix Exemptions match? Add Dial this number
17817918650 no n/a n/a

Dial Prefix

International Prefix

90017817918650
15149047800 no n/a n/a

Dial Prefix

International Prefix

90015149047800
441483794444 yes yes n/a Dial Prefix 9794444

Setting advanced service properties

The Advanced tab displays the current service property settings. For example:

Optional. Use the Advanced tab to specify additional service properties. (The default values are appropriate for most scenarios and there is no need to configure non-default values.

Service property Description Default

browser.LogPerCall

Creates one diagnostic log file per call.

See Generating one log file per call for more information.

False
browser.LogDirectoryHierarchy Saves per-call log files to a hierarchical structure that indicates the indicates the company and application name, plus year, month, day, and hour at which the call started. Used with browser.LogPerCall. False
browser.mrcp.nomatch.getConfidence

Sends the confidence score for REJECTED recognition results to the VXML application.

False
browser.mrcp.serverAddress Specifies the hostname or IP address and port number the voice browser service uses to communicate with the Speech Server. Required only if the voice browser service and Nuance Speech Server are running on separate hosts. For example, if the Speech Server is running on host saturn, then modify the value to saturn:5066.

127.0.0.1 (or localhost):5066 127.0.0.1 maps to localhost.

browser.tonedetection.tone_event.enable

Enables or disables a specific tone where tone_event can be answering-machine, fax, sit, and tty. Set to FALSE to disable. See Tone detection for more information.

True