Search This Blog

Tuesday, March 31, 2015

The dust in the wind

Not much going on at work lately but I figured I would post something anyways just to show I didn't abandon this blog.  For starters, I am selling my CCNP Voice lab on Ebay.  I am at a point now where I just need to be working on the latest and greatest and running CUCM 10 just isnt viable in demo mode for me. 

On the tech side of things at work, as I said, things are a bit slow but I have been keeping busy with learning Python and voice stuff.  Last Friday I had a customer inform me that his 911 test call out the local FXO was not showing the correct ANI to the local PSAP.  I took a look and I believe one of two things happened.  First, 911 somehow reported the wrong number or two, the POTS line attached to his gateway isn't the number he thinks it is.

I did some checks on CUCM and found nothing wrong, after all, this site is set up in the exact same manner as the other 12 sites.  Each one has a dedicated voice gateway for FXO dialing out which is 911 only while the rest of the calls hit the T1 PRI.  Easy enough you might say, well try explaining that to someone who isn't as familiar with voice.  So after a bit of discussion I took it upon myself to check RTMT.  RTMT never lies and will show you how the call left and how it appeared.  Sure enough, the call completed as it should have which indicates one of the two things I noted before.

In fact, I just got an email confirming that there was a cross-connect issue.  I cannot stress enough the proper troubleshooting techniques as an engineer.  Following a set standard, whether it yours or someone else's (that works of course), is paramount.  Keep your head clear, systematically eliminate one thing at a time until you come to the last possibility and then that must be the problem.  As someone once said, "Consider, and when you have considered, then act."

Tuesday, March 24, 2015

The Cisco ELM (Enterprise License Manager) and the rehost debacle

It is of no surprise by now that the same UCS box I have been fighting with over the last few weeks still has on-going issues.  Last night I finished an ELM rebuild.  For those of you that do not know what ELM, it is basically the PLM of CUCM 9.X.  So what is PLM then?  Well if you haven't any experience with CUCM 9-10 then that would be a good reason why you don't know.  Basically, Cisco went away from device licenses on CUCM 8 to an ELM/PLM user based license system.  There is still a licensing server and manager, it's just that the server is now either a dedicated VM or sits along side with CUCM or Unity.  The good thing about the ELM in standalone mode is that if your CUCM eats it or Unity craps the bed nothing is affected, just do a restore.  With ELM you upload the PAKs to the server or still go do it the old school way through Cisco and then put the information in the ELM/PLM. 

The major problem with ELM is that if it eats the dirt you have to rebuild it from scratch.  This isn't normally a problem until you run into a deployment where they didn't statically set the MAC on the VM.  Guess what is tied to the hash which includes the MAC on the VM?  You guessed it, the licensing.  I rebuilt the ELM and didn't bother to check to see if their existing ELM was statically set.  I was happy, everything stood back up the restore worked and I could see the keys.  I changed over the ELM control to the new one and BAM, right in the kisser, licensing conflicts. 

I could have just changed the MAC on the new VM to what the old dynamic one was set to but you can't if the old ELM is still turned off and sitting on the ESXi.  I never delete old VMs until I am absolutely sure I no longer need them and thank goodness I didn't.  I wrote down the info, shutdown the new ELM and fired the old one back up.  It works, just goes into read-only mode every 4 days...  So now, I need to get in contact with Cisco and see if they can re-host the license.  The second barrier is this unit doesn't have software SmartNet on the contract, so I might be out of luck.

It's funny how everything melts down with this particular site.  I'm not sure if it's just a run of hardcore bad luck or if the UCS boxes are cursed from Cisco saying upgrade me to 10.6 (10.5.2).  Either way, I'll be glad once this debacle is over.

Friday, March 20, 2015

Cisco and Python

I attended the Cisco Geekfest in Austin a few weeks ago since we are pretty close. The opening introduction on day 2 had Cisco preaching we, as engineers need to know some basic programming.  The code they were showing off for us to know was python and some java.  I have personally dabbled a little in Java but to me that programming language is a mess and got difficult quick.  I think part of the problem was me not being able to draw out the loops.

Python on the on the other hand I started picking up two days ago.  I'm already to the point where I can write a while or for loop with little to no issues.  Now I haven't done anything crazy yet since I am still in the crawl phase but it's coming along well.  For those of you that don't know any programming like me, I suggest Python as a first language as it is extremely forgiving and tells you exactly what the problem is.  Look below for an example on something I screwed up in my code.

c:\Python34>python calculator.py
Traceback (most recent call last):
  File "calculator.py", line 84, in <module>
    main()
  File "calculator.py", line 69, in main
    print(longstring)
NameError: name 'longstring' is not defined

As you can see, I forgot to remove a variable called "longstring".  I put some ASCII art in my program and decided to pull it out as it was making it hard for me to read some stuff half way down the program.  I made a basic calculator that does your standard 4 math functions as well as calculate areas the radius of shapes.  The CBT Nuggets course helped me quite the bit but a YouTube channel with a guy named onestopprogramming really propelled me as he explains every little detail and the "why" as well as the "how".  Their website also goes a long way and provides other little practice examples with the full code following if you need help or want to see the solution.

I can see how programming could be useful for us engineers but at the same time, keep it to the basics unless you have a desire to learn something new.  I personally found programming to be fun as you frequently encounter problems and need to find the solution.  With VoIP, this also happens but is usually a long complex drawn out process unless you just fat fingered a route pattern or screwed up a CSS.  Anyways, just felt that if you didn't already know, some basic programming stuff is coming our way in the years to come and you might want to at least be able to read and understand whats going on behind the scenes.

...I figured I would post my calculator program I built.  90% of this is all my work while the other 10% I got help from the videos when I initially started off since it was part of the learning experience.  In fact, I was never told nor shown how to make an advanced menu that spits you back out to the main menu when you completed a task(Go me...).  Below is the code, if you can figure it out then you are already ahead of the game (Not that its hard).  I included everything here and a copy/paste in Python 3.X will work great.

# Returns the sum of num1 and num2
def add(num1, num2):
    return num1 + num2

 #Returns the result of subtracting num1 - num2
def sub(num1, num2):
    return num1 - num2

 #Returns the result of multiplying num1 * num2
def mul(num1, num2):
    return num1 * num2

 # Returns the result of dividing num1 / num2
def div(num1, num2):
    return num1 / num2

 # This is the basic math function that is called after the main menu (option 1 on the menu)   
def basicMath():
    operation = input('What do you want to do? (+,-,*,/):')
    if(operation != '+' and operation != '-' and operation != '*' and operation != '/'):
        #invalid operation
        print('You must enter a valid operation, HAULTING!!!')
    else:
        var1 = int(input('Enter num1: '))
        var2 = int(input('Enter num2: '))
        if(operation == '+'):
            print(add(var1, var2))
            main()
        elif(operation == '-'):
            print(sub(var1, var2))
            main()
        elif(operation == '*'):
            print(mul(var1, var2))
            main()
        else:
            print(div(var1, var2))
            main()

 #This is the area math function that is called after the main menu (option 2 on the menu)
def areaMath():
    print('Choose an option:')
    print('1: Area of a Circle')
    print('2: Area of a Rectangle')
    print('3: Area of a Square')
    print('4: area of a Triangle')
    operation = input('What do you want to do?:')
   
    if(operation == '1'):
        circle = int(input('Enter the radius of the circle: '))
        print('Your area based off of the circle number input is:', 3.14 * circle ** 2)
        main()
    elif(operation == '2'):
        rectangleLen = int(input('Enter the length of the rectangle: '))
        rectangleWid = int(input('Enter the width of the rectangle: '))
        print('The area of the rectangle based off of your input is:', rectangleLen* rectangleWid)
        main()
    elif(operation == '3'):
        square = int(input('Enter the length of the side of the square: '))
        print('The area of the square based off of your input is: ', square ** 2)
        main()
    else:
        triangleBase = int(input('Enter the base length of the triangle: '))
        triangleHeight = int(input('Enter the height of the triangle: '))
        print('The area of the triangle based off of your input is: ', (triangleBase / 2) * triangleHeight)
        main()
           
 #This is the main function of the program
def main():
    print('')
    print('Please choose an option or press enter to exit')
    print('1: Basic Math')
    print('2: Area Calculations (i.e. diameter of circles or areas of squares)')
    menu = input('Please choose an option now: ')
    if(menu == '1'):
        basicMath()
    elif(menu == '2'):
        areaMath()
    else:
        print('')
        print('You are recieving this message because you either pressed "enter" or did not enter a 1 or 2. Haulting Program now!')
   
main()

Tuesday, March 17, 2015

the CIMC SD Card

Well, I had to re-seat and swap the SD cards on a UCS C220 M3 as my earlier posts had been leading up to.  I figured I would post a short one today with images showing where the SD cards are on this particular model.  I would like to say first that you need to have purchased these in order for them to be present, in fact, you should have bought two of them.  Below are some images of where they are and what they look like in case, for some reason, you have been living in a cave and don't know what an SD card is.



 As you can see, they are easily accessible.  I know the second picture shows nothing and this is what it would look like if you didn't have one while the third is if you did.

Thursday, March 12, 2015

Cisco FlexFlash and it's Role

So the customer I replaced the RAID controller for as well as upgraded their CIMC is asking how to use the FlexFlash and how to get a second card.  I did some research and found that if you already have one then adding a second 16 GB by ordering directly from Cisco is easy.  You cannot use third party SD cards, or at least it isn't supported and the only benefit from having a second one is RAID 1.
For those of you that arn't familiar with RAID, basically each RAID level defined does something with storage.  RAID 0 is striping where it takes two drives and turns them into one with better performance.  The caveat to this is, if one drive fails, your entire system dumps. This isn't a big deal in a lab or non-production environment but on a server, hell to the no....  RAID 10 also known as RAID 1+0 would be your go to level if you wanted expanded storage as well as redundancy.  Basically it takes RAID 1 and 0 and combines them.  RAID 1 is mirroring.  Mirroring does exactly what you would think, it duplicates the drive to another providing redundancy in the event of a backup.  With RAID 10, you have striping and mirroring for the ultimate setup.

The Flexflash contains 4 partitions and on the newer versions 1.5+ I believe they reduced this to one partition.  Each partition has a different utility.  Firmware, upgrades, drivers for the chassis itself, and a lone partition for whatever you want to use it for.  The link provided is a more in depth understanding of what the FlexFlash is and does.

http://www.cisco.com/c/dam/en/us/solutions/collateral/data-center-virtualization/unified-computing/whitepaper_C11-718938.pdf

In the end you need to use the SCU on the existing SD card to set up the new one.  This will let you get the RAID going as well as verify everything is in proper working order.  I would take it one step further and make sure everything is on the latest release and keep a backup release that you know works on the last partition just so you got something to work with.  SCU stands for Server Configuration Utility by the way.  It's basically a GUI driven bootable image on the SD card that makes life easy.  Who wants to dig around the BIOS setting stuff up like its 1999?

Below are some additional links I found useful on FlexFlash:

https://supportforums.cisco.com/discussion/12421051/flexflash-questions

http://www.cisco.com/c/en/us/td/docs/unified_computing/ucs/release/notes/OL-32097-01.html#pgfId-125827

http://www.cisco.com/c/en/us/td/docs/unified_computing/ucs/c/hw/C220/install/C220/replace.html

https://supportforums.cisco.com/discussion/12002036/flexflash-vs-usb-esxi-install

http://www.cisco.com/en/US/docs/unified_computing/ucs/c/sw/gui/config/guide/1.5/b_Cisco_UCS_C-series_GUI_Configuration_Guide.151_chapter_011.html#concept_7DC7EAB11DCA4B4D8F08F697398A960E

As always, I hope this blog post was helpful.  Still not a lot of views and no comments.  Hopefully that changes within the next few months.  I really want this blog to turn into something helpful and a one stop source for those on off situations where Cisco isn't of much help unless you get in contact with TAC.  Since Smartnet is expensive, this could be a temporary filler.

Tuesday, March 10, 2015

The CIMC fiasco

I went from hanging out upgrading the CIMC and BIOS today to reclining back waiting on it to raging to the point I wanted to throw a laptop out the window.  The process to complete the upgrades is fairly simple and straight forward but the issues in between can make you want go drop a car into a canyon with a crane.

I started the upgrade today at 17:00 / 5:00PM.  I didn't get out of the office until 20:15 / 8:15PM.  Let me explain a few things that can and probably will occur.  First, Java is the biggest piece of crap since Netscape.  If you don't know what Netscape is, you might not be old school.  The CIMC has a built in KVM client that lets you view the ESXi and boot process, this is particularly useful when you are in my position and the site is 2 hours away and there isn't anyone there at the time of night I was working.

Long story short, Java....Java....Java....  I did the initial upgrade from 1.4(7) to 1.5(4) and the KVM worked fine.  In fact, I was surprised since the KVM is Java based and Cisco doesn't ever test the latest release of Java.  Why is this a problem?  Well, most organizations aren't in the habit of running old Java since it's the biggest security leak you could possibly have.  That and Java itself doesn't run well most of the time on anything I try to use, Unity Connection call recording included.

I was using Java 8 with the latest release.  The first upgrade processed and I saw the firmware update but not the BIOS.  I began immediately crapping bricks since CIMC and the BIOS need to be on the same release or you end up getting a server that isn't booting.  While you may still have a KVM, you need to unhose what you did.  The HUU .ISO works incredibly well, it has it's own GUI and is bootable.  Little to no effort is needed to use this tool.  See below for a few images of what it looks like.




Basically, once it boots after you shut all of your VMs down you get the banner in the KVM screen. That takes about 5 minutes at most and then you see the next screen where you can select what you want to upgrade.  You can pick and choose or just do everything.  There is also the HDD firmware upgrade.  Once you hit go, it gives you a warning to let you know what you are doing is rather permanent and then it is on its way.  

The progress bar is something that needs fixed.  I sat there for a good 5 minutes and it barely moved.  I figured I was in for the long haul (I was anyways, just hadn't run into the java and cosmetical alarm issues yet.).  So basically, here is the process so far:
  1. Open KVM in CIMC
  2. Go to Virtual Media
  3. Add your .iso image
  4. Map it to the virtual dvd thing
  5. Restart the server from the CIMC
    1. Please for the love of god make sure your VMs are not set to auto-boot.  While this shouldn't be a problem, I like to be safe than sorry.
  6. Let her rip, get the banner and upgrade what you want.
If you do the CIMC and BIOS you end up having to turn the server back on, at least I did the first time.  The second time it seemed to start back up on it's own.  Granted the first time I did this, I was crapping bricks because I had never done a CIMC upgrade, who really needs to?  Upon boot I saw the firmware and was happy.  I then saw the BIOS was wrong and started the fecal cycle again.  I refreshed the screen and so did the BIOS version and I felt better.  Next, I started taking a peek at stuff and saw a giant red X on the main status screen and was like now what the....  

The above is the error I saw.  The KVM stopped working and I started thinking catastrophic things were happening.  What was really going on was two things at the same time.  First, the cosmetically error is just that, cosmetically.  I spent an hour and a half with TAC and they deduced that the new version does this when you are not running a dual SD FlexDrive RAID. I asked why it was a major alarm and never really got an answer other than because it does.  The SD card wasn't in use anyways and it's only real use was to hold an operating system or whatever else you might want on there.  But again, it wasn't in RAID so it crapped the bed.

The second issue, the KVM kept not working and giving me java errors.  I was getting mad at this point but figured I knew how bad Java is.  I uninstalled Java, removed all associated programs and relaunched FireFox and BAM nothing.  No website, nothing.  I launched IE and logged in.  No Java prompt.  I had to go back into Java and force it to prompt.  This entire process was long as I kept logging in and out of the CIMC and nothing was working, all the while I got a Publisher server down.  

Eventually, I got java to work and KVMed back in.  Started the second upgrade which went so smoothly I felt like a champ.  However, before logging in I couldn't even log in.  I got a max sessions exceeded from the CIMC.  The problem here, is CIMC doesn't record you logging out immediately if you just close the window and leaves it hang.  There are two sure fire ways of getting this to clear.  
  1. Slam the server
  2. Use the SSH and clear it (Yes, do it this way hotshot)
As you can see in the image above, I had to SSH in, set the session and terminate it.  I did a few to get the hang of it and if Java gave me more grief.  Overall, this was a great learning experience for me and I hope it gives y'all a heads up too.  If this was a TLDR (Too Long Didn't Read) situation take these important facts home with you:
  1. Use the .iso its easier, I was skeptical at first too
  2. Make sure you got Java 7 or the latest tested release.  8 isn't as new anymore but it isn't tested.
  3. Give the entire process some time.  10 to 15 minutes should do the trick for the BIOS/CIMC
  4. Verify the upgrade occurred
  5. Make sure no errors exist 
    1. Cosmetically ones may apply, as they did in my situation
  6. Power on and off from the CIMC works great

CIMC and BIOS round 2 and some other stuff.

So I ended up not doing the upgrade last night due to a late response from TAC since we are in different timezones that puts us two hours apart.  I ended up getting the information I needed and learned that the CIMC has a built in remote KVM and the HUU .ISO file can indeed to everything once you take down the entire system.  Tonight is the big night for the multistep upgrade since I have to go to 1.5(7) but need to step up to that. 

Interesting enough, I have learned more about CIMC in the last week than I have in the last few years.  You just don't touch it that much, and when you do, it isn't for very long.  I feel like they need to make a TAC section just for me so I can be the dedicated CIMC guy since at this point, I could navigate it in my sleep.

For those of you that are new to the blog or didn't read the last blog, I have a customer that has had RAID issues and CIMC issues.  Once I replaced the RAID controller, the ELM VM crapped the bed again.  I now have to upgrade the firmware on the CIMC and BIOS.  If you upgrade one without upgrading the other, you end up with a server that won't boot.  I don't want to wake up tomorrow morning and have to make a 2 hour drive to a super irritated customer, so I prefer to do things the right way the first time around.

Basically, upgrade CIMC, then upgrade the BIOS.  On another note, round 2 of CIPT1 may happen this week.  I been studying my ass off on the finer points that are irrelevant to most day to day operations or in my case, to my job since I don't use some of the stuff.  I think it's worth noting that you can be an expert without knowing everything.  In fact, there is no way you could possible memorize all the material and still have a life.  That's why we have google and cisco support forums that I regularly utilize and participate in.

I guess this post is all over the place but so is my mind.  I figured I would add one final subject while I am here.  Today, I had a service ticket for a customer on CUCM 6...yep 6.  On their particular version as well as a version of 7 an NTP issue occurs on DST changes.  Well half of their phones had the correct time while the other half didn't.  Luckily, it was localized to some old 7940/60 phones sine the 42/62s were fine with the right time.  I took a look at the CUCM and saw that it had the right time, so that verified their NTP was functional.

I took a look at their device pools and noticed they had two set.  One for DST and one called "Workaround DST".  I chuckled a bit as I already knew the problem once I saw that.  The bug applied to this version of CUCM.  I ended up just doing a bulk update through the BAT tool using queries for all 7960s and all 7940s.  Once I pushed the update I viewed the phone screenshot to verify the problem was fixed and the customer was satisfied.

I think it's worth noting that screenshots on phones are super useful when you can't be on-site for one reason or another.  You can essentially view the screen on a webpage.  Keep in mind you can't actually do anything with it, but in this case I could view the timestamp.  If you are wondering on how to do this, here is how:

  1. Either assign yourself as a user to that phone or make a test user and assign it to the phone
  2. Make sure you associate the device to the end user on the end user page too
  3. Grab the IP of the phone, it's a blue link if look at the registrations
  4. Type http://x.x.x.x/CGI/Screenshot
  5. Enter the credentials of the user you assigned
  6. Bam
Keep in mind that 7940s and 60s can act a bit weird and you get some bizarre XML error.  There is a SDK phone tool on Cisco DevNet that gets around this.  You use that tool with the XML text and it generated a .gif for you so you can view the image of the phone.  Below are all the links you need explaining this stuff.

Cisco IP Phone Screenshot Instructions:
https://supportforums.cisco.com/document/45331/how-take-screen-shot-cisco-ip-phone

SDK Tool for the older Gen2 phones:
https://developer.cisco.com/site/ip-phone-services/documentation/index.gsp

Direct Download of the SDK:
https://developer.cisco.com/fileMedia/download/1a95842c-5302-4f2f-b186-78d295987b2e


 

Monday, March 9, 2015

CIMC and the fun of upgrading the bare metal drive firmware

Today I had to upgrade the CIMC firmware and oh what fun.  Basically, the RAID controller we replaced did nothing to solve the problem despite it having issues.  TAC came back and said it is now time to upgrade the firmware of the CIMC.  Normally, this might sound like an easy task, download file, upload, and done right?  Negative....

First, you need to download the file from Cisco's support site, if you aren't familiar with this and you are an engineer, shame on you.   What they don't tell you is that this is a .ISO file.  You either reboot the whole server and do everything from the KVM or you use the .bin files to do it manually.  At first, I thought I was going to be slick and just upgrade the CIMC firmware and be done since it doesn't require a server reboot.  You only need to restart the CIMC interface which will not interrupt any VM data traffic or processes.

Second, you need to update the BIOS, this will require a server reboot to finish.  Again, you can use the BIOS file and just restart the server after complete while watching the KVM.  Don't do this unless you have a KVM!!!!  The web KVM should suffice but if you are in my situation and are 2 hours away, it is better to be on-site in the event something blows up and you need to manually power cycle the server.  Please, for the love of god, make sure you properly shutdown the VMs first!

Once all of this is done, all you need to do is log back into the CIMC and verify that the upgrade was good and there aren't any issues present.  Below is an image of what the CIMC looks like before the switch to the new CIMC version.  Note that I had used the browser to upload the firmware and let it do its thing that way since TFTP is just more complexity (Yes I know TFTP is easy, but why use the TFTP option when you can just slap the file into a web box and be done?).





Above you can see that the running version is 1.4(7g) and my backup version is 1.5(2).  Once I click Activate CIMC firmware, the uploaded firmware will take effect.  Remember, you must update the BIOS afterwards or Cisco docs say your server will not boot!  Of course, you can disregard that statement if TAC says otherwise.


Summary of what to do:

You have two options
    1. Use the .ISO and reboot the whole server and let it do everything for you or
    2. Extract just the CIMC and BIOS firmware from the .ISO
    3. Install the CIMC firmware first, then you can activate the firmware as it will not interrupt traffic on the VMs
    4. Install the BIOS firmware after the CIMC firmware has been activated, then schedule time for a reboot so the BIOS can finish the update process
    5. Log back into the CIMC and verify that everything is updated to the version you downloaded and that there are no errors.


Here is the link to the UCS C Series Server firmware guide:

http://www.cisco.com/en/US/docs/unified_computing/ucs/c/sw/gui/config/guide/1.5/b_Cisco_UCS_C-series_GUI_Configuration_Guide.151_chapter_01101.html#task_94832943DCAA4854A4AA135D54FB2B50

Friday, March 6, 2015

Quick Post

Quick blog post here.  I figured since I was talking about media resources and such, I would also include the word document I created as sort of a cliff notes portion of the books I studied from.  I have also included some other things that I know, but do not always recall easily for some reason until I am either questioned on it or need to use that information.  Below is the complete cliff notes of what I built out for the CIPT 1 exam and general knowledge.



-----------------------------------------------------------------------------------------------------------------------------



CIPT Notes on Weak Areas
·         EF – 46 – 101|110
·         The # instructs interdigit timeouts to stop
o   You need two route patterns identical if you want the user to be able to use the # symbol in CUCM
·         Digits sent one by one to CUCM begin digit analysis immediartely
o   Even going off hook digit analysis starts (for PLAR situations)
·         SIP en block sends the entire string at once in an INVITE
·         KPML enables digit by digit for SIP
·         SIP dial rules are processed inside the SIP phone so it knows what it can and cannot dial
o   If matched, a single INVITE with the digits are sent en bloc
o   If more digits are needed, KPML can take over
·         ISDN PRIs and trunks can be configured to allow overlap sending and receiving
o   This permits digits to be sent or received one by one over the PRI
o   Need to check the “Allow Overlap Sending” check box in the route pattern configuration page
o   Set the “OverlapReceivingFlagfForPRI in the service parameters to True
·         SCCP
o   Type A are digit by digit only
o   Type B is en bloc or digit by digit
o   Can disabled en bloc if needed
·         Translation patterns always have urgent priority enabled and cannot be disabled
o   En bloc dialing will make urgent priority to not be considered since it is not digit by digit
·         Cannot reference a single device as a member of both a route group and a direct reference to a route pattern
·         Route groups are a list of devices that share the same requirements for digit manipulation
o   i.e. PSTN gateways all within a route group
o   Circular selection of gateways within a route group can be used to load balance
o   Top down can be used for priority as well as providing a backup gateway in the event the primary fails
·         Local route groups decouple the selection of a PSTN gateway or trunk for off-net dialing from route patterns that are used to access the gateway.
·         Standard Local Route Groups can be added to each route list entry once
·         Local Route Group within the device pool so it uses the local group for that device pool
·         Within the Route List, you can setup digit manipulation per route group
·         Class of Service, also called Calling Privileges define entries of a call-routing table that can be accessed by an endpoint that performs a call-routing request
o   Controls telephony charges
o   Restricts international calls
o   Can be used to route calls differently with the same number per endpoint
o   Route different based on time of day
·         Partitions are defined as a group of numbers with similar reachability characteristics
·         CSS’s define what partitions are accessible from a particular device
·         CTI ports the device CSS comes before the line CSS
o   This is different than the standard device in which the line is concatenated on top of the device 




CUCM Media Resource Notes:

·         Transcoding – requires DSPs on the gateway or blade
·         Voice termination – Requires hardware for TDM to VoIP
·         Audio Conference Bridge – Requires either software or hardware resources
·         MTP – Can either be software based CUCM or hardware on gateway
·         Annunciator – Software only
·         MOH – Software only unless in SRST mode on gateway
You need to start the Cisco IP Voice Media Streaming Application to activate the following resources:
·         Audio Conference Bridge
·         MTP
·         Annunciator
·         MOH
o   SRST at remote sites if you want this to be hardware based, otherwise will not work if connected to CUCM out of SRST

·         Signaling between hardware media resources and CUCM use SCCP
·         All media resources register with CUCM
·         Audio streams are always terminated by media resources
·         No direct IP to IP phone audio streams present when media resources are involved
Conference Resources:
·         Software bridge runs on one or more CUCM servers in a cluster
·         Audio Streams go between:
o   IP phone to conference bridge
o   Gateway to conference bridge for those PSTN guys
o   CUCM does not distinguish between software and hardware based conference bridges when it processes a conference allocation request
Transcoding:
·         Same concept as conference bridges in terms of signaling
·         Audio Streams between IP Phones and transcoder and between application server and transcoder
·         Runs on the IOS router and registers via SCCP
·         Converts G.711 to G.729 and vice versa as well as other codecs in the same fashion
·         Hardware based resources for transcoding residing on the IOS gateway (PVDM)

MTP Signaling and Audio Steams
·         MTP bridges two media streams and allows them to be set up and torn down independently
·         Audio streams between the phones and the MTP
·         Same signaling concept as before.  Between IP Phone and CUCM and between MTP and CUCM
·         MTPs can be used to translate between two incompatible media streams
o   Can be used to synchronize clocking and enable supplementary services like hold/resume
MTP Types
·         Three types of MTPs
o   Software MTP on CUCM
§  Provides G.711 mu-law to a-law and packetization conversion
·         i.e. 20ms to 30ms packetization sample size
o   Software MTP on IOS routers
§  No DSPs needed
§  Same codec and packetization on both call legs
·         THEY MUST BE IDENTICLE!!!
§  For functions like RSVP or CUBE media flow-through configurations
§  CUCM sees every Cisco IOS software MTP as a hardware MTP!!!
§  Basically supplementary services like hold/resume only without DSPs
§  Enable this by using the maximum session software <n> command
o   Hardware MTPs
§  DSPs (PVDM modules) required
§  Use of same audio codec but different packetization on different call legs possible
·         Config Example on IOS gateway:
sccp ccm group 1
associate ccm 1 priority 1
associate profile 1 register IOS-HW-MTP
associate profile 2 register IOS-SW-MTP
!
dspfarm profile 1 mtp
codec pass-through
codec g711ulaw
maximum sessions hardware 2
associate application SCCP
!
dspfarm profile 2 mtp
codec g711ulaw
codec pass-through
maximum sessions software 100
associate application SCCP

MTP Functions and Requirements
·         Inserting DTMF
o   Supported on all MTP types
·         G.711u to a conversion
o   CUCM soft MTP only
·         Sample size conversion
o   CUCM soft and IOS DSP MTPs only
o   IOS Software will not do this, only hold/resume services
·         RSVP signalling
o   Only Cisco IOS soft and hard MTPs
·         Provide H.323v1 supplementary serbices
o   All MTPs available can do this
Annunciator
·         A software function of the Cisco IP Voice Media Streaming Application
·         Streams spoken messages or various call-progress tones from the system to a user
·         Can send multiple one-way RTP streams to devices like:
o   IP Phones
o   Gateways
·         Uses SCCP messages to establish the RTP stream
·         Device MUST support SCCP to use this feature
·         Support localization and can be replaced with .wav files
·         Can support G.711u and a-law
o   Also supports G.729
o   Wideband
o   No additional resources required to do any of this!
·         Audio stream is one way only from annunciator to the IP Phone
·         Signaling is between:
o   IP Phone to CUCM
o   Annunciator to CUCM
o   Between Gateway and CUCM
MOH Signaling and Audio Streams
·         Provides music to users on hold, transferred, parked, or added to an Ad Hoc Conference
·         Simple but need to know unicast and multicast traffic
·         Need to also know MOH Call flows, configuration options, and server behavior / requirements
·         Audio streams between the IP Phones and the MOH Server and between the gateway and the MOH Server
·         Signalling between IP Phone and CUCM
o   Between MOH Server and CUCM and between gateway and CUCM
Conference Bridge Overview
·         CUCM supports both hard and soft conference bridges
·         Soft bridges only support single-mode conferences in the G.711 codec
·         Some hardware-based conferences support mixed-mode conferences with different codecs from different participants
o   i.e. low bit rate(LBR), G.729, GSM, or G.723
·         This mixed mode converts these codecs to G.711
·         Then converted back to the user original codec outbound
·         Some hardware conference bridges still only support G.711
Software Audio Conference Bridge
·         Part of the Cisco IP Voice Media Streaming App service
·         Limitations:
o   Unity cast audio streams only
o   Any combo of G.711u-law, G.711a-law, or wideband audio streams may be connected
o   Max audio streams per server is 128
§  If the Cisco IP Voice Media Streaming app runs on the same server as CUCM service, software conferences should not exceed 48 participants
·         Ad Hoc Conferences
o   3 minimum participants
o   64 max
o   4 default participants
·         Meet-Me
o   1 minimum
o   128 max
o   4 default participants
Hardware Audio Conference Bridge
·         All conference bridges under CUCM control use SCCP to communicate to CUCM
·         CUCM does not distinguish between soft and hard conference resources
·         Secure conferencing reduces session capacity by half with G.711
·         Number of conferees per session is the same as non-secure
Built-in conference bridge resources
·         IP Phones with built-in conference bridge resources allow three way conferences
·         Invoked via Barge feature only
·         G.711 only

·         Advanced Ad Hoc lets any participant add and remove others
·         Link multiple Ad Hoc conferences together
Conference Bridge Service Parameters
·         Accessed in the Cisco IP Voice Media Streaming App
·         Call Count for max participants
o   Can be 0 to 256, default is 48
·         Run flag needs to be set to true for software conference bridging
CUCM Service Parameters related to Conferencing
·         Can suppress MOH in Conference bridges
·         Drop Ad Hoc Conference
o   Never (default)
o   When Conference Controller Leaves
o   When No On-Net parties remain in the conference
·         Advanced Ad Hoc conference enabled (false by default)
o   Can let other users add/remove people
o   This is done with the ConfList or RmLstC softkey
o   Must allow the advanced features within the advanced Ad Hoc to join conferences
·         Non-linear Ad Hoc conference linking enabled (false)
o   Allows more than two Ad Hoc conferences to be joined
·         Max Ad Hoc Conference (4)
o   Default is 3-64, this determines how many people can be in a conference
·         Max Meet Me Conference (4)
o   Max number of particpants
MOH Media Resources
·         CUCM has an integrated MOH software server
·         External media-streaming servers can be used
·         Supports multicast and unicast
MOH Sources
·         One fixed source that uses a Cisco MOH USB audio sound card
·         50 audio file sources
·         MOH Audio File management converts the audio file
·         Codecs for MOH:
o   G.711
o   G.729
o   Wideband
§  G.729 is for speech and reduces music quality
·         Format for MOH files
o   16-bit PCM .wav file
o   Stereo of mono
o   Sample rates of 48,32,`6, or 8 kHz
·         Fixed audio can be transcoded in real time by CUCM
o   Transcoded into G.711, 729a, and wideband
o   Only audio source that can do this is fixed since a sound card is involved
Unicast MOH
·         Stream sent directly from server to endpoint
·         Separate source stream for each new connection
·         Point to point one way RTP audio stream
·         Can strain the network in terms of bandwidth
·         Good for networks without multicast
Multicast MOH
·         Point to multipont stream from the server to a multicast group IP Address
·         Conserves resources since multiple endpoints use the same audio source stream
·         Must support multicast on the network
·         IP address starts at 239.1.1.1 to 239.255.255.255 for multicast IPs
·         Every different audio source will increment the IP address by one
MOH Audio Source Selection
·         Holder and a Holdee
o   Holder is the person placing the call on hold
o   Holdee is the person being placed on hold
·         MOH Stream sent to an endpoint  is a used is a combo of the User Hold MOH Audio Source that is configured for the holder and the prioritized list of MOH resources in the MRGL for the holdee
·         Basically, the source determines what file is used while the list determines what server is used
·         All files need to be on all MOH servers if multiple exist or nothing will be heard if a file is missing that is being used
MOH Configuration
·         Plan MOH capacity
·         Configure MOH audio sources
·         Check MOH Server configuration
·         Check MOH Service Parameters
·         Configure Multicast MOH if needed or wanted
o   Configure audio sources for the multicast
o   Configure the MOH server for multicast
o   Implement a MRGL where MOH Multicast is enabled
·         It is imperative that MRGLs be configured  with MRGs
o   The MRG multicast checkbox needs to be checked or multicast will not be utilized when the resources are requested
MOH Server Capacity Planning
·         Max of 51 unique sources per cluster
·         Default of 250 unicast sessions per server
·         Each multicast MOH audio source must be counted as 2 MOH streams
·         Max of 204 multicast streams
o   51 sources x 4 codec types
·         Maximum half-duplex streams determine the max number of devices that can be placed on unicast MOH
o   Default value is 250
·         Maximum multicast connections determines the maximum number of devices that can be placed on multicast MOH.
o   Default value is 30,000
MOH Service Parameter Verification
·         Supported codecs
o   G.711u/a
o   G.729a
o   Wideband
·         QoS for MOH
·         Packet size for codecs is 20ms
·         Cisco CUCM Service
o   Supress MOH in conference = true
o   Default Network Hold MOH Audio Source ID = 1
o   Default User Hold MOH Audio Source ID = 1
o   Duplex Stream Enabled = False
MOH Server Config (again)
·         Enable multicast
·         Verify IP
·         Verify base port number
·         Set max hops TTL for MOH packets
o   This caps out the hops MOH can traverse, if set to 0 it stays in the subnet only!
·         Increment based on IP not port, this helps save the firewall and network congestion


Annunciator Features and Capacities
·         G.711, G.729, and wideband without the need for transcoding
·         The following features REQUIRE an annunciator
o   MLPP (Multi Level Precedence and Preemption)
§  Plays  a message based on preemption of call or not
o   Integration via SIP Trunk
§  SIP endpoints can generate and send DTMF in-band in RTP
§  SCCP cannot do this so MTPs are used in conjunction with the annunciator
§  Call progress and DTMF tones are sent to SCCP phones in this manner
o   IOS Gateways and intercluster trunks
§  These devices require support for the call progress tone (ringback tone)
o   System Messages
o   Conferencing
§  Plays a barge-in tone for entrance and leaving
Annunciator Performance
·         Annunciator running co-resident with CUCM can support 48 simultaneous annunciator streams
o   That number is the max recommended
·         Annunciator without the CCM service running can run 255 simultaneous streams
·         10MB/s or lower servers should be dropped to 24 simultaneous streams
·         High performance servers can run 400 simultaneous streams
Media Resource Access Control Overview
·         By default, all media resources are in a NULL MRG
o   Load balanced
·         Hardware conference resources are preferred due to mixed mode support
o   Less load on CUCM too
·         Media Resource Manager (MRM) manages all media resources within a cluster
·         Use media resource management to let hardware and software resource co-exist
·         Allows them to be used with different priorities
·         Can share and access resources within the cluster
·         Can load distribute within a group of similar media resources
·         Media access control bundles MRGs in MRGLs which prioritizes media resources
·         This can also deny certain users access to hardware resources if you place them in a different MRGL with no access to hardware resources


Media Resource Design
·         MRGs define logical groupings of media servers
·         Associate MRGs with their geographical location is possible
·         Can control unicast and multicast in this fashion too for MoH
·         MRGLs are a prioritized list of MRGs
·         When a device needs a media resource it will check its own MRGL first then it will go to the default MRGL
o   Default MRGL contains all media resources in a default MRG that have not been specifically assigned to another custom MRG
§  For example, site 1 has site 1 MRGL and site 2 has site 2 MRGL
§  Site 3 does not have a MRGL but is co-located near site 1
§  When site 1 needs resources and is tapped out of its own media resources it can use site 3s media resources because they were not specifically assigned to any MRG/MRGL
Intelligent Bridge Selection
·         CUCM can intelligently use video conference resources over audio if two or more devices are video capable
o   If only one is video and the other is audio, it will choose an audio bridge instead so that the video bridge resource can be left for others to use
·         Audio will be used in place of video bridges if there are no video bridges available
o   This is for Ad Hoc only
·         To configure the parameters of Intelligent Bridge Selection, go to CUCM service parameters and set the intelligent bridge selection parameters
·         Encrypted audio or non-encrypted video
·         Set the number of video capable devices that need to be present to use a video bridge
·         Can set video CFB when available over an audio if needed
Media Access Control Configuration
·         Create MRGs of resources
·         Create MRGLs
·         Assign MRGLs to phones
·         Note that MRG order in MRGL are not relevant unless multiple MRGs contain the same type of resource.  For example, two hardware MRGs with conference resources would be used in the order provided in the MRGL
o   The same if vice versa, if you need an annunciator but the first MRG in the MRGL does not have one, it skips to the second one immediately