Implement IPT Components
After you complete the implementation readiness analysis, you can proceed with the actual implementation of various IPT components. Chapters 5, 6, "Design of Call Processing Infrastructure and Applications," and 7, "Voice-Mail System Design," covered various design aspects of the network infrastructure, call processing, enabling features, and voice-mail system. This section covers the basic implementation steps and introduces you to some tools that you can use to verify whether the implementation of the IPT components is successful.
CallManager and Application Server Implementation
This section covers the high-level implementation steps involved in building the CallManager and application servers. Because the installation procedures might vary from one version to another, you should refer to the installation guides and release notes provided with the CallManager for detailed installation procedures.
Operating System Installation
Configuration Checklist for Installation of CallManager and Other Application Servers" section of Appendix H before you install any server.NoteUse the Cisco-provided OS installation CD-ROM/DVD-ROM to install the operating system on Unity systems. Cisco supplies these discs if you purchase the hardware directly from Cisco. You should use original Microsoft Windows 2000/2003 Server CD-ROMs to install the OS on Unity systems that Cisco does not directly supply.
Installing CallManager and Other Applications
After you install the OS on all the servers, follow these steps to complete the CallManager installation in the entire cluster:
1. | Verify that all servers are running the same base OS version. (Refer to the "Checking CallManager Version" section later in this chapter for the procedure.) |
2. | Install operating system updates on all the servers. |
3. | Update the C:\Winnt\System32\Drivers\etc\hosts and LMHOSTS files on all servers with all the server entries in the cluster and run the nbtstat -R command from the DOS command prompt. |
4. | Install the CallManager software on the publisher server by following the instructions given in the installation guides on Database Layer Tool to Check SQL Subscriptions" section later in this chapter for the detailed procedure for doing this task.) |
NoteAfter you install the CallManager, log in to the CallManager Administration page and choose System > Server. By default, you will see the name of the server you entered during the installation. Change this to the IP address of the corresponding server if you are not using DNS. If you are using DNS, ensure that the DNS server has the entry for all the servers in the cluster. Without this, IP Phones will fail to resolve the CallManager DNS name, and IP phones will fail to register with CallManager.You can install applications such as IP Contact Center Express (IPCC Express) and Cisco Emergency Responder (CER) after you complete the CallManager installation. During the installation of these applications, you might have to provide the IP address or host name of the CallManager publisher and subscriber servers so that the applications can establish the communication with the CallManager servers. It is essential that you build the CallManager servers and make them available on the network before you proceed with the installation of other applications.
Installing Tools and Third-Party Applications
After you complete the basic installation of CallManager servers and other application servers, perform the following tasks:Install the antivirus software and Cisco Security Agent software on all the servers.Install tools such as Bulk Administration Tool (BAT), Tool for Auto-Registered Phones Support (TAPS), and Dialed Number Analyzer (DNA) on the CallManager publisher server.Install the Backup and Restore System (BARS) software to back up the CallManager database on the CallManager publisher server.
Implementing Voice Gateways
Voice gateways in the IPT network provide public switched telephone network (PSTN) access to the IP Phones. The following list gives the general implementation tasks that are applicable to all voice gateways:Install and configure the gateway or voice network module in the network/device. Refer to the installation and configuration documentation on Cisco.com for the model of gateway that you are configuring.Configure the trunk interface on the gateway to the PSTN and configure dial peers if required. Refer to the voice-feature software configuration documentation or Cisco IOS documentation for the model of the gateway you are configuring.Add and configure the gateway in CallManager.Configure the dial plan for the gateway for routing calls out to the PSTN or other destinations.Configure a route group, route list, and route pattern in CallManager.Reset the gateway in CallManager to apply the configuration settings.Verify the connectivity by making test calls.
This section describes the steps involved in configuring two different types of voice gateways proposed for the XYZ IPT network and provides troubleshooting tips. Because there is a wide selection of voice gateways, refer to the documentation on Cisco.com to configure the other types of gateways that are not described here. The following gateways are described in this chapter:Cisco Catalyst WS-X6608-T1 gatewayCisco Catalyst Communication Media Module (CMM) gateway
Implementing Catalyst T1 Voice Gateways Using the WS-X6608-T1 Module
This section covers the steps involved in configuring the Cisco Catalyst WS-X6608-T1 gateway module in Cisco CallManager, procedures to verify the gateway registration status in CallManager, and some common troubleshooting steps.
Step 1: Obtain the MAC Address of the Voice Port
Before you configure a T1/E1 port on a Catalyst WS-X6608-T1/E1 or WS-SVC-CMM module, you need to obtain the MAC address of the voice port. You can do this on Catalyst 6xxx series switches by running the show module command, as shown in Example 8-1. From the output, you can see that the module in slot 4 is a WS-X6608-T1 module and has eight MAC addresses assigned, which are in the range 00-01-64-11-c6-7c to 00-01-64-11-c6-83. The MAC address of the first port 4/1 is 00-01-64-11-c6-7c, the second port 4/2 is 00-01-64-11-c6-7d, and so forth, with the MAC address of the port 4/8 being 00-01-64-11-c6-83.
Example 8-1. Obtaining the MAC Address of the T1/E1 Port
cat6k-voice> (enable) show module
Mod Slot Ports Module-Type Model Sub Status
--- ---- ----- ------------------------- ------------------- --- -------
1 1 2 1000BaseX Supervisor WS-X6K-SUP1A-2GE yes ok
15 1 1 Multilayer Switch Feature WS-F6K-MSFC no ok
3 3 48 10/100BaseTX Ethernet WS-X6348-RJ-45 no ok
4 4 8 T1 WS-X6608-T1 no ok
5 5 24 FXS WS-X6624-FXS no disable
6 6 5 Communication Media Mod. WS-SVC-CMM no ok
7 7 5 Communication Media Mod. WS-SVC-CMM no ok
9 9 8 T1 WS-X6608-T1 no ok
Mod Module-Name Serial-Num
--- -------------------- -----------
1 SAD04480PZW
15 SAD04480KXC
3 SAL05031N6H
4 SAD04320KZA
5 SAD04430ASH
6 SAD075303F1
7 SAD0640008A
9 SAD04450DS1
Mod MAC-Address(es) Hw Fw Sw
--- -------------------------------------- ------ ---------- ---------------
1 00-02-7e-26-06-a2 to 00-02-7e-26-06-a3 7.0 5.3(1) 8.1(3)
00-02-7e-26-06-a0 to 00-02-7e-26-06-a1
00-d0-03-14-74-00 to 00-d0-03-14-77-ff
15 00-02-7e-26-06-a4 to 00-02-7e-26-06-e3 1.4 12.1(1)E, 12.1(1)E,
3 00-04-6d-44-80-c0 to 00-04-6d-44-80-ef 1.4 5.4(2) 8.1(3)
4 00-01-64-11-c6-7c to 00-01-64-11-c6-83 1.1 5.4(2) 8.1(3)
5 00-d0-d3-3e-9d-34 2.0 5.4(2) 8.1(3)
6 00-03-fe-ad-d9-6a to 00-03-fe-ad-d9-73 2.2 12.2(13)ZP 12.2(13)ZP2,
7 00-02-7e-e4-a2-de to 00-02-7e-e4-a2-e7 2.1 12.2(13)ZP 12.2(13)ZP,
9 00-01-c9-6b-33-20 to 00-01-c9-6b-33-27 1.1 5.4(2) 8.1(3)
Mod Sub-Type Sub-Model Sub-Serial Sub-Hw Sub-Sw
--- ----------------------- ------------------- ----------- ------ ------
1 L3 Switching Engine WS-F6K-PFC SAD045007LA 1.1
Step 2: Assign the IP Address for the Voice Port
To assign the IP address for the voice port, the best practice is to assign the static addresses for the critical components such as servers, gateways, and gatekeepers. Example 8-2 shows the Catalyst 6xxx command to configure the static address for the port 4/1. You can see that Dynamic Host configuration Protocol (DHCP) is disabled and the IP address configured for the port is 172.21.54.90 with a subnet mask of 255.255.255.128. The switch port is on VLAN 401. Because DHCP is disabled, the TFTP server address, which in this example is 172.21.51.237, should be configured manually.
Example 8-2. Assigning a Static IP Address for the T1/E1 Port
NoteYou need to obtain the MAC address and configure the switch ports in a similar way to that described earlier for Catalyst 6xxxbased Media Gateway Control Protocol (MGCP) gateway WS-X6624. Note that a single MAC address is assigned to the whole WS-X6624-FXS module.
cat6k-voice> (enable) set port enable 4/1
Port 4/1 enabled.
cat6k-voice> (enable) set port voice interface 4/1 dhcp disable 172.21.54.90 255
.255.255.128 vlan 401 tftp 172.21.51.237 gateway 172.21.54.2
Port 4/1 DHCP disabled.
System DNS configurations used.
cat6k-voice> (enable)
Step 3: Configure the Gateway on the CallManager
To configure a gateway on the CallManager Administration page, choose Device > Gateway and click the Add a New Gateway option on the Gateway page. On the Add a New Gateway page, select the gateway type and device protocol used for signaling.To add a T1 port on a WS-X6608-T1 module and configure the T1 port for PRI protocol, choose the Cisco Catalyst 6000 T1 VoIP gateway as a gateway type and Digital Access PRI as the device protocol in the Add a New Gateway Page, and click the Next button. This brings up the Gateway configuration page, as shown in Figure 8-1. You need to type the MAC address of the port. In Figure 8-1, the MAC address entered is for port 4/1.
Figure 8-1. Adding a T1/E1 Port on a Catalyst WS-X6608-T1 (E1) Module
Gateway Selection and Sizing" section in Chapter 6 to understand the importance of the other parameters.
Step 4: Verify the Gateway Registration Status on the Switch
After configuring the gateway on the CallManager, you can check the status of the gateway registration, as shown in Example 8-3. If the port is successfully registered, you should see the word "registered" under CallManagerState, as shown in Example 8-3.
Example 8-3. Verifying the Gateway Registration Status on the Switch
cat6k-voice> (enable) show port 4/1
* = Configured MAC Address
Port Name Status Vlan Duplex Speed Type
----- -------------------- ---------- ---------- ------ ----- ------------
4/1 Connection-to-PSTN connected 401 full 1.544 T1
Port DHCP MAC-Address IP-Address Subnet-Mask
-------- ------- ----------------- --------------- ---------------
4/1 disable 00-01-64-11-c6-7c 172.21.54.90 255.255.255.128
Port Call-Manager(s) DHCP-Server TFTP-Server Gateway
-------- ----------------- --------------- --------------- ---------------
4/1 172.21.51.237 - 172.21.51.237 172.21.54.2
Port DNS-Server(s) Domain
-------- ----------------- -------------------------------------------------
4/1 - -
Port CallManagerState DSP-Type
-------- ---------------- --------
4/1 registered C549
Port NoiseRegen NonLinearProcessing
----- ---------- -------------------
4/1 enabled enabled
Port Trap IfIndex
----- -------- -------
4/1 disabled 43
Port Status ErrDisable Reason Port ErrDisableTimeout Action on Timeout
---- ---------- ------------------- ---------------------- -----------------
4/1 connected - Enable No Change
Idle Detection
--------------
cat6k-voice> (enable)
Step 5: Verify the Gateway Registration Status on the CallManager
You can verify the gateway registration status from the CallManager Gateway configuration page, as shown in Figure 8-2.
Figure 8-2. Verifying the Registration Status of a T1/E1 Port
Chapter 9 discusses these tools in detail.Figure 8-3 shows the performance counters on a CallManager server for the performance object MGCP PRI device. To access the Performance Monitor application on a CallManager server, click Start > Programs > Administrative Tools > Performance. Figure 8-3 shows the status of the 23 B channels (channels 1 to 23) and the D channel (channel 24) of the selected MGCP PRI gateway. The status code for channel 23 is 3 (Busyindicates an active call on the channel), whereas the status code for all the other B channels is 2 (Idlenot in use).
Figure 8-3. Performance Monitor Counters for MGCP Voice Gateway
[View full size image]

Implementing a Catalyst T1/E1 Voice Gateway by Using a CMM Module
Chapter 6, the CMM module has four slots. One slot is an internal slot and is not available to plug in any T1/E1 module. The internal slot can only accept an Ad Hoc Conferencing and Transcoding (ACT) adapter. The three other slots can be filled either with three T1/E1 modules each with 6 T1/E1 ports (18 total) or any combination of T1/E1 modules and ACT adapters.With WS-X6608-T1 (E1) modules, unused T1/E1 ports can be configured as conferencing and transcoding resources. This is not the case with T1/E1 ports on the CMM module. You require the ACT adapter for conferencing and transcoding purposes. Another difference between the WS-X6608-T1 module and CMM is that CMM supports both H.323 and MGCP protocols, besides supporting Survivable Remote Site Telephony (SRST). The following steps cover how to provision the CMM module.
Step 1: Access the CMM
The CMM module has its own Cisco IOS image. To access the CMM module from the Catalyst switch running the Cat OS and Multilayer Switch Feature Card (MSFC) running the IOS code, enter the session mod_num command on the switch console, as shown in Example 8-4. The mod_num is the module number where CMM is installed. From Example 8-1, the CMM modules are available in modules 6 and 7 on the Cat6k-voice switch used in this configuration.
Example 8-4. Accessing CMM from the Switch Console
Note that the host name used for the CMM is SJ-CMM1. You have to input this host name when configuring the CMM in CallManager Administration.
cat6k-voice> (enable) session 6
Trying VOICE-GATEWAY-6...
Connected to VOICE-GATEWAY-6.
Escape character is '^]'.
User Access Verification
Password:
SJ-CMM1>en
Password:
SJ-CMM1#
Step 2: Configure the T1/E1 Port
The CMM runs the Cisco IOS image. Therefore, the configuration steps for T1/E1 ports are similar to those for any T1/E1 port on a Cisco IOS router. Example 8-5 shows the configuration for a T1 port. The configuration for the E1 port is similar except that you select the E1 port and configure different line code and framing.
Example 8-5. Configuring the T1/E1 Port
Chapter 6 section "Survivable Remote Site Telephony" to see a sample configuration of a local dial plan on routers. When the router is in SRST mode, the gateway falls back to H.323 mode and uses the local dial plan to perform the call routing.
SJ-CMM1# conf
Configuring from terminal, memory, or network [terminal]?
Enter configuration commands, one per line. End with CNTL/Z.
! Configure the ISDN Switch type
SJ-CMM1(config)#isdn switch-type primary-ni
! Enable the MGCP process on the CMM
SJ-CMM1(config)#mgcp
! Specify the MGCP Call Agent address, which is, the IP address of the primary
! CallManager. You can specify backup CallManager's by using the command
! ccm-manager redundant-host command
SJ-CMM1(config)#ccm-manager mgcp
SJ-CMM1(config)#mgcp call-agent 172.21.51.237
! Configure the Gigabit ethernet interface. This is the interface through
! which the T1/E1 ports communicate with CallManager
SJ-CMM1(config)#int gigabitEthernet 1/0
SJ-CMM1(config-if)#ip address 172.21.54.89 255.255.255.128
SJ-CMM1(config-if)#no shutdown
SJ-CMM1(config-if)#ip default-gateway 172.21.54.5
! Configure the T1 port with correct line code and framing
SJ-CMM1(config)#controller t1 1/0
SJ-CMM1(config)#no shutdown
SJ-CMM1(config-controller)#linecode b8zs
SJ-CMM1(config-controller)#framing esf
SJ-CMM1(config-controller)#pri-group timeslots 1-24 service mgcp
! After configuring the pri-group command under the T1/E1 controller,
! router adds the D channel interface.
! The ISDN bind command configures the ISDN-PRI back-haul to the CallManager
SJ-CMM1(config)#interface serial 1/0:23
SJ-CMM1(config-if)#isdn bind-l3 ccm-manager
Configure the POTS dial peer and associate the voice port 1/0:23 to this dial peer. The
application command informs the CMM that the voice port 1/0:23 is controlled by MGCP.
SJ-CMM1(config)#dial-peer voice 1 pots
SJ-CMM1(config-dial-peer)#application mgcp
SJ-CMM1(config-dial-peer)#port 1/0:23
Step 3: Configure the Gateway on CallManager
To configure a gateway on the CallManager Administration page, choose Device > Gateway. Click the Add New Gateway option on the Gateway page. On the Add a New Gateway page, choose Communication Media Module as the gateway type and click Next. In the Domain Name field, enter the host name of the CMM module and select the interface cards inserted into the modules, as shown in Figure 8-4. Click Insert to insert the gateway into the CallManager.
Figure 8-4. Adding the CMM Module as a Gateway in CallManager
[View full size image]

Figure 8-5. Adding Subunits to the CMM Module
[View full size image]

Step 4: Verify the Connectivity Status
After completing the configuration, you need to verify whether the physical connection to the PSTN is up. You can use the show isdn status command, as shown in Example 8-6. The Layer 2 status should report MULTIPLE_FRAME_ESTABLISHED.
Example 8-6. Verifying the T1/E1 Port Connectivity Status on the CMM
If you do not see the successful connectivity status, verify that line code, framing, and clocking are configured correctly. You can use the show controllers t1 1/0 command to verify these configurations, as shown in Example 8-7.
SJ-CMM1#show isdn status
Global ISDN Switchtype = primary-ni
ISDN Serial1/0:23 interface
dsl 0, interface ISDN Switchtype = primary-ni
L2 Protocol = Q.921 L3 Protocol(s) = CCM-MANAGER
Layer 1 Status:
ACTIVE
Layer 2 Status:
TEI = 0, Ces = 1, SAPI = 0, State = MULTIPLE_FRAME_ESTABLISHED
Layer 3 Status:
0 Active Layer 3 Call(s)
Active dsl 0 CCBs = 0
The Free Channel Mask: 0x807FFFFF
Number of L2 Discards = 0, L2 Session ID = 3
Total Allocated ISDN CCBs = 0
SJ-CMM1#
Example 8-7. Verifying the Controller Configuration
SJ-CMM1#show controllers t1 1/0
T1 1/0 is up.
Applique type is Channelized T1
Cablelength is long gain36 0db
No alarms detected.
alarm-trigger is not set
Framing is ESF, Line Code is B8ZS, Clock Source is Line.
Data in current interval (15 seconds elapsed):
0 Line Code Violations, 0 Path Code Violations
0 Slip Secs, 0 Fr Loss Secs, 0 Line Err Secs, 0 Degraded Mins
0 Errored Secs, 0 Bursty Err Secs, 0 Severely Err Secs, 0 Unavail Secs
SJ-CMM1#
Step 5: Verify the Registration Status
To verify the T1/E1 port registration status on the CMM, use the show ccm-manager command, as shown in Example 8-8. The output should show Registered if the port is successfully registered to the CallManager.
Example 8-8. Verifying the Registration Status of the T1/E1 Port on the CMM
SJ-CMM1#show ccm-manager
MGCP Domain Name: SJ-CMM1
Priority Status Host
============================================================
Primary Registered 172.21.51.237
First Backup None
Second Backup None
Current active CallManager: 172.21.51.237
Backhaul/Redundant link port: 2428
Failover Interval: 30 seconds
Keepalive Interval: 15 seconds
Last keepalive sent: 23:24:31 UTC Mar 22 1993 (elapsed time: 00:00:09
)
Last MGCP traffic time: 23:24:31 UTC Mar 22 1993 (elapsed time: 00:00:09
)
Last failover time: None
Last switchback time: None
Switchback mode: Graceful
MGCP Fallback mode: Not Selected
Last MGCP Fallback start time: None
Last MGCP Fallback end time: None
PRI Backhaul Link info:
Link Protocol: TCP
Remote Port Number: 2428
Remote IP Address: 172.21.51.237
Current Link State: OPEN
Statistics:
Packets recvd: 463
Recv failures: 76
Packets xmitted: 390
Xmit failures: 0
PRI Ports being backhauled:
Slot 1, port 0
Configuration Error History:
FAX mode: cisco
SJ-CMM1#
Troubleshooting Gateway Connectivity and Registration Issues
This section provides troubleshooting tips if you are having trouble completing the gateway registration, confronting issues with port status, or experiencing unsuccessful inbound/outbound calls for Catalyst-based voice gateways.To determine whether the problem is related to a registration issue, do the following:Check the basic network connectivity by pinging the TFTP server and the CallManager from the gateway module.Check whether the port that is configured for the voice gateway is enabled.Check whether the correct IP address, subnet mask, gateway, and VLAN are configured for the port.If you are not using DHCP, ensure that the DHCP helper address is configured on the routed interface that is directly connected to the subnet where the gateway port resides.Check whether the correct TFTP server is configured.If you are using the DNS name for the TFTP server, ensure that the switch can resolve the TFTP server name to the IP address.If all of the previous points are correct, check that the MAC address entered in the CallManager matches the MAC address of the port.
To determine whether the problem is related to a connectivity issue, check whether the port status is Connected; refer to Example 8-3. If it is not, check that the interface parameters such as the isdn switch-type, line code, and framing configured on the gateway are set according to the values required by your local telco; refer to Example 8-5.To determine whether the problem is related to unsuccessful calls (made to and from a Cisco IP Phone through the gateway), verify the following:If you cannot make outbound calls from a Cisco IP Phone, check the dial plan configurations and Cisco IP Phone's CSS configuration.If you are not able to receive incoming calls from the gateway, check the values in the Inbound Calls section of the Gateway configuration page in the CallManager, such as the Calling Search Space and Significant Digits fields.
If you still have problems, look into the TFTP traces or CallManager traces to resolve the issue.The preceding paragraphs discussed the implementation procedures and troubleshooting procedures for commonly used gateways. If your network uses other gateways, refer to the Cisco.com product-specific documentation for configuration and troubleshooting assistance.
Implementing IP Phones
You can deploy IPT components such as IP Phones and gateways either manually or by using automated tools such as BAT. Use of the automated tools makes the IPT implementation more robust and smooth. These tools can assist you in speeding up the IPT implementation process in most cases, but using them is not mandatory for the IPT implementation process. The following sections describe the implementation of IP Phones using BAT and the physical installation of IP Phones.
Implementation of IP Phones Using BAT
To enable you to configure or update your CallManager database faster and with less manual entry for larger systems, CallManager ships BAT. By using BAT, you can perform bulk add, update, and delete operations of phones, users, and gateways. The export feature in BAT comes in handy when you are consolidating multiple CallManager clusters into a single CallManager cluster. By using the export feature, you can export the configuration information of phones and users from a CallManager cluster into a CSV file and import the contents of the CSV file into the new CallManager cluster.BAT is available on the CallManager Install Plugins page. You can install BAT only on a CallManager publisher server. After you install BAT, you can access it by entering the following URL:
http://CCM_PUBLISHER_IP_ADDRESS/bat
A complete installation and configuration guide for BAT is available at the following URL:
http://www.cisco.com/en/US/partner/products/sw/voicesw/ps556/products_user_guide_book09186a0080212686l
The next two sections discuss the procedures and tools that you can use to provision Cisco IP Phones in the CallManager.
Barcode Scanners
When you are using BAT to add the MAC address of the IP Phones for a large-scale IPT deployment, you need to type each MAC address, one by one, into the Bat.xlt (BAT Microsoft Excel Template) file, which is a tedious process.Use of bar-code scanners greatly reduces the chance of human error in entering the MAC addresses while configuring the IP Phones in CallManager and helps you to accelerate largescale IP Phone deployments.The back of the IP Phone has a barcoded MAC address. Barcode vendors offer a wide variety of models. The scanner you choose needs to scan the MAC address and put it in the database efficiently. Here is a brief list of barcode scanner manufacturers:Socket Communications http://www.socketcom.com/Symbol Technologies http://www.symbol.comWasp Technologies http://www.waspbarcode.com
While choosing among different scanner models, the following are features to look for:It can read and insert the barcode value into any type of application that is running on the workstation OS that you are using.It can write the decoded value into any standard application without the need to install special software on the workstation.It is easy to hook up with your workstation, such as via a keyboard interface or USB interface.
After you connect the scanner to your workstation, open the Bat.xlt file (you can copy this file from C:\CiscoWebs\BAT\ExcelTemplate directory on the CallManager publisher server to your location workstation) and scan the barcode of the MAC address on the back of the IP Phone. Repeat this process for all the IP Phones. The scanner records the value of the cell to which the pointer is pointing. The pointer moves automatically to the next row or to the next cell after scanning each input. After scanning the MAC address of the IP Phone, you can input the rest of the phone configuration information, such as the extension number, number of lines on the phone, number of speed dials, and so forth, into the BAT Excel template.When you are ready with all the information for the IP Phones that need to be deployed, export the data in the BAT Excel template file into a CSV file. You can then import this CSV file via the BAT application to configure the IP Phones in the CallManager.
Tool for Auto-Registered Phones Support
An alternate approach to the barcode scanners is to use TAPS in conjunction with BAT to update auto-registered phones and replace phones that have a predefined device configuration. TAPS is available on the CallManager Install Plugins page. You can use TAPS to avoid manual entry of the MAC addresses of the IP Phones in the database.TAPS requires the Customer Response Solution (CRS) server to execute a script that plays prompts and receives the digits from the user to configure the IP Phones. If you have not purchased CRS server software, you can download the optional, free-of-charge software called Cisco CallManager Extended Services, which is available on Cisco.com on the CallManager software downloads page, to provision the IP Phones using TAPS. The Cisco CallManager Extended Services includes the CRA engine that can use applications such as TAPS and Cisco Auto Attendant (AA) can use. The CRA engine that is included with Extended Services comes with a limited number of ports and does not offer you the CRA editor utility to create or modify the application scripts.The TAPS installation process copies the TAPS script (TAPS.aef) to the C:\Program Files\Wfavvid directory on to the CRA or Extended Services server.If you have a co-resident CallManager and CRS/Extended Services application installation, you need to install the TAPS only once on the CallManager publisher server. If you have CRS installed on a separate server, you need to install TAPS both on the CallManager publisher server and on the CRS server.Refer to the BAT user guide on Cisco.com for instructions on installing and using TAPS:
http://www.cisco.com/en/US/partner/products/sw/voicesw/ps556/products_user_guide_book09186a0080212686l
Physical Phone Installation
Install Cisco IP Phones in your network by connecting the Ethernet wire coming from the Ethernet jack in the wall to the back of the IP Phones. IP Phones obtain the DHCP address and TFTP server information and attempt the registration with CallManager.A complete IP Phone implementation guide is available on Cisco.com:
http://www.cisco.com/en/US/partner/products/hw/phones/ps379/products_administration_guide_chapter09186a0080080680l
To troubleshoot issues with Cisco IP Phone registration during implementation and operation, refer to the following document on Cisco.com:
http://www.cisco.com/en/US/partner/products/hw/phones/ps379/products_administration_guide_chapter09186a0080080689l
Implementing the Dial Plan
Dial Plan Architecture" section in Chapter 6 discussed the steps involved in designing the dial plan. The implementation of the dial plan consists of configuring the following dial plan components in the CallManager:PartitionsCalling search spacesRoute groupsRoute listsRoute patternsTranslational patterns
Configure your dial plan based on the final design. The next section introduces the Dialed Number Analyzer tool and explains how this tool can help you verify whether the dial plan configured in the CallManager is working according to the design.
Dialed Number Analyzer
If you have a large dial plan and complex call-routing requirements, you end up with a huge number of dial plan components. The DNA tool helps you to troubleshoot issues when you have such complex dial plans.From the CallManager perspective, you can make different types of calls, such as IP Phone-to-IP Phone calls, gateway-to-IP Phone calls, IP Phone-to-gateway calls, gateway-to-gateway calls, and calls to feature-specific patterns. The DNA tool recognizes all of these types of calls to display end-to-end details pertaining to the call. In CallManager, the calling and called party transformations affect the calling and called number. The tool considers all of these transformations configured under various dial plan elements and shows the final transformed number.The DNA tool compares the dialed digits with the list of route patterns specified in the CSS for the device selected (IP Phone, gateway, trunk) and shows you the call flow path. If the call flow path shown by the DNA tool does not match what you thought it would, you can go back, change your dial plan, and rerun the DNA tool.As discussed in the next section, you do not have to look at CallManager traces to know whether the call flow is correct. After verifying from the DNA tool that the call flow is as per your design, you can make a real call to check whether the call goes through. If you still have problems, the problem could be configurations on the terminating device or the devices outside the CallManager's control. For example, if you have an H.323 gateway, the DNA tool can show you the call reaching the H.323 gateway. The configurations on the H.323 gateway are not known to CallManager; therfore, they are not known to the DNA tool.The DNA tool is available for installation on the Cisco CallManager Install Plugins page. You can also download the tool from Cisco.com:
http://www.cisco.com/cgi-bin/tablebuild.pl/callmgr-40
Analyzing the DNA Tool Output
Recall from the discussion in the "Calling Search Space Design" section in Chapter 6 that you can configure the CSS for an IP phone device at the device level, at the line level, or at both places. If you configure CSS at both places, CallManager places the partitions that appear in the line-level CSS on the top of the list and selects the best match.Assume that you wanted the IP Phone 2001, with the following configuration, to make only local, long-distance, toll-free, and emergency calls, but no international calls:The IP phone, 2001, is in partition pt_internal.The device-level CSS is css_SJ.The line-level CSS is css_line_LD.
The partitions that CSS references are the same as the ones described in Tables 6-41 to 6-43.To test the configuration, in DNA, select Analysis > Phones and select the IP Phone whose line is 2001. Enter an international number as the dialed digits 90119187724436598. Figure 8-6 shows the output of the DNA tool.
Figure 8-6. Using the DNA Tool Example
Chapter 6, the partition at the line level comes first. Hence, the international call from the IP Phone 2001 is blocked, which is the desired result.You can analyze any dialed digits this way and test your dial plan before deploying it in the production server. In addition, before making major changes to the dial plan in the production servers, configure the changes in the lab servers and use the DNA tool for verification. If you are satisfied with the results, make the changes in the production server.
Implementing Cisco IP AutoAttendant
The IPCC Express standard solution will be deployed to use the AutoAttendant (AA) functionality to meet XYZ's requirements. This is in addition to the call center previously sized in Chapter 6 for XYZ. As mentioned in Chapter 6, in the "Customer Response Solution Server Scalability and Sizing" section, there will be a general phone number to reach a Cisco IP Interactive Voice Response (Cisco IP IVR) menu. This IP IVR menu gives the caller the choice to transfer to either the AutoAttendant or the sales support queue. The AA application is one of the application scripts available in the CRS server. The CRS server communicates with CallManager (specifically, the CTI Manager service) via the Java Telephony API (JTAPI).Applications such as AA and IP Integrated Contact Distribution (IP ICD) execute steps configured in the application scripts. The application script that is responsible for the AutoAttendant is aa.aef, and it is stored in the CRS server.Figure 8-7 shows the call flow that describes the sequence of steps involved in invoking AA. In Figure 8-7, the Computer Telephony Integration (CTI) route point is a virtual device that can receive multiple simultaneous calls for application-controlled redirection. In this case, the application is AA. Multiple simultaneous users, up to the configured number of CTI ports for the application, can dial the number assigned to IP AA and have their calls routed to a user's extension or the operator's phone.
Figure 8-7. AA Call Flow
[View full size image]

1. | An external user dials 408-555-3877 from the phone. |
2. | The PSTN sends the last ten digits of the Direct Inward Dial (DID) number (4085553877) to the gateway, which is configured to present the last four digits to CallManager. |
3. | The call reaches CallManager on the CTI route point DN 3877. This CTI route point is assigned to the JTAPI trigger in the CRS server. |
4. | The route points and CTI ports are configured in the CRS server such that all calls received at the CTI route point number are routed through the CRS server's JTAPI subsystem to its application scriptin this case, aa.aef. |
5. | The CRS server uses the available CTI port to accept the incoming call. |
6. | The CTI port performs a consultative transfer to an IP phone or to an operator based on the user's response to the application prompts. |
Every application has one CTI route point and a few CTI ports associated with it. The call center application will have a CTI route point, and the IP IVR application will have another CTI route point.Design and implementation of AA involves the following tasks:Identify the number of CTI ports required.Identify the CTI route point number.Identify the operator extension.
The "Customer Response Solution Server Scalability and Sizing" section in Chapter 6 covered the sizing of CTI ports required for the call center. Additional CTI ports are required to handle AA calls.In Figure 8-6, in addition to a CTI port group, you need to provision media control groups on the CRS server. While designing the CRS server, you have three choices regarding the provision of media:Cisco Media TerminationNuance Asynchronous Speech Recognition (ASR)None (media-less calls)
When determining the number of licenses required for the CRS server, note the following:All calls configured to use media are counted against the number of licensed IVR ports.All calls configured to use ASR are counted against the number of licensed ASR ports.Calls configured to use no media are not counted against media licenses and are free to be processed.
A media-less call is a call for which no media interaction is expected. Examples of applications that require no media are E.911 redirect and simple queuing. Examples of calls that require media interaction are calls that prompt the user to enter digits, calls that get DTMF digits, and calls that use speech recognition.You can put a media-less call on hold and play Music on Hold (MoH) for the caller. CallManager plays the MoH stream for the caller while the caller is waiting in the queue.The CRA server does not generate or play the music stream for the caller. The media-less call does not use as much CPU as the other types of calls that require access to media. Hence, avoiding media allows you to increase the capacity of the CRA platform.Refer to the following URL to find out how to play MoH to IP ICD callers in a queue:
http://www.cisco.com/en/US/partner/products/sw/custcosw/ps1846/products_configuration_example09186a0080159eb5.shtml
Configuration Steps for AA
The AA will be deployed using the aa.aef script provided with the IPCC Express standard server. Configuration of AA involves the following:Configurations in the CallManagerConfigurations in the CRS server
Detailed steps of installing and configuring the applications are available on Cisco.com. The following sections discuss only high-level configuration steps.
Configurations in the CallManager for AA
The following three configuration steps are required to configure the AutoAttendant. The prerequisite for executing these steps is to complete the initial CRA setup. (Refer to the product documentation on the initial setup.)
1. | Configure the CTI route point. On the CallManager Administration page, choose Device > CTI Route Point. (Refer to Table 6-40 in Chapter 6 for the CTI route point that is assigned to the AA application.) |
2. | Configure the CTI ports. On the CallManager Administration page, choose Device > Phone. Select Add a New Phone and select the phone type as CTI Port. (Refer to Table 6-40 in Chapter 6 for the directory numbers assigned to CTI ports used for the AA application.) |
3. | Create a user in the DC directory. On the CallManager Administration page, choose User > Add a New User to create the user and associate the CTI route point and the CTI ports with the user. |
Table 8-1 lists the settings for the CTI route point, CTI ports, and JTAPI user information that need to be configured in the CallManager server to set up the AA application.
Configurations in the CRS/CRA Server for AA
The following configurations are required on the CRS/CRA server to enable the AutoAttendant application. Refer to Figure 8-7 to understand how the following configuration steps fit into the overall call flow. These steps require use of the CRA Admin page, which you can access at the following URL:
http://IP_ADDR_OF_CRA_SERVER/appadmin
1. | Configure the AutoAttendant application. On the CRA Admin page, choose Applications > Configure Applications. |
2. | Configure the JTAPI provider. On the CRA Admin page, choose Subsystems > JTAPI > JTAPI Provider. |
3. | Configure the CTI port group and JTAPI call control group that consist of CTI ports that are defined in Table 6-40 (DN 1611 to 1630). On the CRA Admin page, choose Subsystems > JTAPI > CTI Port Groups. |
4. | Configure one media group consisting of 20 media ports. On the CRA Admin page, choose Subsystems > Cisco Media. |
5. | Configure the CTI route point trigger with DN 3877. On the CRA Admin page, choose Subsystems > JTAPI > JTAPI Triggers. |
Table 8-2 lists the configuration settings that correspond to the preceding five configuration steps that need to be performed in the CRS server to set up the Cisco IP AA application.
Implementing IP ICD
IP ICD is an IP-based Automated Call Distribution (ACD) system. IP ICD queues and distributes incoming calls destined for a group of CallManager users, which are also call center agents. Forty agents will have the capability to log in to the queue to take calls from the IP ICD.However, based on the XYZ call center sizing, only 20 agents need to be logged in at any one time. The majority of the agents will be in San Jose. Seattle will have two agents, and Dallas will have one agent. At each shift, one supervisor agent will be logged into the queue.Similar to the AutoAttendant script (aa.aef), IP ICD has a default script, icd.aef. You can customize the default script to your needs by using the CRA Application Editor, shown in Figure 8-8, that comes with CRS. The CRA Application Editor provides a drag-and-drop interface and several steps (including accepting the call, transfering the call, and so on.) that make it user friendly for developers.
Figure 8-8. CRA Application Editor
[View full size image]

Figure 8-9. Sales Support ACD Call Flow of XYZ
[View full size image]

Figure 8-10. Modified icd.aef Snapshot to Include Day of Week and Time of Day Routing
[View full size image]

Configuration Steps for IP ICD
IP ICD will be deployed using the modified icd1.aef script, as shown in Figure 8-10. Configuration of IP ICD involves configuration of the following:CallManagerCRS serverCRS server that is specific to IP ICD
The detailed steps that you need to follow to install and configure the applications are available on Cisco.com. The following sections discuss only high-level configuration steps.
Configurations in the CallManager for IP ICD
The steps in the CallManager for configuring IP ICD are similar to those for configuring the AutoAttendant. Table 8-3 explains the various configuration steps specific to IP ICD.
Step Number | Configured Device | Field | Value |
---|---|---|---|
1 | CTI Route Point | Device Name | ICDRP |
Description | ICD Route Point | ||
Device Pool | DP-SanJose | ||
CSS | CSS-SJ | ||
Location | SanJose | ||
CTI Route Point DN | Directory No. | 3888 | |
Partition | P-Internal | ||
CSS | CSS-Restricted | ||
Display (InternalCaller ID) | ICD | ||
External Phone Mask | 408555xxxx | ||
2 | CTI Port DeviceYou need to create multiple CTI ports. Each device will have a unique name (CTIPort1, CTIPort2, and so on). | Device Name | CTIPort# |
Description | CTI Ports | ||
Device Pool | DP-SanJose | ||
CSS | CSS-SJ | ||
Location | SanJose | ||
AAR CSS | None | ||
CTI Port DNEach CTI port will have a unique directory number (1601, 1602 .. 1610).The CFB and CFNA of the first CTI port, 1601, will be set to 1602, and the CFB and CFNA of the second CTI port, 1602, will be set to 1603.The CFB and CFNA for the last CTI port will be set to the first one, 1601. | Directory No. | 16011610 | |
Partition | P-Internal | ||
CSS | CSS-Restricted | ||
AAR Group | None | ||
Call Waiting | OFF | ||
CFB | 1602 | ||
CFNA | 1602 | ||
Display (Internal Caller ID) | ICD CTI Port | ||
3 | Associate ICD CTI Route Points and CTI Ports to the JTAPI UserWhen you are doing device association, ensure that the No Primary Extension and No ICD Extension check boxes are checked. | User ID | jptapiuser |
Device Association | 3888, 16011610 | ||
4 | Add an RM JTAPI UserWhen you are doing device association, ensure that the No Primary Extension and No ICD Extension check boxes are checked. | First Name | rmjtapi |
Last Name | user | ||
User ID | rmjtapiuser | ||
PIN | 12345 | ||
Password | Cisco123 | ||
Enable CTI Applications Use | Checked | ||
Device Association | Associate the call center agent phone DNs. | ||
5 | Assign ICD Extension to Call Center Agent UsersClick the ICD Extension radio button on the CallManager Device Association page for all call center agent users. | Device Association | For all the call center users, click the ICD Extension and Primary Extension radio buttons. The Primary Extension radio button can be clicked for all other users. |
1. | Configure the CTI route point. On the CallManager Administration page, choose Device > CTI Route Point. (Refer to Table 6-40 for the CTI route point assigned to IP ICD.) |
2. | Configure the CTI ports. On the CallManager Administration page, choose Device > Phone. Select Add a New Phone and select the phone type as CTI Port. (Refer to Table 6-40 for the directory numbers assigned to the CTI ports to be used by IP ICD.) |
3. | Associate the CTI route point and the CTI ports with the Jtapiuser created in Table 8-1. On the CallManager Administration page, choose User > Global Directory. Search for the Jtapiuser and complete the device association. |
4. | Create an RM JTAPI provider in the CallManager. This is a user account in the CallManager. All the IP Phone users that are call center agents are associated with this user. On the CallManager Administration page, choose User > Add a New User. The RM JTAPI user is another provider (refer to Figure 8-6) that monitors the following devices:The agent phone devices, such as IP PhonesCTI ports that are configured for Cisco IP SoftPhones onlyMedia-terminated desktop devices Through this interface, the CRA server learns about the agent states such as work, reserved, ready, and not ready. |
5. | Identify the call center agents and, in the CallManager directory in the device association, click the ICD Extension radio button for those users. On the CallManager Administration page, choose User > Global Directory and update the ICD extension for all the call center users. |
Notice that in Chapter 6, in the "Customer Response Solution Server Scalability and Sizing" section, the call center sizing calculation (see Figure 6-4) resulted in six IVR/CTI ports. However, ten CTI ports are provisioned so that the system can handle more callers.
Configurations in the CRS Server for IP ICD
The following configurations are required on the CRS/CRA server to enable IP ICD:
- Configure ICD. On the CRA Admin page, choose Applications > Configure Applications.Configure a CTI port group and JTAPI call control group that consists of CTI ports that are defined in Table 8-3 (DN 1601 to 1610). On the CRA Admin page, choose Subsystems > JTAPI > CTI Port Groups.Configure one media group consisting of ten media ports. On the CRA Admin page, choose Subsystems > Cisco Media.Configure the CTI route point triggers with DN 3888. On the CRA Admin page, choose Subsystems > JTAPI > JTAPI Triggers.
Step Number | Configured Device | Field | Value |
---|---|---|---|
1 | Configure ApplicationYou can customize the welcome prompt and ICD queue prompts by recording your own and uploading it into the CRS server. | Application Type | Cisco Script Application |
Name | ICD | ||
Description | ICD Application | ||
ID | 1 | ||
Maximum No. of Sessions | 10 | ||
Enabled | Yes | ||
Script | Icd1.aef | ||
Welcome Prompt | ICDWelcome.WAV | ||
Queue Prompt (prompt played while waiting in the queue) | ICDQueue.WAV | ||
Delay While Queued (specifies time between prompts) | 30 | ||
CSQ | SalesQ | ||
Default Script | System Default | ||
2 | CTI Port Groups | Group ID | 1 |
Description | ICD-CTI Port Group | ||
Associated CTI Ports | 16011610 | ||
CSS for Redirect | Redirecting Party | ||
3 | Cisco Media | Group ID | 1 |
Description | ICD-Media Port Group | ||
No. of Channels | 10 | ||
4 | JTAPI Trigger | CTI Route Point DN | 3888 |
Language | System Default | ||
Application Name | ICD | ||
Maximum No. of Sessions | 10 | ||
Idle Timeout | 5000 ms | ||
Enabled | Yes | ||
Call Control Group | ICD-CTI Port Group | ||
Primary Dialog Group | ICD-Media Port Group | ||
Secondary Dialog Group | ICD-Media Port Group |
Configurations in the CRS Server That Are Specific to ICD
Follow these steps to configure the ICD subsystem:
Table 8-5 shows the configuration settings that need to be performed on the CRS server for the ICD subsystem.
Step Number | Configured Device | Field | Value |
---|---|---|---|
1 | Configure RM JTAPI ProviderThis is the user ID configured in CallManager in Table 8-3, Step 4. | RM JTAPI Provider (s) | 10.1.2.1, 10.1.3.1 |
User ID | rmjtapiuser | ||
Password | Cisco123 | ||
2 | Skills | Skill Name | SK-Sales |
3 | Resource Group | Resource Group Name | RG-Sales |
4 | Assign Skills to Resources and Group the Resources into Resource Groups | Resource Group | Assign all the resources to RG-Sales. |
Assigned Skills | Assign the users to SK-Skills. | ||
Competence Level | Varies from user to user. | ||
Automatic Available(Enabling this field makes the user immediately ready after finishing the current ICD call.) | Enabled | ||
5 | Contact Service Queue (CSQ)Setting the CSQ service level to 5 does not display the agents whose competency levels are below 5 on the CSQ Configuration page. | CSQ Name | CSQ-Sales |
Contact Queuing Criteria | FIFO | ||
Automatic Work | Enabled | ||
Resource Pool Selection Model | Resource Group | ||
Service Level | 5 | ||
Service Level Percentage | 70 | ||
Resource Selection Criteria | Longest Available | ||
Resource Group | RG-Sales |
Call Center Agent and Supervisor Login Options
Agents can log in to the ICD queue in any of the following ways:Using the Cisco IP Phone Agent service on the IP PhoneUsing the Cisco Agent Desktop on the hard IP PhoneUsing the media termination desktop on the IP SoftPhone
Refer to the Cisco Desktop Product Suite Installation Guide for instructions on how to configure various agent login applications:
http://www.cisco.com/application/pdf/en/us/guest/products/ps1846/c1097/ccmigration_09186a00801f028a.pdf
The supervisor agents will use the Supervisor desktop agent.
Implementing IP IVR
In addition to the AA and IP ICD published DID numbers, XYZ has another DID number (408-555-3800) to an IVR system that offers the following three menu choices:Transfer to an AutoAttendantTransfer to sales service supportTransfer to an operator
Figure 8-11 shows the XYZ-IVR.aef script deployed to fulfill the main menu function.
Figure 8-11. Snapshot of XYZ-IVR.aef Script
Table 6-40 in Chapter 6 for the internal numbering plan). The JTAPI call control group is shared with the AA application. This JTAPI call control group has already been created (refer to Table 6-40 in Chapter 6).
Implementing IP Phone Services
Cisco IP Phone models such as 7960, 7940, and 7970 have the ability to access diverse information such as weather, stock quotes, news updates, or any other information received in eXtensible Markup Language (XML) format. You can access these additional services by pressing the Services button on the Cisco IP Phone. You need a web server to host these services that can accept and process the HTTP requests coming from the Cisco IP Phones and send the response in XML format.The Cisco IP Phone Services SDK provides sample software libraries and scripts that you can deploy readily in your IPT network. You can download the SDK free of charge from the following URL:
http://www.cisco.com/cgi-bin/dev_support/access_level/product_support
Cisco does not recommend installing this SDK on the CallManager servers. You can use a dedicated web server to host this application along with other IP Phone services such as weather, stock lookup services, and so forth. The next section looks at implementing the corporate directory access from Cisco IP Phones using the LDAP Search COM Server, which is bundled in the SDK.
Corporate Directory Access Through IP Phones
Chapter 1, "Cisco IP Telephony Solution Overview," provided information on the CallManager directory architecture and described the two possible scenarios when working with the CallManager directorydirectory access and directory integrationand the pros and cons of each approach.There are limitations on the type of directories supported for integration (currently, Microsoft AD and Netscape iPlanet), but no such limitations apply for providing directory access to the endpoints such as IP Phones and SoftPhones. To provide directory access to the corporate directory from IP Phones, you do not need to integrate CallManager with the corporate directory. By using LDAP queries, users can obtain the information about the other users from the existing LDAPv3-complaint directory through the IP Phones and SoftPhones.XYZ already has a corporate Active Directory deployment in its enterprise. It requires the directory access/lookup to the existing AD from the IPT endpoints and wants to enable only a few IP Phone services in the network.Figure 8-12 illustrates directory access. (In this example, the access is provided to a Cisco IP Phone). The IP Phone user performs a user search against an LDAP directory (such as a corporate directory) by pressing the Directories button or Services button on the Cisco IP Phone, and receives numerous matching entries. From the results of the search, the IP Phone user selects a person and presses the Dial softkey on the Cisco IP Phone to make a call.
Figure 8-12. Directory Access for IP Phones

Implementing Directory Access for IP Phones
Figure 8-13 shows how the directory access setup works. The web server is the machine that is running the LDAP Search COM Server application for the directory access and that hosts other IP Phone services. The IP Phones use HTTP to send requests to the web server. The responses from the web server contain some specific XML objects that IP Phones interpret and display on the screen.
Figure 8-13. IP Phone Directory Access Through LDAP COM Server Access
[View full size image]

Installing and Configuring the LDAP Search COM Server
The sample IP Phone services scripts that are provided in the SDK are Active Server Pages (ASP) scripts. Hence, the web server must be running on Microsoft Internet Information Services (IIS). To build a new web server, select any server hardware platform. Install Windows 2000, IIS, and all the latest service packs and security hot fixes. Follow these steps to install and configure the LDAP Search COM Server:
1. | Run the downloaded installation program, CiscoIPPS_SDK_v3.3.3.exe, on the web server. As previously cited, the SDK download page is http://www.cisco.com/cgi-bin/dev_support/access_level/product_support. You should stop the IIS service on the web server prior to the installation of the SDK to avoid copy violation errors. You have to restart the IIS service after completing the installation of SDK. |
2. | The installation program copies DLL files to the C:\WINNT\System32 directory and creates a new directory, C:\CiscoIPServices. It also copies a few sample IP Phone services scripts written in ASP to C:\CiscoIPServices\ASP. |
3. | The installation program copies the LDAP Search COM Server into the C:\CiscoIPServices\COMservers\LDAPSearch directory. This directory contains the ldapsearch.dll and the ASP script ldapsearch.asp that do the lookups to the external LDAP directory. |
4. | Move the C:\CiscoIPServices\COMServers\LDAPSearch directory under the C:\CiscoIPServices\ASP directory. |
5. | To install the LDAP Search COM Server:Open a command prompt on the web server and change the directory to C:\CiscoIPServices\ASP\LDAPSearch.Register the COM server by entering regsvr32 LDAPSearch.dll. Figure 8-14 shows the procedure for installing the LDAP Search COM Server. Figure 8-14. Installing the LDAP Search COM Server[View full size image] ![]() |
6. | The installation program creates in IIS a virtual directory with the name CiscoIPServices that points to the C:\CiscoIPServices\ASP directory. |
To see the virtual directory on the IP Phone services web server, choose Start > Programs > Administrative Tools > Internet Services Manager. Under Default Web Site, you can see the virtual directory CiscoIPServices, as shown in Figure 8-15.
Figure 8-15. CiscoIPServices Virtual Directory in IIS
[View full size image]

Modifying the ldapsearch.asp Script
The next step is to modify the C:\CiscoIPServices\ASP\LDAPSearch\Ldapsearch.asp script and configure it to look up the corporate directory.Figure 8-16 shows the parameters that require modification in the ldapsearch.asp file. As you can see, the password is in clear-text format. Therefore, the best practice is to create a separate user account for the directory search lookup instead of using an administrator account or any other account that has higher privileges. Table 8-6 describes the parameters in detail.
Figure 8-16. Modifying the Parameters in ldapsearch.asp

Attribute | Value | Description |
---|---|---|
ldapserver | ldap.xyz.com or the IP address of the corporate directory server. | Enter the IP address or host name of the corporate directory server. If you are using a DNS name, ensure that phones can resolve the name to the IP address. |
ldapport | Default port that the corporate directory server will be listening on for LDAP queries. | You can obtain this information from your corporate directory team. For Microsoft AD, the port number is 389. |
ldapuserid | Enter the user ID. This is required to authenticate to the corporate directory. Do not use the Administrator or equivalent ID. Create a new user that requires far fewer privileges. | For AD, the user ID is the display name. If you create a user with first name IPT and last name DirUser, AD puts the display name as "IPT DirUser" with a space in between. Ensure that you include the right display name here.Some directories require a full canonical name, which has the format CN=Administrator, dc=xyz,dc=com |
ldappassword | Password. | Enter the password required along with the user ID to authenticate to the LDAP server and obtain the LDAP queries. |
ldapsearchbase | The user search base for the directory search. | Modify this to match the directory structure that is defined in the corporate directory server.The full canonical name can be written as "cn=Users, dc=xyz, dc=com";If you have users at multiple containers or multiple organizational units (OUs), set ldapsearchbase to point to the highest level. This ensures that the search includes all OUs. |
Configuring IP Phone Services on the CallManager
After you modify the ldapsearch.asp file, the next step is to define the Directory Lookup service in the CallManager. To define a new IP Phone service, on the CallManager Administration page, choose Feature > Cisco IP Phone Services and click Add New IP Phone Services. This opens the Cisco IP Phone Services Configuration window, shown in Figure 8-17.
Figure 8-17. Defining IP Phone Services in CallManager
[View full size image]

http://IP_ADDR/CiscoIPServices/ldapsearch/ldapsearch.asp
You can use the IP address or host name of the web server. If you are using a host name, ensure that IP Phones can communicate with the DNS server to resolve the name-to-IP address mapping.As mentioned earlier in this section, Directory Lookup is one of the services that is bundled in the IP Phone Services SDK. Other services include Calendar, Measurement conversions, and World Clock. A few services, such as Stock Ticker and World Clock, require access to the Internet for proper functioning.Table 8-7 describes the URLs required to enable some of these services.
Service Name | Service URL |
---|---|
Directory lookup | http://IP_ADDR/CiscoIPServices/ldapsearch/ldapsearch.asp |
Measurement conversions | http://IP_ADDR/CiscoIPServices/measurement/measurementmenu.asp |
Calendar | http://IP_ADDR/CiscoIPServices/Calendar/cal.asp |
Clock | http://IP_ADDR/CiscoIPServices/clock/clock.asp |
http://CallManager_IP_ADDRESS/CCMCIP/xmldirectory.asp
To access the previous setting, on the CallManager Administration page, choose System > Enterprise Parameters.The parameter that points to the directories is URL Directories. You can change this URL and point it to the Directory Lookup service URL shown in Table 8-7. If you change it at this level, when users press the Directory button, the queries for the directory lookup refer to the corporate directory instead of the CallManager DC directory.If you want to keep both DC directory lookup and corporate directory lookup, you have to create IP Phone Directory lookup service, as described in Table 8-7. This enables users to view the CallManager DC directory by pressing the Directory button on the IP Phone. To view the corporate directory listing, users press the Services button and choose the Directory Lookup service.
Subscribing Users to IP Phone Services
After you define the IP Phone services, subscribe the users to the services by using any one of the following options:Ask users to go to the CCMuser page (http://CallManager_IP_Address/ccmuser) and subscribe themselves.Use the BAT to update the subscriptions on all phones.Manually update the subscriptions on all phones.
Troubleshooting IP Phone Services
If you get errors on the IP Phone when you press the Directory button to access the corporate directory lookup or any other IP Phone services, review the IIS log file stored in the IP Phone services web server under the C:\Winnt\System32\LogFiles\w3svc1 directory.Following are some common problems and possible resolutions:The most common problem encountered when troubleshooting the corporate directory access is that someone has entered invalid credentials in the ldapsearch.asp file, as shown in Figure 8-16. If you encounter this problem, you can find the following lines in the log file:2004-02-05 17:37:07 10.17.168.73 - 172.21.51.217 80 GET /CiscoIPServices/Ldapsearch/ldapsearch.asp action=list|128|800a0031|Invalid_credentials 500 Allegro-Software-WebClient/3.12This error message clearly indicates that the supplied credentials entered in the ldapsearch.asp file are insufficient for the web server to contact the corporate LDAP server. Possible problems are entry of the wrong username, password, or IP address of the LDAP server. Check the settings and correct any issues.When you press the Services button on the IP Phone, if you get a Host Not Found error, check the URL Services service parameter on the CallManager Administration page. To access this parameter, on the CallManager Administration page, choose System > Enterprise Parameters. The typical value of this parameter is as followshttp://CallManager_Name/CCMCIP/getservicesmenu.aspIf you are using a name instead of an IP address in this URL, ensure that phones can resolve the name by contacting the DNS server. Otherwise, use the IP address.After you press the Services button on the IP Phone and the phone displays the list of subscribed services, if you get the Page Not Found error when you select a service, check whether the URL that is configured for the IP Phone services in the CallManager is correct. To test whether this URL is correct, open a web browser and type the same URL that you defined in the IP Phone Services page. If the web browser also reports that the page is not available, check the IIS log file and see whether the URL is right. If you are entering a wrong URL, the log file will have the following entry:2004-02-05 20:12:54 10.17.168.73 - 172.21.51.217 80 GET /CiscoIPServices/Ldapsearch/ldapsearc.asp |-|0|404_Object_Not_Found 404 Allegro-Software-WebClient/3.12As you can see, an attempt was made to access URL that does not exist on the server. In this example, the ASP filename entered was wrong. It should have been ldapsearch.asp instead of ldapsearc.asp. Correct this URL error in the CallManager in the IP Phone Services Definition page, and update the subscriptions.If you still have problems, try restarting the IIS service on the CallManager and on the IP Phone services web server.Some older ldapsearch.asp and other scripts have a known bug, which should be fixed in the next release of the SDK. The scripts mistakenly reference version 1 of the LDAP Search COM Server, but it cannot be found because the new SDK ships with version 2.Edit the ldapsearch.asp script and change the following line:var s = new ActiveXObject("LDAPSEARCH.LDAPSearchList.1");tovar s = new ActiveXObject("LDAPSEARCH.LDAPSearchList");Removing the .1 causes IIS to load the latest version (which is 2) of the LDAP Search COM Server.The older ldapsearch.asp file also has another problem in which the ldapsearchbase variable is not included. Add the ldapsearchbase variable line in two places:
var ldapserver = "10.1.1.1";
var ldapport = "389";
var ldapuserid = "IPT User";
var ldappassword = "cisco123";
var ldapsearchbase = "CN=Users, dc=xyz, dc=com"
s.server = ldapserver;
s.port = ldapport;
s.AuthName = ldapuserid;
s.AuthPasswd = ldappassword;
s.searchbase = ldapsearchbase;
NoteCisco TAC does not provide support for problems with the scripts in the Cisco IP Phone Services SDK. If you still have problems, you can open a case with Developer Support Central:http://www.cisco.com/en/US/products/svcs/ps3034/ps5408/ps5418/serv_how_to_orderl