Showing posts with label Avaya. Show all posts
Showing posts with label Avaya. Show all posts

Thursday, August 21, 2014

So... you want to be a Lync Architect

For at least a couple years now my employer has been on a constant search for talent to deploy Microsoft Lync and the components that are part of that ecosystem. But it is getting harder to find guys that will fit in with the company culture and have a good set of fundamental skills (or phenomenal skills if we get lucky).

So I thought I'd write a post, from my perspective, about what some of the skills are that it takes to work as a consultant in this Microsoft Unified Communications world. Engineers and Architects that can do this type of work WELL are a rare find. They posses knowledge from multiple disciplines (data, voice, server apps, security etc) and combine them all to help a customer deploy a solution that fits their needs. My hope is that this will finally convince some people that are on the fence to jump in (and increase the pool of talent).

... and no you don't have to be an Architect to jump in, you can start out being an Engineer or working the support desk. You can learn as you go.


The Hard Skills

Here is the bottom line... the more of these the better.

The more of these you are excellent at... the better consultant or support engineer you'll be for your customer.

Nobody... Nobody will be an expert at all of these. But sometimes the secret is knowing others that are experts in that area... or knowing where/how to find the answers.

If you are weak in most these areas... no problem... go buy a computer, create a lab of your own and pick something and start to learn. With Microsoft based software there is usually no lack of freely available knowledge you can learn from and there are certainly plenty of books out there on all of these topics. Don't expect you will learn all of this in two weeks. I've been gathering knowledge for as far back as 20+ years and that knowledge still applies to what I do today. But everyone has to start somewhere.

Here is the list that I've come up with...
  • Active Directory
  • SQL Server
  • Windows XP/Vista/7/8/8.1 etc
  • Server 2008 R1/R2 and 2012 R1/R2
  • Office Communications Server 2007 R1/R2
  • Lync Server 2010/2013
  • Exchange 2007/2010/2013
  • System Center 2007/2012/2012 R2 via @fabriziovlp
  • Hyper Visors (Microsoft, VMWare etc) via @fabriziovlp
  • Virtual Desktop Infrastructure (Microsoft, VMWare, Citrix etc)
  • PowerShell
  • .Net Regular Expressions (RegEx)
  • Private Key Infrastructure/Certificates
  • Layer 2 Networking (Switched)
  • Layer 3 Networking (Routed)
  • IPv4
  • IPv6
  • TCP/IP
  • Quality of Service
  • Firewalls
  • Network Sniffer (Wireshark, Message Analyzer)
  • SIP
  • Audio Codecs (G.711 etc)
  • HTTP/HTTPS
  • ISDN PRI and the associated protocols/capabilities
  • T-1 (Telephony based digital circuit)
  • DS-1/DS-3 (Data based digital circuit)
  • Frame Relay
  • Avaya Blue (Nortel)
  • Avaya Red (Traditional Avaya)
  • Cisco Unified Call Manager
  • Mitel
  • Inter-tel (owned by Mitel now)
  • Shoretel
  • PBX Dial Plans
  • PBX Features
  • Analog device types
  • Fax and Fax Server
  • T.38 Codec (for Fax over IP)
  • Modem (Yes credit card and postage machines still use this)
  • Gateway/SBC (Sonus, Audiocodes, etc)


The Soft Skills
  • Good listening skills
  • Good presentation skills
  • Good communications skills (verbal and written)
  • Patience
  • Attitude toward constant learning
  • Self starter
  • Working alone
  • Working in teams
  • Working with other teams
  • Juggling lots of tasks/jobs at once
  • Prioritizing tasks
  • Bing/Google searching for information
  • Networking (the people kind)

Getting There...

This one is all on you. My unique path took me from being a network manager/admin at a University, to working 11 years for Nortel and then combining all that experience into what I do now. Some of this is hard to learn in a lab unless you are loaded with money. 

You need to surround yourself with people that know about the skills you need to work on. This is where the networking (the people kind) really comes in handy.

How do you do this?

  • Go to local users groups
  • Go to local conferences. 
  • Go to some industry conferences. 
  • Get on twitter and follow people that tweet about the things you want to learn about. 
  • Get on LinkedIn and make some connections and join some discussion groups. 
  • Read the Technet forums
  • Read some books
I'll keep updating this as I think of things... but bottom line is that this stuff isn't easy, but it is something that is able to be learned given enough time and effort.

Tuesday, February 11, 2014

Lync as a PBX Replacement Series - PBX Dial Plan

Others in the series...

PBX Network Topology
http://blog.ucomsgeek.com/2014/02/pbx-replacement-series-pbx-network.html

Analogs
http://blog.ucomsgeek.com/2014/02/pbx-replacement-series-analogs.html

Toll Fraud
http://blog.ucomsgeek.com/2014/02/pbx-replacement-series-toll-fraud.html

Overview
In my next installment, I would like to dive in to PBX Dial Plans. Chances are there is very little PBX documentation or you might also hear my favorite...  "The PBX is the documentation".

There is also an even smaller chance that if there is PBX documentation, it won't be the dial plan. Why? Because it is a pain to really track and do a dial plan well. If you have a seasoned PBX Administrator on staff give them a big hug and buy them a nice steak dinner right now, because they are your single biggest asset to understanding how things are laid out.

On a side note... many PBX Administrators are really scared of Lync right now. They think because Microsoft is replacing their PBX, they will get replaced too by the "server administrators". That is the farthest thing from the truth. Sure the server administrators will probably take a greater role in managing the communications environment, but they won't get "Voice" like a seasoned PBX Administrator. Most of the knowledge these professionals have can't be learned easily anymore. They also have years and possibly decades of experience of how not to do things that might be specific to the business environment you are working in. What you should encourage them to do is embrace learning a new skill set that will make them even more valuable because not only do they have critical knowledge about telecommunications, but they will also learn new Server and Applications skills (which is easier for them to do than for a server administrator to learn telecommunications). Those two together are really powerful, throw in some data communications and QoS and you get what I call a true Converged Engineer.

Meanwhile... back at the ranch, let's dig in to PBX Dial Plans...


PBX Dial Plan
First off, I want to go in to the two different types of PBX dial plans. They are Coordinated and Uniform (Nortel speak). Haven't heard those terms before? Doesn't surprise me. I never heard those terms until I started at Nortel even though I was a network manager at a university and had voice for the university under my domain. There is also a good chance that depending on the PBX vendor the terms might be defined differently or have different names (which can be confusing... I know). No worries, I plan to describe them in detail so hopefully we will all get on the same page regardless of what each of us calls them.

Coordinated
In a coordinated dial plan each extension in the PBX network is unique and all the same number of digits. Each person can dial each other directly using just the digits of the extension regardless of where they are.

Typically you will see ranges of numbers dedicated to a site. For instance, all the Denver numbers start with 45XX and all the Dallas numbers start with 46XX. The range is totally arbitrary and can really be any range.

A well managed Coordinated dial plan will usually break ranges in to 10s, 100s, 1000s... 10000s you get the idea. An example of a badly managed dial plan would have Denver range be 4523 through 4547 and the Dallas range be 4548 through 4581. Although it is certainly valid, these are harder to handle in routing tables in the PBX (and harder in Lync too).

If you are in the rare situation where you are developing your own dial plan, you will want to pick ranges that allow for future growth. There isn't any hard set rule on what you should do. So most people go with their gut... or base it on some knowledge they have about the business and how much they grow.

DIDs in a coordinated dial plan usually start out by matching the last few digits of the DID number. For example 3035554500 would correspond to an extension 4500. When you have 4 or 5 digits for an extension, you will find that assigning all 4 or 5 digits to an extension can chew through a dial plan number availability quickly. One way PBX Administrators handle this potential overlap is even though your carrier may send you 4500 the users DID (3035554500) they map to an extension that is really 3500. These nuances are really important to understand and have documented. When you start to write normalization rules, knowing details like this up front will save you a lot of effort. Also, keep a watchful eye for situations where the DID does not line up with an extension in some sort of pattern. You'll need to write one off normalization rules to handle these properly and you should also see if the customer can clean these up in any way (might be a multi year process).

As you might have surmised above... the biggest challenge with Coordinated Dial Plans is that they run out of digits once you go past a few sites. Depending on the number of users, you might start to feel pain around the 10 site mark. If you start to run out of room there isn't really any easy way out. You will feel pain. My suggestion these days is to move to an E.164 dial plan (along the lines of Uniform below) where users calling another site have to dial 10 digits. Within a site can still be their short extension. If you move to an E.164 dial plan there is no chance or conflict (this goes for International dial plans as well)

Uniform
In a Uniform dial plan, each site has access to the entire range of numbers, but when dialing another site, it requires a site code or prefix to identify where you are calling. In the example of Denver calling Dallas you might have a site code of 20 in front of the extension so the user would dial 204623 to reach a user and vice versa Dallas calling Denver would dial 214512 as an example. A Denver user calling another Denver user would just call the 4 digits, but certainly could call the site code too if they wanted.

Now usually with this type of dial plan you also have an Access code associated with internal site to site dialing. Think of it as like dialing a 9 before a PSTN number. At Nortel, we used to use a 6. So in the example above the Dallas user would dial a 6+21+4512 to reach the user in Denver.

Site codes don't have to be just 1 or two digits. Typically for really large PBX networks you might see more. Nortel used a 3 digit site code with 4 digit extensions. They were a truly global company with over 100,000 people at one point just to give you some perspective.


Why do we care about PBX Dial Plans?
Simple... we want to replicate the voice dialing user experience in Lync.

Normalization Rules
One primary way your users will complain is if they have to learn a new way to dial Bob in Accounting. To keep this from happening, an understanding of how the users dial numbers today is needed, so you can replicate that with Normalization rules in Lync. Need help with Normalization rules? See one of my first blog posts for some help.

So I'm going to assume you have great documentation at this point. If not, you better get cracking and better hope this deployment isn't due to be done this week. If you are having to create documentation chances are you won't get everything. In this case you need to consider using a generic normalization rules that will catch all the extensions you don't know about. To do this normalize using the HQ main office number +13035551000;ext=XXXX. When you configure your Trunk Configuration to strip out what you don't need, you'll just grab the extension and pass to the PBX and the call will complete.

As you are going through your documentation look for things that aren't consistent. If it doesn't look right, or stands out... ask questions. Usually there is something more sinister going on. Worst case scenario would be a dial plan that has different number of digits depending on what site they call. If you run in to one of these... stop the presses (hopefully SOW isn't signed yet) and tell the customer that they need to make everything consistent across the board. Proceeding will only mean pain for everyone. If you proceed, you will be in an endless loop of workarounds that at some point will become unmanageable.

When you are putting together normalization rules, you should at least be looking for information to complete the following:
  • 911 with and without Access Code
  • Special formatted numbers (Paging, Hunt Groups, Emergency Notification etc)
  • Dial Receptionist for each site (Company Operator)
  • Extension (for example 4-Digit)
  • 10-Digit for Internal DIDs
  • PSTN Local 7-Digit with and without Access Code (if needed)
  • PSTN Long Distance with and without Access Code
  • PSTN International with and without Access Code

Also, when you start out developing your dial plan in Lync, ask yourself at least one critical question. Will I need to handle Non-DID extensions? Those are the extensions that a user can call internally that have no dedicated PSTN number. They can only be reached from an internal phone, or by transferring from an internal phone. For Non-DID dial plans you have no choice but to use the +1XXXXXXXXXX;ext=XXXX format when assigning numbers to users or endpoints. I would use the format anyway for other reasons like Pin auth and Dial in conferencing authentication, but regardless Non-DID REQUIRES you use this format.

Since I am a fan of +1XXXXXXXXXX;ext=XXXX, even in environments that all have DIDs, you should always write User Dial Plan rules for extension dialing to normalize to this format, but also 10-Digit versions of Internal DIDs that specifically normalize to the +1XXXXXXXXXX;ext=XXXX format. I know... I know... Microsoft will match the first part... but I've been working with this stuff long enough that I don't trust that to work 100% of the time. I follow this rule religiously, and it creates a lot of extra work, but my deployments have a great track record. Also, don't forget to make sure you Normalize the Lync Address Book in the same way.

Now, if you have a Uniform dial plan you will want to include the site code after the ;ext= when you assign numbers to endpoints or normalize (+1XXXXXXXXXX;ext=21XXXX). Why? mainly to make Caller ID to the PBX easier. Wasn't what you expected was it? I am a fan of doing all Number manipulation on Lync. This includes having separate Trunks in Lync for PBX routes so I can strip down the Caller ID to match the user experience on the PBX. Don't do this and you'll be writing a ton of rules in the Trunk Configuration. Don't do it Trunk Configuration? Then when the user goes to dial the person back the call won't complete because they won't know the site code. Get it? Got it? Good!

Routing
More than likely you will have more than one place you are connecting to the PBX network through. Because of this you will want to know what numbers in the dial plan go where. If the PBX Network is Hub and Spoke there are finite resources available and not sending the calls to the closest PBX to its destination could cause congestion.

This is also important if you are doing any routing for analog devices that are connected to the Gateway.

Unassigned Number Handling
At first when you are doing co-existence you will not want to have Unassigned Numbers in Lync. But as you eliminate each PBX you will want to add Unassigned Numbers to Lync. This will prevent routing loops in your PRI Gateway's and SBCs. Unfortunately you can't do ranges of DIDs with the ;ext= format. You can only do straight E.164 numbers or numbers with ;ext= and the first part of the number being the same +13035551000;ext=1000 through +13035551000;ext=2000. No Bueno.

This will mean that your call will route out to the PSTN and back in before it gets unassigned number handling. Not optimal, but configuring the rest of Lync to work around this one issue causes more problems in my opinion.

So what this looks like is your User Dial Plan rule will normalize to +1XXXXXXXXXX;ext=XXXX not find a match for user, endpoint or unassigned number and route out through a PSTN Trunk. That call will then come back in on another channel and your PSTNGateway Dial Plan should normalize that incoming PSTN number to E.164 in the following format +1XXXXXXXXXX and then try to match a user or endpoint. When there is not user or endpoint found it will stop at your unassigned number handling.

911 Emergency
I know the normalization rules for 911 are fairly trivial to write, but what you need to find out in your dial plan is if each site, or floor, or zone has a specific number that needs to be passed to 911 operators. You can handle this a couple different ways. Either doing a Location Policy or handling with Voice Policies and Routes (with a Caller ID override).

If the PBX is actually doing true E-911 then you might need to consider using the E-911 function in Lync or using a similar E-911 or ELIN capability in the Gateway.

Paging
Within the dial plan you will also want to identify any paging within the PBX environment. Sometimes these are feature keys on the phone, but other times, they might actually dial something the resembles an extension. If it is a feature key, then you will need to develop a plan on how to handle Paging (usually analog FXS/FXO gateway connected to Paging system with Analog port). If it is extension based paging you have more detective work to do. You will need to identify how the paging system is connected and can you use a similar method with Lync or does the whole paging system need to be swapped out.

The above items are the critical pieces that get forgotten about when the talking heads go on about PBX replacement. PBX replacement is not easy and you need to always be prepared for that surprise that no one thought about.

Monday, February 10, 2014

Lync as a PBX Replacement Series - PBX Network Topology

Others in the series...

PBX Dial Plan
http://blog.ucomsgeek.com/2014/02/pbx-replacement-series-pbx-dial-plan.html

Analogs
http://blog.ucomsgeek.com/2014/02/pbx-replacement-series-analogs.html

Toll Fraud
http://blog.ucomsgeek.com/2014/02/pbx-replacement-series-toll-fraud.html

Overview
I thought I'd put together a few blog pieces going through some of the decision points I consider when replacing a PBX with Lync Server. This series does not cover any decision points regarding replacing PSTN connections with SIP trunks. This also does not specifically address PSTN concerns outside the United States.

Regardless of which vendor you have chosen, almost always you will need to deal with a period of co-existence when your goal is to replace a PBX. The areas I cover in this series stem from the complications of having two different systems coexisting and what areas you need to fully understand so that your strategy is sound and will be a good solution for your environment.

In this installment, I will be talking about the PBX Network Topology. Even before a Statement of Work is signed or if you are going about this on your own... you start turning the screws. Some PBX documentation needs to be dug up or created. I've fixed too many projects where someone has just started doing the integration without understanding the whole picture when it comes to the PBX. Once you have some documentation you'll probably have more questions, but that isn't a bad thing when it comes to working with the core communications of a business.

PBX Network Topology
Much like a data network, a PBX network has a topology as well. Depending on how well the PBX environment was managed this could be very logical layout... or a complete mess of spaghetti. Either way, when you look at it in a diagram you should see a network Topology pop out at you like a Hub and Spoke, Mesh, or Stand alone topology. This doesn't mean that you won't have some Branch to Branch direct connections that don't follow the topology... people do lots of crazy things over time and then forget why they did them. But overall, the design should pop out at you.

Hub and Spoke
In a Hub and Spoke scenario, there is typically one or more main sites and several branch offices connected to each main site. All sites can call each other, but for one branch to reach another branch it may have to pass through one or more main sites.

Typically Hub and Spoke is seen with TDM based connections between PBXs because the cost to connect all sites to each other is cost prohibitive. I've seen a Hub and Spoke network where all the PSTN access (Incoming and Outgoing) for a branch had to go to a main site. I've also seen where all sites had least cost routing to where a branch could make a Long Distance call and it would be a local charge because of sophisticated PBX routing.

Each PBX has its own routing table, but only to the next hop, much like a default gateway in a data network.

One last little thing to consider in a Hub and Spoke is that you may have Branch office PBX equipment that is dependent on the main site during normal operation. When you are looking at the PBX configuration, a branch may seem like it is part of the main site, but it is not. The Branch office PBX equipment is designed to come in to play when there is a failure to reach the main office. A that point the Branch office PBX takes over and starts serving the local users. In Avaya speak these are Local Survivable Processors (LSPs) and in Nortel speak you might hear CS1000B, Business Communication Manager (can be PBX too), Mini Carrier remote, or Fiber remote.

Mesh
In a Mesh scenario, all sites can route calls to each other directly. Each PBX may have its own dial plan, or they may reference a central routing server (H.323 Gatekeeper or SIP Proxy). A Mesh style PBX Network Topology is usually seen when a PBX network is VoIP enabled with either H.323 or SIP. This is also seen when there are multiple types of PBXs whether from one manufacturer or several.

Stand alone
Fairly self explanatory. You may have just one PBX you are replacing, but it is also possible your environment has several PBXs, but none of them are connected to each other. In this case, each of those PBXs would be considered stand alone. The PBX only has routing to the PSTN in this scenario.


Why do we care about the PBX Network Topology?
Gateway Placement
One of the reasons we care is that this directly impacts where we connect to the PBX network during the co-existence and the type of connection we will use.

With Hub and Spoke, it makes the most sense to use the Hub sites for PRI Gateway placement. PRI Gateway because you typically will see this with TDM based PBX networks. Placing a single Gateway at a Hub will more than likely cause a bottleneck either at PRI Gateway or a TDM connection in the PBX network. You can use ERLANG calculations to estimate the capacity needed at each hub to handle the highest volume of calls between Lync and the PBX (50% Lync and 50% PBX will be highest). When calculating you should consider calls between Lync and PBX extensions, but also Lync and the PSTN. If you don't want to use ERLANG calculations you can assume 1 out of 4 people will be on the phone at any given time calling either an Extension or the PSTN (doesn't count for contact centers). If the PBX environment has existing Call Detail Records (CDR) then those are also an excellent way to determining capacity and calling patterns.

With Mesh, if there is a SIP Proxy available, then the connection can be made there. Otherwise it is best to connect to each PBX directly. This type of connection is commonly referred to as "Direct SIP". If H.323 is involved, then one or more sites will need to be made into Hub sites and treated like a Hub and Spoke type implementation until all the sites are on Lync. One word of caution, don't assume all SIP is created equal. Make sure you have support for a Direct SIP connection, if not, you will either want to consider an SBC in between that is support by both Microsoft and your PBX vendor, or go back to a PRI Gateway connection.

With Stand alone, it becomes very important to determine if each site has a data connection present. If they do, you can deploy a Gateway to each site and use that to bring PSTN calls for those users to Lync. In order to do so, you will either need to replace the PBX in one fail swoop or do an Upstream (between PBX and PSTN) or Downstream (Gateway is connected to PBX and reaches PSTN through PBX) gateway implementation during co-existence. Since the PBXs are not already connected, the environment will need to have a dial plan created and users will need training on how to communicate directly with each other once they are on Lync.

Dial Plan
If you haven't already figured it out, this is where you will spend most of your time in designing your plan for co-existence and migration. I plan to dedicate a series to this, but your goal should be to work within the PBX dial plan and not have to change how users reach each other. Yes, this will take more work, but in the end your customer/users will be much happier.

With Hub and Spoke and Mesh, your goal is to figure out if the Topology defines how users dial a number. In other words, are you dealing with prefixed numbers that indicate a specific set of digits to identify a site. This will vastly change your Lync dial plan and create a lot of work to replicate how users dial their phone today and you need to account for this in your Statement of Work or Project Plan.

Voicemail
You got this awesome plan to use Exchange Unified Messaging once you are on Lync (I know it is the only supported)... but have you given thought to the order in which you will be replacing PBXs? Hint: if the PBX environment has centralized voicemail you won't want to start there or at the very least leave the PBX in place until all the others are migrated.

Order of Deployment
Speaking of "order of deployment".... Voicemail isn't the only thing that impacts this. Yes, you might have business reasons for the order or deployment (for future job security please don't put the executives on first), but you really want to consider your trunk capacity as you do your migration. When you start to approach that 50% mark you might want to choose one of your big sites... so that you won't ever hit that 50% mark, but jump right over it. This will help with your trunk capacity because you will go from having most of the users on the PBX to having most of the users on Lync. Once most the users are on Lync, guess what? They will call each other direct and won't be using a trunk.