Threats of Tornados and Redistribution, Oh my: The final day of Narbik’s Training Class

Today started out a typical day in Narbik’s class – lots of labbing and mind-bending topologies, today’s subject being QoS. Until today, I have never sat through a lecture on or read a book about QoS that wasn’t just a slight step up from a root canal in terms of pain and frustration. However, today’s lab demos really helped clarify what various methods of QoS were really doing, and as a bonus, I didn’t feel an overwhelming desire to be anesthetized while listening to the explanation.  My loose grasp on previously confusing terms like single rate, two color policers versus dual rate, three color policers was significantly strengthened.

We then made an attempt to talk redistribution.  Now apparently Narbik has a history with redistribution, when he tried to talk about it in Poland, they ended up with a fresh coat of snow on the ground, and today Dallas nearly took a tornado for it. The warning sirens went off, literally, and we all got to trudge down to the first floor of the hotel and cram into a small space with a few hundred other guests. As Narbik himself said, “sh** happens when you do redistribution.” Hilarious and so true!  When we got back to class, we looked at about a half dozen scenarios where redistribution sent a perfectly good network into the crapper. Incredibly fascinating to see and start to really understand the vulnerabilities inherent in the processes.

Now a typical Narbik class would not have ended after that, stories of Thursday nights are legendary – the night usually ending about 4:30am or so I am told. Since, however, we missed our window for the last mock lab attempts while slumming around in the tornado shelter, we decided to finish the lectures for the entire week and class came to an early close at a mere 7pm. Fortunately all the students get an opportunity to make up the mock lab attempt on our own within the next couple of months, so it all works out.

I can honestly characterize this class as one of the best educational experiences I have had.  Much of this stems from the philosophy of learning espoused by Narbik himself and shows in the quality of his teaching and methods. His pronounced idea that he is creating and shaping better engineers, not just folks that can pass a test really resonates with me.  He talked about how engineers are like artists and that how we do our work is our signature. He went on to say how we should pride ourselves in the quality of our work even when no one is watching or grading it. I just couldn’t agree more.

On that note, I’d like to thank Eman Conde and CCIE Flyer one last time for giving me the opportunity to sit the class, couldn’t be more grateful for the experience!

Published 5/8/2014

Disclaimer: While Eman and CCIE Flyer were very generous to grant me a seat in this class and I am very grateful for it, my opinions are totally my own, as all redheads are far too stubborn to have it any other way.

 

Can I get a hardware upgrade please? Narbik’s CCIE training, Day 3

Pretty sure I need a vAmy upgrade on memory and disk space to make it through the end of this fabulously exhausting week.  It’s the third 12-14 hour day of class and I have resigned myself to seriously constrained sleeping and eating.  I have been smart enough to bring snacks for the afternoons and that definitely helps keep energy levels up, especially since dinner is a luxury this CCIE training class opts out of entirely.

We covered BGP and MPLS in-depth today and I really wish I had these lectures years ago when studying for the CCIP track. Narbik certainly has a gift for explaining the overall big picture without glossing over the intricacies of how things work.

I was encouraged when he presented one scenario and I immediately saw the impact and suggested a possible solution – the solution he was just about to present.  Always nice to be on the right track!

Today was also focused on developing a troubleshooting process – a methodology that could be worked over and over again and help keep me from stumbling around and getting lost on troubleshooting tickets.  Definitely want to work on some flow charts/lists/processes for this and commit them to memory.

Also learned some pretty cool tricks for troubleshooting BGP today, pretty sure I will be seeing AS numbers in my sleep. Which actually isn’t that unusual for me…

Narbik says tomorrow is our long day, this worries me and I think I’d better get some sleep…

Published 5/7/2014

Disclaimer: While Eman and CCIE Flyer were very generous to grant me a seat in this class and I am very grateful for it, my opinions are totally my own, as all redheads are far too stubborn to have it any other way.

 

 

 

 

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

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.

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