We've got a CallManager 4.2 implementation and have been having some issues. We are working on slowly moving away from our old Opt 81c to Cisco VoIP. Right now we are still using our PBX to handle all our incoming calls. This is the way it?s setup.
Opt 81c <---> 2851 2-QSIG T1?s <---> CallManager
The 2851 is setup as an MGCP gateway.
Everything seems to be working and setup ok except we?ve run into a few issues here and there, the biggest on being voice mail. We have Call Pilot integrated with Nortel and it has worked for the most part.
When calling someone with a VoIP phone, you hear their external greeting. If you leave a message and they check it, they hear 91 + the 4 digit extension as the calling number. Also, if you try to login using just the # it doesn?t work unless you add 91xxxx (xxxx being their extension) to the login information in call pilot. I?ve checked everything I know and we have our PBX support personnel looking at it as well.
I was doing some debugging and noticed something interesting. When I call from VoIP to the PBX, this is what I get on debug isdn q931.
Calling Party Number i = 0x0081, '4451'
Called Party Number i = 0x80, '7393'
When I call the other direction?
Progress Ind i = 0x8183 - Origination address is non-ISDN
Calling Party Number i = 0x4980, '7393'
Called Party Number i = 0xC9, '4451'
It concerned me that the VoIP to PBX call didn?t have the Plan or Type information filled in.
Any help would be greatly appreciated!
I was reading some other information provided by Cisco that showed the same results I was getting when doing a debug isdn q931.
I'm just wondering if there is anything I can do to help the PBX think that the call is internal. I've got everything that I can think of set for On-net between the two.
I just figured out how to do this but you may not be pleased with the results. The problem is that when CCM places a call via ISDN to your PBX, it is not doing it in a way that allows the recipient to realize it's an internal call. There are two parameters involved: ISDN Numbering Plan and the Type of Number. CCM is dynamically setting them both to "Unknown".
On the gateway configuration page you can configure the Calling Party IE Number Type and the Calling Numbering Plan. You can change the Number Type to "Subscriber" and the Numbering Plan to "Private" and that will solve your problem. However, it will introduce another problem. From that point on, the receiving system will think that *all* calls are internal calls, which can cause more problems with voice mail greetings.
I have a TAC case open about this. The only place you can configure these settings is on the gateway configuration page, but that's not a good place for it in my opinion. You could have internal calls going over the QSIG trunk that need to be set to Private/Subscriber, but you may also have local, LD, or international calls going across that need to be set to ISDN/National, or something else. CCM does that dynamically, but it's picking the wrong settings for internal calls.
I think my TAC engineer took the day off. I'll let you know if I hear anything.
You could try using the ISDN map command under the serial interface and change your numbering plan/type based on destination E164 address.
Can the isdn map command change both the called and the calling parameters? It looks like it can but the command reference isn't overly clear.
It looks like I could use a regular expression to match four-digit dialing. That ought to work. Using an IOS regexp, how would I do this? Would I use "...." as my match? If so, something like this would work:
isdn map address .... plan private type subscriber
If that sets the parameters for both the called and calling parties then we're set. That's all I need it to do.
I put the command in exactly like you listed above, but I haven't had much luck. I was doing some more searching and ran into this...
"In CallManager, MGCP Gateway Configuration, Call Routing Information, Outbound Calls,
change the following to UNKNOWN (instead of Cisco CallManager):
1. Called party IE number type unknown*
2. Called Numbering Plan*
I just tried it, as well, and wasn't able to get it to work. The person who told me about it was sure that it work on MGCP gateways with L3-backhaul configured, but the commands don't seem to do anything at all.
Manually configuring these parameters in CCM isn't an option for us. If you set it one way, Meridian Mail thinks all calls are internal; set the other way, MM thinks all calls are external. It's a lose-lose scenario for us.
I was really hoping the isdn map command would work because that gives us a greater degree of control over these parameters, but it doesn't look like it works if L3-backhaul is configured. I'll run this past TAC and let you know what I find.
According to TAC, the "isdn map" command does not work on MGCP gateways. That really stinks. My TAC case is being moved over to the Cisco AVVID group. We'll see if they have any ideas about this.
No problem. What really stinks is that that functionality exists on H323 gateways, but Cisco did not add the same functionality to CCM for MGCP gateways. That may be the only way to solve the problem we're having.
I really thought we were on to something there.
It's another in the list of things that mgcp doesn't support.
I don't know how you have things setup, but this might work for us. We have one T1 set mainly for outgoing calls and the other set for incoming. We could set the outgoing on the cisco side and that might work. Unless things don't get passed properly when routed to voicemail.
I'd be interested to hear what TAC has to say!
We made the changes you suggested above to hardcode the Plan and Type and it's almost working 100% now.
When someone calls and leaves a message they still hear external greeting but when they login it plays the proper extension and they are able to log in using the # key for the mailbox number.
I guess it's the best of both worlds right now. :)
Yes, when I do a debug I see them both being sent. When the call gets sent to voicemail I get a 3rd set that has Unknown for the Plan and Type. I've set both Caller and Called for both T1's. At least at this point most of our clients won't notice it since the access works better now.
I recently had a similar experience. Here's the config line that fix it:
isdn map address . plan isdn type unknown
For whatever reason the Nortel SL100 would not pass the call from the 7960 until I forced the type to "unknown". Up to that point it was identified as "National" but I was getting this error "Sep 1 07:19:43: ISDN Se1/0/0:23 Q931: RX <- RELEASE_COMP pd = 8 callref = 0x809A
Cause i = 0x809C - Invalid number format (incomplete number)"
Is your gateway configured for H323 or MGCP? I was under the impression that those commands don't work when the gateway is setup as MGCP.
I just found a Service Parameter called "Numbering Plan Info" that may affect this behavior. The default setting is "1", but according to the online help file, changing it to "2" should set the Numbering Plan to "private". I tried it on 4.1(3) and it didn't do a thing. I think it's broken. However, you might want to give it a shot in 4.2 and see if it works.
If you have time, try changing that parameter to "2" and then set your gateway settings back to the default so CCM dynamically chooses those parameters. I'd be very interested to hear if calls from IP phones are now set as "Private".