Friday, November 28, 2008

Cisco CallManager Change Server IP Address

This post applies to the Cisco CallManager Linux appliances, not the older 4.X Windows based systems. I had the opportunity to test it on version 6.1.1. See below:

There are some posts hanging around the Internet regarding changing the IP address on a CallManager server running in VMWare. The problem reported is that although you can very easily change the server address from an SSH session using set network ip eth0 your_server_ip_address your_subnet_mask or from Cisco Unified OS Administration, you cannot login to the Cisco Unified CM Administration page after the change.

You will be able to SSH to the new address but when you run utils service list you will find Cisco CallManager is stopped. If you haven't noticed by now, your phones are also dead (or running on SRST if so configured).

Do not panic. You probably need to get your hands on a serviceability guide.

Let's assume your CallManager was at and worked. Then you changed it to and it didn't...

1. Use the same procedure you used to set a new IP address on your server and break it to set it back to the old one (change it back to from

2. Reboot the server (if not forced to automatically).

3. Access the Cisco Unified CM Administration web page via the old IP address (

4. Go to System | Server and change the IP address there (change it from to This is what you didn't do the first time.

5. Access the Cisco Unified OS Administration page at the still functioning original address (

6. Go to Settings | IP | Ethernet and change the address to the new one there (from to

7. Wait for system to reboot.

8. Enjoy your server at the new address (

Monday, October 27, 2008

Display message class in Outlook / IPM.Note.voice.unity

In Outlook 2007, highlight your inbox (or any folder),
Choose View | Current View | Customize Current View,
Click Fields,
Choose All Mail Fields from the drop down,
Move Message Class to the right,
Change your Number of Lines to an appropriate value, or move up the Message Class.

Enjoy viewing your message classes!

Saturday, October 25, 2008

C# Excel OLEDB and Could not find installable ISAM

So you have chosen to manipulate Excel spreadsheets with C#, and rather than using Excel Automation you are using OLEDB. Now you find you receive "Could not find installable ISAM" when bebugging.

I will bet it has to do with escaping the quotes surrounding the "Extended Properties" in your connection string. Personally, things worked fine for me util I added the HDR or IMEX variables.

The Excel references at are very helpful and indicate the quotes are an issue, but don't provide specific working examples.

Here you are:

String sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Test.xls;Extended Properties=\"Excel 8.0;HDR=No;IMEX=1;\"";

or maybe more helpfully:

String sFile = "C:\\Test.xls";

String sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + sFile + ";Extended Properties=\"Excel 8.0;HDR=No;IMEX=1;\"";

Notice the \" escapes surrounding Excel 8.0;HDR=No;IMEX=1;

Hope that helps.

Friday, September 26, 2008

Unity 5.X default template

Before you get excited and add all your Unity subscribers, please take a moment to at least review the default subscriber template.

Other than maybe changing default passwords if you haven't thought about it during the install, you may notice interesting items in the call transfer section.

The default for all types (standard, closed, alternate) is "No (send directly to greeting)". Check the "Yes, ring extension for:" if you really need most mailboxes to transfer to lines. Then build them.

Wednesday, September 24, 2008

Altigen OE 4.5 Agent Log Out on Reboot

For those of you happy with and hanging on to your old Altigen software level, here's a tip for when you need to rebuild.

On 4.5, agents are logged out of workgroups when a system reboots. There is a registry setting to maintain their status, or even automatically log them all in after a reboot.

The key is located at:

HKLM\Software\Altigen Communications Inc.\Altiware\DisableAgentAutoLogout

0 = logout all agents on reboot (default)
1 = maintain agent login status
2 = login all agents after reboot (this is what older versions did)

You need to edit the key and reboot the server (not just restart the services).

Saturday, September 13, 2008

Cisco 7900 7941 hookswitch problems

Personally, I have found more failing hookswitches on 7941 phones than I am comfortable with. The symptom is a fully functioning phone if you use the speaker phone, but the inability to go off hook on, or to switch to the handset.

The official Cisco document entitled "Best Practices for Cleaning and Troubleshooting Cisco IP Phone Hookswitch" indicates the hookswitch is self cleaning, and the contacts use a "wipe action" to self clean the contacts. The suggestion is to flash the hookswitch rapidly "a dozen times or so to clean the contacts".

It appears that a.) they likely have a problem with their hookswitch design, given they have a special document to assist in troubleshooting them, and b.) either their documentation is incorrect, or they have re-engineered the hookswitches.

Here's the hookswitch I found inside my 7941:

I don't see anything self cleaning or wiping about it.

What it is is one of those collapsing rubber nipples that short a contact on a circuit board below it when pressed. Yuck. When the handset is on hook, the nipple is not pressed, so I can't imagine it wearing out. It is at rest most of the time. I also can't see it being affected by the environment (dirt, humidity, etc.) since the rubber nipple seals the area where the contact is made.

The single wire loop in the picture is actually the spring that actuates the hookswitch. Yuck.

PLEASE NOTE: I am not an employee of Cisco, nor am I authorized by anyone to repair Cisco phones. Read at your own risk!

You CAN disassemble a 7941 fairly easily if fixing it yourself is your only option. Please check with your telecom support staff or Cisco partner before to examine other options first.

1. Unplug all the cables from the phone (Ethernet, headset, handset, power, etc.).

2. Remove the footstand from the phone.
a. Press the large button on the side of the phone to recline it all the way.
b. Flip the phone to view it from the back.
c. Use a screwdriver or like to push two "sliders" to the center of the phone. They are located in a groove at the bottom of the footstand, just above the "AUX" port and headset port. These can be quite difficult to move, but when you do, the footstand should fall right off.

3. Remove four phillips head screws from the back of the phone. Two are recessed and previously covered by the footstand. The other two are under the rubber feet at the bottom of the phone. If you take care when peeling off the rubber feet, they can be reattached with the adhesive that remains on them.

4. At the bottom of the phone, separate the front and rear portions of the phone by about a half inch or so. You do not have to separate them more than is comfortable. DO NOT try to break the phone wide open, like a clam.

5. While separated, pull the back of the phone "down" and the front of the phone "up", as if you are separating an Oreo cookie. The idea is to disengage plastic hooks holding the front and back together. If you open the phone like a clam, they will break. You will need to slide the front and back pieces in separate directions about a half inch. If you do it correctly, the front and back will now separate easily.

From there I would suggest:

1. Disengaged one end of the wire spring and straighten it out slightly. When reinstalled, this will create extra pressure on the hookswitch when off hook, creating extra pressure on the rubber nipple thing, and potentially making contact with the circuit board that wasn't being made before.

2. Remove and fiddle around with the rubber nipple. There are 4 rubber tentacles that poke through the circuit board, holding the rubber nipple on. Since it's difficult to get them back through the board, I suspect that they may not have been installed with much care originally. If the nipple wasn't tight against the board, it wouldn't make contact with the circuit board when the phone was off hook.

Steps one and two above ultimately provided me with a once again working hookswitch.

Saturday, September 06, 2008

Run an Access report with a filter built from list box values

So let's say you have a report called "All_Crosstab_2_NoID_LEVEL_Reorder" and you want to run the report using a filter with variables defined by a list box called "lstPlayers".

Here's the code behind a button called "cmdReport1" on a form with the list box. The filter will not exist if no list box items are chosen, will be "Player_ID = 'first selected listbox value'" if only one value is chosen, and will be "Player_ID = 'first selected listbox value' OR Player_ID = 'second selected listbox value' OR ..." if more than one are selected.


Private Sub cmdReport1_Click()

stDocName = "All_Crosstab_2_NoID_LEVEL_Reorder"

'### define basis of query
strPreWhere = "Player_ID = "

bolFirstSelected = False

For iCount = 0 To lstPlayers.ListCount - 1

If lstPlayers.Selected(iCount) Then

'### build report filter for 0 (no strWhere),
'### 1 (bolFirstSelected = False)
'### or more (bolFirstSelected = True) listbox selections
If bolFirstSelected = True Then

strWhere = strWhere & " OR " & strPreWhere & lstPlayers.Column(2, iCount)


strWhere = strPreWhere & lstPlayers.Column(2, iCount)
bolFirstSelected = True

End If

End If

Next iCount

DoCmd.OpenReport stDocName, acViewReport, , strWhere

End Sub

Nothing really new to see here, but I thought someone might appreciate seeing the whole thing spelled out.

Tuesday, July 08, 2008

NEC UltraMail RPC Server Unavailable

The scenario is when starting NEC UltraMail / Voice Mail Administration version 3,0,1,11, you receive errors related to the RPC server being unavailable, and MS Events like "DCOM was unable to communicate with the computer 'YOURCOMPUTERNAME' using any of the configured protocols."

MS will suggest you check a DCOM registry setting to verify what protocols are available, and the entry will be empty. Nice.

That has nothing to do with it.

Search your registry for "DOSGui". You should find an entry like "HKEY_USERS\bunch of cryptic stuff\Software\CTL Inc.\DOSGui\SaveSettings".

The VMSMachineName REG_SZ there must equal your machine name. Do an IPCONFIG /ALL and if your name is MyComputer.MyDomain.Local, enter the "MyComputer" portion only. Change the VMSMachineName to your real computer name.

If your IT department likes to re image machines rather than troubleshoot little application problems, they may be changing machine names or leaving residue from the image sources in your new image. This will break UltraMail.

Friday, June 27, 2008

7921 Factory Reset keystroke

To set to factory settings:

Arrow Down to Settings
Select Phone Settings or press 1
Press **2
Quickly press Yes to confirm (left soft key)

Wednesday, May 14, 2008

CME Call Waiting and Overlay DNs version 2

It's a common scenario:

Two 7941 phones that have a personal extension on button 1 and need to receive general PSTN calls on button 2. The line on button 2 will be shared on both phones. Both phones need to ring on an incoming call. When the a call is answered on button 2, the second call to button 2 needs to ring on both phones. When two calls are answered on button 2, the third incoming call needs to be forwarded to an autoattendant. Any call unanswered (first or second) needs to forward to the autoattendant as well.

The key is creating two ephone-dns with the same number, using huntstop channel on both but no huntstop on one, and preference 1 on the second. Then call-forward noan both to voicemail, but only call-forward busy on the second. Then set call-waiting ring on both. Now, when associating these ephone-dns with an ephone button, use c rather than o.

Below is a sample of two phones with three shared ephone-dns (two numbers) overlayed on button 2. All calls ring all the time unless the button is already handling 2 calls.


ephone-dn 100 dual-line
call-waiting ring
number 2100
label MBL 2100
description MBL 2100
name MBL 2100
call-forward noan 2223 timeout 24
huntstop channel
no huntstop
hold-alert 30 originator
ephone-dn 101 dual-line
call-waiting ring
number 2101
label AA Zero Out
description AA Zero Out
name AA Zero Out
call-forward noan 2222 timeout 24
hold-alert 30 originator
ephone-dn 102 dual-line
call-waiting ring
number 2100
label MBL 2100
description MBL 2100
name MBL 2100
preference 1
call-forward busy 2223
call-forward noan 2223 timeout 24
huntstop channel
hold-alert 30 originator
ephone 4
username "user2104"
mac-address 0000.0000.0000
type 7941
button 1:104 2c100,102,101
ephone 6
username "user2106"
mac-address 1111.1111.1111
type 7941
button 1:106 2c100,102,101

Sunday, February 17, 2008

AsteriskNOW downloads

I don't know the current state of AsteriskNOW, given people are, or at least are looking to, make money now with the Asterisk solution.

In case is off line or disappears (it seems so as I type), you can still get the various flavors of the AsteriskNOW ISOs at

On a personal level, it would be nice of those of you well equipped to use the BitTorrent download and seed when possible.