Guest

Cisco Unity

Cisco Unity 3.x Redirect Servers Provide Subscriber Access to ActiveAssistant

Document ID: 22328



Contents

Introduction
Prerequisites
      Requirements
      Components Used
      Conventions
Background Information
Step-by-Step Instructions
Verify
Troubleshoot
Related Information

Introduction

Once an administrator provides subscribers with the appropriate Cisco Unity server name, subscribers can use the following URL to access ActiveAssistant:

http://server name/web/aa

When every subscriber in an organization is homed on the same Cisco Unity server, an administrator can distribute the same URL to all subscribers. However, in a network with multiple Cisco Unity servers, an administrator must keep track of which server each subscriber is homed on in order to provide them with the appropriate URL to access ActiveAssistant.

This document can help avoid this task by providing every subscriber with the URL to a single Cisco Unity server that is set up to automatically redirect subscribers to the appropriate ActiveAssistant web site for their account. For example, the administrator can instruct all subscribers to use the following URL to access their ActiveAssistant pages:

http://redirect server name/ActiveAssistant

Alternatively, an administrator may prefer to set up each Cisco Unity server in the network as a redirect server. In this scenario, since all Cisco Unity servers are able to redirect subscribers to the appropriate ActiveAssistant web site, subscribers also do not have to remember a new server name to access ActiveAssistant.

Note: In both cases, /web is no longer included in the path, and subscribers must spell out ActiveAssistant, rather than use the abbreviated aa in the URL as in the past.

Prerequisites

Requirements

Before you attempt this configuration, please ensure that you meet the following prerequisites:

  • You are familiar with Active Server Pages (ASP).

  • You are familiar with Internet Information Server (IIS).

  • Your subscribers have the appropriate class of service (CoS) rights to access ActiveAssistant.

Components Used

The information in this document is based on Cisco Unity 3.x servers. It requires that the Cisco Unity server be connected to Exchange 2000.

The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, make sure that you understand the potential impact of any command.

Conventions

For more information on document conventions, see the Cisco Technical Tips Conventions.

Background Information

You should consider the following information before you use this document:

  • The redirect server that you want subscribers to use to access ActiveAssistant must be in the same domain as the servers that these subscribers are homed on.

  • The code for the ASP file, offered in Step 1 of the Step-by-Step Instructions section of this document, has some problems dealing with the child domain when the Cisco Unity servers are set up with two domains (one parent and one child). For example, when you connect to the child redirection server, and enter the name and password of a child user, you get the following error:

    Microsoft VB runtime (0x800a0005)
    
    Invalid procedure call or argument, line 35
    
    

    Line 35 is: If (Session("dbconn").CompareObjectIds(LocObjId, CurLoc)) then

    If the user is not found, the whole location section of the ASP file should not be executed. Doing so results in another error. Instead, move the End If statement, highlighted in the following example, to the specified location:

    If oRS.EOF and oRS.BOF Then
    
           Response.Write "User Not Found"
    Else
           LocObjId=oRS(0) We found the location that this user is assigned to
    End If
    
    !--- Move this End If statement from this location.
    
    oRS.Close
    Set ors=Nothing
    strQuery = "<LDAP://" & strADServerName & ">;(&(objectCategory=ciscoEcsbuUMLocation)
    (ciscoEcsbuUMLocationObjectId=*));ciscoEcsbuUMServer,ciscoEcsbuUMLocationObjectId;subtree"
    Set ors = oConn.Execute(strQuery)
    If oRS.EOF and oRS.BOF Then
           Response.Write "Location Not Found"
    Else
           Dim i, CurLoc, strServer
           For i = 0 to oRS.RecordCount
                  CurLoc=ors(1)  Get the second column from the recordset.
                  If (Session("dbconn").CompareObjectIds(LocObjId, CurLoc)) Then use the DbConn DLL to compare the location object IDs.
                  strServer=ors(0)
                  Response.Redirect "http://" &  strServer & "/web/aa"
                  Exit For
           End If
                  oRs.MoveNext
           next
    End If
    
    !--- Move the End If statement to this location.
    
    oRS.Close
    Set ors=Nothing
    oConn.Close 
    Set oConn=Nothing    
    %>
  • It is possible that you may need a Domain Control Global Catalog (DCGC) in each domain for which you set up a redirect server, in order to avoid lookup problems. You may, however, already have this set up to avoid Exchange 2000 mail routing problems.

Step-by-Step Instructions

Use the following steps to set up one or more Cisco Unity servers as redirect servers.

  1. Either enter or copy the following code to C:\CommServer\Web\Redirect\default.asp on the Cisco Unity server.

    Note: The following example code uses the SaDBConn.dll that is released with Cisco Unity, and therefore can only be run on a Cisco Unity server. You must install the ASP file on at least one Cisco Unity server in the network, although you can save it to a different directory if desired.

    <%                   
    Dim x,strUser, LocObjId, oConn, ors             Create the variables.
    strUser = Request.ServerVariables("AUTH_USER")  Get the user information from IIS.
    
    Create a connection to the AvSaDbSession object
    Set Session("dbconn")= Server.CreateObject("AvSaDbSession.AvSaDbSession.1")
    hr = Session("dbconn").Initialize
    
    Get the user name for the logged-in account.
    for x = 1 to len(strUser)
           If mid(strUser,x,1)="\" then 
                  strUser = right(strUser,Len(strUser)-x)
           end if
    next
    strADServerName = Request.ServerVariables("SERVER_NAME")      Get the server name.
    Create the query to get the location ID associated with this subscriber.
    strQuery = "<LDAP://" & strADServerName & ">;(&(objectCategory=person)
    (sAMAccountName=" & strUser & "));ciscoEcsbuUMLocationObjectId;subtree"
    Set oConn = CreateObject("ADODB.Connection") Create an ADO Connection.
    oConn.Provider = "ADsDSOOBJECT" ADSI OLE DB provider
    oConn.Open "ADs Provider"
    Set ors = oConn.Execute(strQuery) Execute the query.
    If oRS.EOF and oRS.BOF Then
           Response.Write "User Not Found"
    Else
           LocObjId=ors(0) ? We found the location that this user is assigned to.
    End If
    oRS.Close
    Set ors=Nothing
    strQuery = "<LDAP://" & strADServerName & ">;(&(objectCategory=ciscoEcsbuUMLocation)
    (ciscoEcsbuUMLocationObjectId=*));ciscoEcsbuUMServer,ciscoEcsbuUMLocationObjectId;subtree"
    Set ors = oConn.Execute(strQuery)
    If oRS.EOF and oRS.BOF Then
           Response.Write "Location Not Found"
    Else
           Dim i, CurLoc, strServer
           For i = 0 to oRS.RecordCount
                  CurLoc=ors(1) Get the second column from the recordset.
                  If (Session("dbconn").CompareObjectIds(LocObjId, CurLoc)) Then use the DbConn DLL to compare the location object IDs.
                  strServer=ors(0)
                  Response.Redirect "http://" &  strServer & "/web/AA"
                  Exit For
           End If
                  oRs.MoveNext
           next
    End If
    oRS.Close
    Set ors=Nothing
    oConn.Close 
    Set oConn=Nothing    
    %>
  2. Choose Start > Programs > Administrative Tools > Internet Services Manager.

  3. Browse to *machinename > Default Web Site > ActiveAssistant.

  4. Right-click ActiveAssistant, and then select Properties.

  5. Set the local path to C:\CommServer\Web\Redirect, or to the directory that contains the ASP file you saved in Step 1.

  6. Under Local Path, confirm that Read is checked.

  7. Confirm that Execute Permissions is set to Scripts Only.

  8. Click OK.

  9. Repeat Steps 1 through 8 on each Cisco Unity server that you want to set up as a redirect server.

  10. Notify subscribers that they can no longer use the URL for ActiveAssistant as indicated in the Cisco Unity User Guide and the Cisco Unity at a Glance cards. Instead, give them the new ActiveAssistant URL, as appropriate.

    • If you set up only one Cisco Unity server as the redirect server, tell them to use the following URL:

      http://redirect server name/ActiveAssistant

      Point out the new server name, the deletion of /web from the path, and that they must now spell out ActiveAssistant, rather than use the abbreviated aa.

    • If you set up every Cisco Unity server in the network as a redirect server, tell them to use the same server name that they have used in the past in the following URL:

      http://server name/ActiveAssistant

      Point out the deletion of /web from the path, and that they must now spell out ActiveAssistant, rather than use the abbreviated aa.

Verify

There is currently no verification procedure available for this configuration.

Troubleshoot

There is currently no specific troubleshooting information available for this configuration.


Related Information



Updated: Jan 10, 2006 Document ID: 22328