RSS

Interop 2013 – HP’s UC SDN Application for Lync

Thanks to HP Networking* I got to attend Interop last week and it was quite the experience.  Besides being inundated with tons of cool technology, ample opportunities to chat with some incredible engineers, and some really good food, I actually saw a proof of concept SDN application for voice that was definitely intriguing.

Now I’m one of those who has heard the phrase SDN enough times in the last few months that I often want force-choke anyone who dare whispers anything about network programmability in my presence.  Up until recently I have focused pretty exclusively on voice, and while route/switch engineers are wondering if this SDN thing is really going to affect them, I guarantee it isn’t even a blip on the radar for most voice engineers.

That’s why this UC&C SDN Application for Lync from HP was interesting.  You see, HP has taken SDN and paired it with Lync – now the SDN controller finds out from Lync about the endpoints and how much bandwidth a dynamic desktop sharing session needs, and then marks packets and ensures they are treated properly along their network journey. Sort of reminds me of RSVP but without all the heavy configuration. It also gets the bonus of receiving stats on the flow for quality reporting.

There’s a decent demo here:  http://www.youtube.com/watch?v=byMtYpmh1xQ

I was going to write up how this solution was working, but I found this post which already does an excellent job of that *and* has a nice pretty pictures: http://www.nojitter.com/post/240153039/hp-and-microsoft-demo-openflowlync-applicationsoptimized-network

Now not being a Lync guru, I am not sure how helpful those that are Lync gurus think this solution will be, but the proof of concept gets me thinking about what SDN might look like for all our other latency sensitive voice applications. To me it looks like voice engineers might have to pay attention to SDN after all.

*Disclosure: HP paid my expenses to Interop and arranged for me as a blogger to see presentations, demos, and experts on their products. While they did an excellent job providing information and resources for their invited bloggers, they didn’t pay for me to say nice things about them. Opinions are of course my own because I am far too stubborn to have it any other way.


Published 05/13/2013

 
Leave a comment

Posted by on 2013/05/13 in SDN

 

Tags: , ,

Unity Connection tidbits: forwarding voicemails by extension

Here’s a question I get asked quite often, “how do I forward a voicemail to someone by extension instead of by name?”

As it turns out, most people would rather have their fingernails pulled out one by one with a set of rusty pliers than to have to type in the first and/or last name of a user into a phone keypad.

Unity Connection does make a provision for extension dialing instead of named dialing when addressing/forwarding messages, but it is a global setting, so everyone will need be onboard*. I highly doubt this will be an issue…

Just mosey on over to System Settings > Advanced > Conversations and look for Disable Spelled Name Searches**. Should look something like this:

Disable Spelled Name Searches

Just check the box and you’re done!***  Yay you!

*See the comments section, Mike was kind enough to point out how to do this on an individual basis.  I’ve never been asked to do this for a single person, but it’s good to know it can be done.

**I desperately wish they would have called it something like Forward Voicemails by Extension (I know, clever, right?) to make it easier to find, but alas, now you know…

***Note this is not a feature you get to use with voice recognition, see documentation here: http://www.cisco.com/en/US/docs/voice_ip_comm/connection/8x/gui_reference/guide/8xcucgrg110.html#wp1168437

Published 4/10/2013

 

Tags: ,

Your name please…

One of the woes we voice engineers deal with on nearly every deployment is the compelling need users have to not only see the calling number of the individual bothering them via telephone, but also the name.  I assume this is so they can add the names of the really annoying callers to a list that gets mailed to the North Pole every December.  (hey, those telemarketers deserve that coal they get in their stockings, no question about it…)

While every deployment is different and I am far too lazy to outline every possible configuration for calling name to show up for users, I will highlight the importance of the command set below being in the router configuration if you are dealing with H323 gateways, calling name is being delivered in the Facility IE, and your inbound calling name isn’t being displayed on the phone*:

voice service voip
h323
h225 display-ie ccm-compatible

How will you know you need this command set?

Well, let’s say you’ve done your due diligence and confirmed with the carrier that calling name *is* being sent. Please don’t skip this step, you will beat your head against your desk until unconscious when you find you’ve been troubleshooting a calling name issue for days and the customer never ordered the service on the line.

Let’s say you have also confirmed, with my favorite debug of all time debug isdn q931, that you are seeing calling name in the debug.  In some cases, like the one we are discussing, calling name may be coming in the Facility IE, and you should see it clearly in the debug**.  It will look something like this:

RX <- FACILITY pd = 8  callref = 0x018C
Facility i = 0x9F8B0100A117020101020100800F41524E4F4C4420414D592020202020
Protocol Profile =  Networking Extensions
0xA117020101020100800F41524E4F4C4420414D592020202020
Component = Invoke component
Invoke Id = 1
Operation = CallingName
Name Presentation Allowed Extended
Name = AMY

Typically if you have gotten this far and your inbound calling name is still not showing, you are nearly there.  Adding the aforementioned h225 display-ie ccm-compatible command should do the trick.

Note that if you are dealing with a gateway running really old IOS, you may not see this command available.  You’ve got to be on at least version 12.4(20)T or else you will be one sad panda. Once you enter these commands, you’ll not only see calling name in the debugs, but your customer should see it on the phone as well and think you are a miracle worker, as we voice engineers often are.

*If you love yourself you’ll be dealing with H323 voice gateways and not MGCP. MGCP, however, does have some nifty check boxes to get  Facility IE calling name working – however, that remains material for another blog post.

**If you don’t see calling name in the debug, then you likely need to enter a few commands to make the Facility IE delivery work. Your serial interface should look something like this:

interface Serial0/0/0:23
no ip address
encapsulation hdlc
isdn switch-type primary-ni
isdn incoming-voice voice
isdn supp-service name calling
isdn outgoing display-ie

Try the above commands if you are seeing something like the debug output below. Also be certain that your switch type supports Facility IE, not all switch types do. On a related note, switch type must be agreed upon between yourself and the carrier, don’t believe you can change one end and the other end will just work. It’s voice mind you, rarely do things just *work*…

Facility i = 0x9F8B0100A11D02010106042B0C0900801254656C65547261636B204F7574626F756E64
Protocol Profile =  Networking Extensions
0xA11D02010106042B0C0900801254656C65547261636B204F7574626F756E64
Component = Invoke component, Unsupported operation

***Additional FWIW – I recently did an upgrade from 6.1 to 8.6 and inbound calling name wasn’t a problem on 6.1 without the ccm-compatible command, but after the upgrade calling name only worked with this command added. I also found this link from 2010 to helpful when troubleshooting this type of issue: https://supportforums.cisco.com/docs/DOC-8873

Published March 3/26/2013

 
8 Comments

Posted by on 2013/03/26 in Calling name, H323 gateways

 

Tags: , , , ,

You old softie…

If you already know how to add a softkey template to a 3905, 8961, 9951 running as a SIP phones, you get a gold star, a free pass, and an opportunity to move along, there’s really nothing to see here.

But, if you’re like me, a voice engineer that spends a good deal of time supporting older releases and older models of phones, here’s something you might not have run into as of yet.

To configure a softkey template on one of these newer phones running as SIP, your old ways are useless and will leave you feeling puzzled and shunned by devices that should obey your every whim.

Why is this?  Well, even though you can still apply a Softkey Template on the phone configuration page of these new SIP phones, the device will just ignore it, much like an insolent teenager ignores a parent telling them to get a hair cut or turn that music down.

So what’s the deal?

Let me introduce you to the concept of a Feature Control Policy.  A Feature Control Policy allows you to select options that you are traditionally used to defining on a softkey template, but because everyone *loves* change, you now get to define them here – in the place nobody bothered to tell you about.

To create a Feature Control Policy, go to Device -> Device Settings -> Feature Control Policy and Add New.

Yours will look something like this:

Only yours will be wrong if it looks like this.

You see, it isn’t enough that this process changed entirely from the old way of doing it, BUT, the process has one more trick for you to overcome.  Just checking the Enable Setting box for the feature you want to show up on your phone doesn’t cut it.  You gotta go that extra step and check the Override Default box for your option as well.  Why?  Because the interface designers have a dastardly sense of humor is my guess.  Whatever the reason, check the column on the left and the column on the right for your desired feature, otherwise the results will be rather disappointing.

To apply this beautiful gem of a Feature Control Policy you just created, you need to assign it to the phone. You can do so on the phone configuration page. Be sure to go ahead and reset your device.

So that’s it. Note that there is no re-ordering of buttons in this brave new world.  Your button order is predetermined and no you cannot bribe it to display otherwise, no matter how many beers are offered to the networking gods.

Published 11/13/2012

 

Tags: , , , ,

Review: INE Voice Bootcamp, the two week experience

So many of you regular readers have caught onto the fact that I recently attended the INE Voice Boot Camp and I know many of you are anxiously awaiting details on what the experience was like and what to expect should you decide to attend the class yourself. So let’s get to it!

First up – class structure.  This is not a class for the faint of heart. It is not the class for those who work for 4 hrs and then need a nap.  It’s the class for those of you who work an intense 12+ hrs for days in a row and still maintain some bit of mental clarity at the end of it all. Maybe not a lot of mental clarity, but some nonetheless.

Officially class start time was 9am and lectures ended by 4-5pm.  Unofficially, students came as early as 6-7am, at least that’s the rumor. I wasn’t there to verify, because as we all know, morning people are mutants. As far as the evenings went, students always stayed as late, sometimes as late as 10-11pm. Personally I need some sleep to function, so I often called it quits about 8 or 9 pm – just as my brain began to melt out my ears.

On the same subject of structure, I liked the fact that the labs, which were setup pretty much like what I am told you would encounter in the actual lab exam, were open on the weekend and accessible via VPN at all times. It was nice to go in for a few hours on the weekend and work through some of the topics that were giving me grief. Yes, that might just have been all of the topics, but not the point.

Shifting gears, let’s talk about class content. Class was a refreshing mix of lecture and lab and blessedly free from the dreaded death-by-power-point. Of course all the major topics on the blue print were covered, but one of the things I enjoyed about this class was it didn’t stop at just here’s-how-to-pass the exam.  We covered how to think critically about tasks, configurations, and design. Yes, granted, a lot of it was how-to-think-like-a-proctor, but so much more – how to be a better voice engineer overall. This appeals to the part of me who knows it’s not just about certification but about being at the top of your game as an engineer.

So what about the teacher Mark Snow? Well, other that the class consensus that he has really great hair*, I’d have to say Mark knows his stuff cold. With that being said, he didn’t spoon feed students and he didn’t just give us the answers even though that would probably at times have been easier.  He provided a great many helpful lab suggestions and methods for being successful, but I would stop short of calling them tricks or quick tips.  You aren’t going to pass the CCIE Voice lab, or any other CCIE lab with a basketful of helpful hints, it’s hard work and mastery over the topics that will get you there and Mark provided excellent guidance on how to achieve that goal.

Lastly, I’d like to give a shout out to my awesome fellow students who not only provided great feedback in the class but were also great resources to one another, and to myself especially. When working through labs, these guys were invaluable to each other when trying figure out what on earth was going wrong in a configuration that should be working and wasn’t. We’ve all been there. Some of us more so than others.

So there you have it – was it a positive experience? Absolutely! Did it get me closer to my CCIE voice? Definitely.  In fact, I really just embarked on this study quest and I feel miles ahead.  I’m really glad I went when I did, because I now know how and where to focus my study efforts, what my weakness are, what my goals should be, and how I can measure my preparedness level accurately.

So for the INE Voice boot camp experience, I’m giving it two thumbs up, awarding it 5 gold stars, clicking the Like button, marking it as a Favorite, giving it some Klout, etc…

*Yes, records will indicate that this was an actual topic of discussion at one point. And can you really make an argument against it?

**My awesome class comprised of extremely talented voice engineers: Miguel, Mike, Matthew, Justin, Trent, Mark, Israel, Vincent, and Juan. And of course, myself.  I’m pretty sure you can tell which one I am.

***In the interest of full disclosure, INE did pay for my seat in the class and my company paid my expenses, but once again I’ll point out neither paid me to say nice things about them. If the class had been horrible, trust me, I would have let you know, with of course, as much snark as I could possibly fit into one scathing review. I’m talented like that.

 

Published 10/29/2012

 
8 Comments

Posted by on 2012/10/29 in CCIE, INE Voice Bootcamp

 

Tags: ,

Tricks full of awesome: monitoring voicemail ports remotely

Here’s a neat trick I picked up in INE voice boot camp this week*: you can monitor Unity Connection ports from a telnet session.

Why would you want to do this?

Well, one, you are studying for the CCIE voice lab and you know that you won’t have access to the Unity Tools website to download the port monitor tool during the exam.

Two, you like cool and easy ways to do things and you think installing the port monitor tool is a terrific hassle**. I happen to fall into both categories.

Now to get this going – first be sure to turn on remote port monitoring in Unity Connection. Go to System Settings -> Advanced -> Conversations ->

Remote Port Monitor Parameter

You will see Enable Remote Port Status Monitor Output at the top if you’re in CUCM 7.x. Just check the box and enter the IP address of the router or host you will be initiating the telnet session from.

Then go to your router (or device of your preference) and issue this command:

telnet 10.10.10.10 5000 /source-int lo0 (note the IP address is the IP address of your Unity Connection server and the source-int should match the IP address you put in Unity Connection)

Here’s a nice sample of the output before I created a voicemail account for a user – you can see the caller’s extension and the voicemail pilot. You can also see the name of the voicemail port being used. Also note that when the system doesn’t find a voicemail box it plays the Opening Greeting instead.

Branch1#telnet 10.10.10.10 5000 /source-int lo0
Trying 10.10.10.10, 5000 … Open
CallData, 2, CallerId=1001, CalledId=8000, RedirectingId=, Origin=16, Reason=1, CallGuid=A409F619FAF34289B7F7092AAA6719A2, CallerName=My User, LastRedirectingId=, LastRedirectingReason=1024, PortDisplayName=PortGroup1-002
Application, 2, 1001, AttemptSignIn
State, 2, 1001, State – AttemptSignIn.cde!Dummy
State, 2, 1001, Event is [NULL]
Application, 2, 1001, PHTransfer
State, 2, 1001, State – PHTransfer.cde!LoadInfo
State, 2, 1001, Event is [TrueEvent]
Application, 2, 1001, PHGreeting
State, 2, 1001, State – PHGreeting.cde!PlayGreeting
Display, 2, 1001, Call answered if needed
Display, 2, 1001, Playing greeting for Call Handler: Opening Greeting
State, 2, 1001, Event is [HangupEvent]
State, 2, 1001, State – PHGreeting.cde!DoHangup
State, 2, 1001, Event is [HangupEvent]
Display, 2, 1001, Idle

Now here is the output after I created the voicemail box. You can see that it recognizes the user has a voicemail box and prompts the user to authenticate:

CallData, 2, CallerId=1001, CalledId=8000, RedirectingId=, Origin=16, Reason=1, CallGuid=EE22CD20CC714BF7A723D24A4153B306, CallerName=My User, LastRedirectingId=, LastRedirectingReason=1024, PortDisplayName=PortGroup1-002
Application, 2, 1001, AttemptSignIn
State, 2, 1001, State – AttemptSignIn.cde!Dummy
State, 2, 1001, Event is [NULL]
Application, 2, 1001, SubSignIn
Display, 2, 1001, Subscriber Sign-In
State, 2, 1001, State – SubSignIn.cde!AnswerPhone
State, 2, 1001, Event is [TrueEvent]
State, 2, 1001, State – SubSignIn.cde!AuthenticateUser
Application, 2, 1001, –>SubAuthenticate
State, 2, 1001, State – SubAuthenticate.cde!TryCounter
State, 2, 1001, Event is [NULL]
State, 2, 1001, State – SubAuthenticate.cde!GatherID
State, 2, 1001, Event is [FalseEvent]
State, 2, 1001, State – SubAuthenticate.cde!LoadSubscriberMinimalData
State, 2, 1001, Event is [NULL]
State, 2, 1001, State – SubAuthenticate.cde!GatherPIN
Application, 2, 1001, –>SubAuthenticatePW
State, 2, 1001, State – SubAuthenticatePW.cde!ValidatePwd
State, 2, 1001, Event is [HangupEvent]
Application, 2, 1001, <–SubAuthenticatePW
State, 2, 1001, Event is [HangupEvent]
Application, 2, 1001, <–SubAuthenticate
State, 2, 1001, Event is [HangupEvent]
Display, 2, 1001, Idle

And one final output I thought was interesting (yes I am a geek). Here is what it looks like when you enter the wrong pin, then enter the wrong ID and wrong pin when prompted again.

CallData, 2, CallerId=1001, CalledId=8000, RedirectingId=, Origin=16, Reason=1, CallGuid=8667665A30304959991818F0EE9C47B7, CallerName=My User, LastRedirectingId=, LastRedirectingReason=1024, PortDisplayName=PortGroup1-002
Application, 2, 1001, AttemptSignIn
State, 2, 1001, State – AttemptSignIn.cde!Dummy
State, 2, 1001, Event is [NULL]
Application, 2, 1001, SubSignIn
Display, 2, 1001, Subscriber Sign-In
State, 2, 1001, State – SubSignIn.cde!AnswerPhone
State, 2, 1001, Event is [TrueEvent]
State, 2, 1001, State – SubSignIn.cde!AuthenticateUser
Application, 2, 1001, –>SubAuthenticate
State, 2, 1001, State – SubAuthenticate.cde!TryCounter
State, 2, 1001, Event is [NULL]
State, 2, 1001, State – SubAuthenticate.cde!GatherID
State, 2, 1001, Event is [FalseEvent]
State, 2, 1001, State – SubAuthenticate.cde!LoadSubscriberMinimalData
State, 2, 1001, Event is [NULL]
State, 2, 1001, State – SubAuthenticate.cde!GatherPIN
Application, 2, 1001, –>SubAuthenticatePW
State, 2, 1001, State – SubAuthenticatePW.cde!ValidatePwd
Display, 2, 1001, Subscriber sign-in failed. Alias – myuser. Extension – 1001. Caller Id – 1001.
State, 2, 1001, Event is [FalseEvent]
Application, 2, 1001, <–SubAuthenticatePW
State, 2, 1001, Event is [FalseEvent]
State, 2, 1001, State – SubAuthenticate.cde!TryCounter
State, 2, 1001, Event is [NULL]
State, 2, 1001, State – SubAuthenticate.cde!GatherID
State, 2, 1001, Event is [NULL]
State, 2, 1001, State – SubAuthenticate.cde!GatherPIN
Application, 2, 1001, –>SubAuthenticatePW
State, 2, 1001, State – SubAuthenticatePW.cde!ValidatePwd
Display, 2, 1001, Subscriber sign-in failed. Alias – . Extension – - Not Available -. Caller Id – 1001.
State, 2, 1001, Event is [FalseEvent]
Application, 2, 1001, <–SubAuthenticatePW
State, 2, 1001, Event is [FalseEvent]
State, 2, 1001, State – SubAuthenticate.cde!TryCounter
State, 2, 1001, Event is [NULL]
State, 2, 1001, State – SubAuthenticate.cde!GatherID
State, 2, 1001, Event is [FalseEvent]
State, 2, 1001, State – SubAuthenticate.cde!LoadSubscriberMinimalData
State, 2, 1001, Event is [NULL]
State, 2, 1001, State – SubAuthenticate.cde!GatherPIN
Application, 2, 1001, –>SubAuthenticatePW
State, 2, 1001, State – SubAuthenticatePW.cde!ValidatePwd
Display, 2, 1001, Subscriber sign-in successful. Alias – . Extension – - Not Available -. Caller Id – 1001.
State, 2, 1001, Event is [Expired]
State, 2, 1001, State – SubAuthenticatePW.cde!ReturnExpired
State, 2, 1001, Event is [Expired]
Application, 2, 1001, <–SubAuthenticatePW
State, 2, 1001, Event is [Expired]
State, 2, 1001, State – SubAuthenticate.cde!ReturnExpired
State, 2, 1001, Event is [Expired]
Application, 2, 1001, <–SubAuthenticate
State, 2, 1001, Event is [Expired]
State, 2, 1001, State – SubSignIn.cde!AuthenticateUser_Expired
State, 2, 1001, Event is [NULL]
State, 2, 1001, State – SubSignIn.cde!RunSignInUtil
Application, 2, 1001, –>SubSignInUtil
State, 2, 1001, State – SubSignInUtil.cde!CheckAccountLocked
State, 2, 1001, Event is [FalseEvent]
State, 2, 1001, State – SubSignInUtil.cde!CheckExpiredAndNew
State, 2, 1001, Event is [NewUser]
State, 2, 1001, State – SubSignInUtil.cde!RunEnrollmentConv
Application, 2, 1001, –>SubEnrollment
State, 2, 1001, State – SubEnrollment.cde!PlayEnrollmentIntro
State, 2, 1001, Event is [TTStarEvent]
State, 2, 1001, State – SubEnrollment.cde!ReApplyRoutingRules
State, 2, 1001, Event is [NULL]
Application, 2, 1001, <–SubEnrollment
State, 2, 1001, Event is [NULL]
Application, 2, 1001, <–SubSignInUtil
State, 2, 1001, Event is [NULL]
Application, 2, 1001, AttemptSignIn
State, 2, 1001, State – AttemptSignIn.cde!Dummy
State, 2, 1001, Event is [NULL]
Application, 2, 1001, PHTransfer
State, 2, 1001, State – PHTransfer.cde!LoadInfo
State, 2, 1001, Event is [TrueEvent]
Application, 2, 1001, PHGreeting
State, 2, 1001, State – PHGreeting.cde!PlayGreeting
Display, 2, 1001, Call answered if needed
Display, 2, 1001, Playing greeting for Call Handler: Opening Greeting

*Credit for this tip goes to classmate Israel, thanks to him for bringing it to the class’s attention!

**Last time I tried to install the port monitor tool for Unity Connection on a Windows VM, it crashed the VM.  This may or may not be blamed on the tool itself, but after having to restore from snapshot, I am a bit wary of installing the tool.

 
8 Comments

Posted by on 2012/10/19 in CCIE, Unity Connection

 

Tags:

How can I screw this configuration up? Let me count the ways…

In case you ever get to feeling you’re pretty darn good at your job, just go and sit a CCIE boot camp.  That’ll sober you up in no time at all.

While I may be a whiz at voice implementations, troubleshooting phones and gateways, and heaven forbid, fixing that faxing problem you’ve been having, voice boot camp has a way of taking me right back to the starting line. In other words, I have spent the week getting schooled by boot camp. But in a good way. I think.

I’m seriously amazed, and simultaneously alarmed, at how much knowledge and methodology slips away when presented with tasks in a lab exam format. Maybe it’s the sketchy requirements and time constraints, but many of the mistakes I made this week working through the labs I know (or at least desperately hope) I would not have missed in real life.  I’m a professional for goodness sake!

For your entertainment value, and of course, educational value (mostly the former), I present to you some highlights from this week’s lab blooper reel.

I can’t call out from the PSTN phone. I hear dial tone when I take the phone off hook, but I get a fast busy on all calls I try to make.  Maybe there’s some class of restriction on the phone.  Maybe the dial peers are wrong. Or maybe it’s just that it’s a PSTN phone and I should quit prefixing numbers with a 9. Duh!

Inbound calls to the phones are not working. Maybe it’s my SIP trunk.  Maybe it’s my translations and transformations for globalized call routing. Maybe it’s a codec issue. Or maybe it’s just that I created the internal extensions in a partition that I didn’t add to any calling search spaces. Duh!

This one is one of my favorites. Scratching my head, I can’t figure out why calls aren’t matching my CUCM translation pattern: 9.[1-8]……… . I count the wildcards, 9 wildcard dots just like there need to be for the dialed string. 9 wildcard dots. DOTS. DOTS! In CUCM! Yeah, those might be wildcards in IOS, but CUCM has a difference of opinion.  Maybe I should use Xs. Just like ever other translation/route/transformation pattern in CUCM ever! Duh!

I cannot make a 911 call from a branch phone.  I check the translation pattern, I check the transformation patten, I check the route pattern.  I’m looking for all the ways I could have screwed up routing the call out.  What I am not looking for is whether my MGCP gateway is still registered. Which it wasn’t. And thank you Mark Snow for not laughing out loud on that one. And while we are on the subject, why on earth would I have changed the name of my MGCP gateway??!!  That must have been the smoking crack portion of the day...

Okay, I think that’s all the embarrassment I am prepared to own up to in this episode.  You may now go about your day feeling far superior in your knowledge and troubleshooting skills.

If you’ve got some good “well, duh!” moments from class or real life, I’d love to hear them.  It’d go along way to healing my self-esteem, plus it’s always fun to laugh at the other guy.

Published 10/13/2012

 
6 Comments

Posted by on 2012/10/13 in CCIE

 

Tags: ,

 
Follow

Get every new post delivered to your Inbox.

Join 97 other followers