Amazon Connect Custom Integration tools!

If you have taken the time to experiment with AWS Connect and the creation of a cloud call center instance, you know that the basic setup is achievable by a business analyst and no implementation engineer is required. This is good news for very simple, inbound call centers but if you are planning to connect with the rest of the enterprise, you will need some folks skilled in full stake web service development.

No Call Center is an Island!

Call Center as a business process and customer experience management, require that the call center be able to communicate with other information resources throughout the enterprise. The interface between the AWS Connect call center instance and the rest of your organization will must certainly require both middleware and API’s that make use of advanced software development tools within AWS!

Common integration requests that dominate the call center technology space include:

  • Customer Routing Database Integration;
  • Work Force Management
  • Voice and Screen Recording and Playback
  • Voice Analytics
  • Salesforce.com
  • Electronic Health Record
  • Website Integration (think MyChart or CoBrowsing)
  • Microsoft CRM
  • Microsoft Skype for Business
  • Custom Agent dashboards
  • Real Time Metric display boards

These are just a few of the common requests we see on a daily basis. There are also unusual requests for custom solutions that are unique to the business enterprise the call center is deployed in!are also unusual requests for custom solutions that are unique to the business enterprise the call center is deployed in!

Common AWS Connect Integration Tools!

There are a few tools that are essential for developing integrations in AWS Connect. Generally, you will always require Lambda a “function as a service” to unite the call center to any other service. Lambda is “serverless” so you do not need to worry about setting up a server and you can write your function in any of the popular programming languages including Node.js our particular favorite!  Unless you are interfacing with a CRM, you will need a database and we would choose a noSQL solution like AWS DynamoDB, another server less solution.  Lets assume you want to route calls based on the callers area code, so that east coast calls go to the Agent group in your hierarchy that is optimized for east coast callers.  Maybe you want to greet your callers by name. This would require you to pass the Caller ID on an incoming phone call to a function in Lambda that would look up the customer and find the name, then pass the name back to the call center and activate Poly, the AWS text to speech service, so that you can prompt the caller with “Hi <customerName> before continuing to route the call to an agent!  Maybe you want to display the callers name to the Agent when they answer the call, which would again require both Lambda and DynamoDB in addition to some custom code!

Custom Agent Display?

Sometimes it is necessary to create an entire Agent dashboard to handle information displays, team collaboration, key metric broadcast, recording retrieval and playback.   We created the Dextr.Cloud dashboard to provide such an interface.  This is an example of the type of integration that is possible with AWS Connect and the many services that exist in the AWS Cloud.    We are interested in learning more about your own call center integration requirement and invite you to give Dextr.Cloud a try and also to contact us with your integration “’wish list’.   We have seen a lot of requests and nothing suprises us anymore!  So please feel free to play ‘STUMP THE VENDOR” and we will see if we can help you or at least direct you in the right direction!

 

 

 

Amazon Connect Arrange a Call Back from Queue?

Setting up options for Callers waiting in Queue for “the next available representative” often include offering a call back option. Generally, it is a best practice to not offer this option immediately but queue the caller for some time before offering this option. They have already called in and you have answered the call, so let them wait a few minutes before offering bail out options.

Common Call Flow Errors!

One of the most common errors in call center call flow planning is allowing a customer caller to queue for an Agent when no agents are logged in! The second biggest error, is leaving folks in the call back queue, at 5PM when all the agents log out and go home! So how do you do make sure this situation does not happen?

As it relates to the first issue, we always check to make sure that Agents are logged in BEFORE we queue a caller! This is a very simple step to do and it saves a lot of aggravation for callers who will never forget how long you left them rotting away in an empty queue!

Now as it relates to ‘call back’ without losing your place in queue, we have the same issue. Let’s assume that you offer callers this option. It is now 15 minutes before closing, what happens if all the agents log out before the call back is next in queue?

Call Back without losing your place?

In AWS Connect, Call Backs will follow the On-hours schedule. So if someone left a request for call back at closing time, that option will not trigger until the next day when the queue is open per On-hours. Lets see if we can improve this, but NOT offering that option late in the day!

We can setup a new schedule that only offers the call back between certain hours, so that if it is near closing, we do not offer the caller this option. This can be easily scripted in AWS Connect Contact Flows by adding a “check on-hours” step that eliminates this option when callers enter the queue and hour before closing time. This assures that Agents can log out at the appointed time and not leave anybody in queue!

AWS Connect is written around “contact flows” of different types. A “contact flow” handles inbound calls and routes them to Agents in queue. A “customer queue” contact flow deals with how to treat a caller while they are awaiting for the “next available representative”. You will learn this the hard way the first time you try to add a block to a contact flow and find that, though the block was there earlier, it is not there now! Why, the contact flow you are working on, does not support this type of block.

Free Call Back Script just for Asking

In this example we use a “Main Greeting” that is triggered by a call to the DNIS number associated with this path. We start the contact flow off by setting up all the variables like what voice to use, are we logging, what queue hold to use, which queue we are using etc. The flow goes on to check operating hours – routing ON- hours to the Queue and Off-hours to the Voice Message center.

If it is “On-hours” we send the call to the Queue flow. If an Agent is available, we connect them to the caller. If all agents are engaged with other callers, we queue the call. We play our “poor mans” Estimated wait time and then queue them with a “care message” followed by Music. 60 seconds later, we offer the option to continue to hold for an agent, or press 1 to receive a call back without losing your place in queue’.

Before we offer this option, we check another schedule that determines if we should offer the call back option. If the caller hits the center during the call back hours, the call proceeds as described above. If it is an hour before closing time, we do not offer the option.

So hit us up with a request and we will send you three “Quick Start” scripts that enable you to get this working as quickly as you can import the scripts into your AWS Connect call center instance.

Better yet – Give us a call and we will set this up for you!

Amazon Connect replaces ShoreTel Workgroups with the Dextr Dashboard!

Replace ShoreTel Workgroups with AWS Connect1

Recently we had a client with a very specific set of requirements and DrVoIP was able to satisfy with Dextr dashboard!   The client had a ShoreTel deployment that used ShoreTel Workgroups. ShoreTel Workgroups are often called a ‘poor man’s’ call center.  The client had made a decision too they were migrating away from ShoreTel to Skype for Business, they needed a new Call Center solution.  Workgroups act like traditional hunt groups but they enable customer queueing and both historical and real time reporting in a manner that is very similar to a formal call center.

The client wanted to replicate ShoreTel Workgroups along with the same ‘look and feel’ as ShoreTel Workgroup agent dashboard.   This dashboard enabled queue monitoring and also enabled a supervisor to change an agent state from Forced release to available or move an agent between queues.   We had no doubt that AWS Connect was the ideal solution, but we knew the Connect Control Panel or CCP as AWS calls the webRTC soft phone, would need a lot of work if it was going to provide the same functionality as ShoreTel.

 

We created the basic Dextr Agent dashboard to have the same features and functionality as the ShoreTel Workgroup Agent interface with several new and advanced features.  We needed to create a solution that would enable Supervisors to create an ‘ad hoc’ meeting and to close the call center and even create a new ‘CLOSED’ greeting.   Additionally it would be desirable if the Supervisor could send a broadcast message to all the agents in the queue.  This broadcast message would scroll across the agents screen, alerting all to a situation that the Supervisor wanted to bring to the attention of all Agent.

AWS Connect Holiday Schedule.

The first requirement was to setup a holiday schedule and also to allow the supervisor to create a ‘CLOSED FOR MEETING’ date and time.  AWS Connect does not have this ability out of the box, but it does have the API’s available to create such a solution.  So our team added this functionality!  Dextr enables a user with Admin privileges to open a window and create both HOLIDAYS AND AD HOC closings.   The instance is initially stocked with all US Federal holidays already listed.  The Admin can modify, add or delete these dates.  They can also specify, via the drop down window, which queues they are closing.  There is also a Text to Speech window in which the supervisor can enter the text of a prompt that will be played to a caller should they call during that time slot.

Dextr uses AWS Lambda to test for a holiday or ad hoc closing as step one in the opening contact flow.   The Lambda function brings back open or closed, a reason code and the text to speech prompt.   In this way the caller might hear ‘ You have reached us at a time we are closed for <insert reason from Lambda>, please hold while we transfer you to the message center’.   The entire message is created by the supervisor as the TTS or text block that will be returned by Lambda.

Dextr also enables the Supervisor to send out a broadcast message that scrolls for all queues or just a selected queue!  This is a list of all the features of the Dextr Dashboard basic version;

  • Nothing to install! Instant Access via https://go.dextr.com which has video instructions for on boarding;
  • Customizable Logo;
  • Role based Login (supervisor, agent, administrator)
  • SAML support;
  • Agent Team Status Display;
  • Agent Call Activity with (click to return call);
  • Directory System with Click to call;
  • Help Button – Alert Supervisor;
  • Queue Monitor – including calls in queue, max waiting time; optional red, yellow tags)
  • Personal Recording; (permission option);
  • Supervisor Permissions add: Login/Logout (change agent state) Monitor, coach and Barge in;
  • All Recording search and play (see note 1 below);
  • Real Time Metric review Report Generation
  • Ability to set Holiday Schedules and “ad hoc” closings with new close prompt (think team meeting).
  • Push Announcement String out to Agent Dashboard for alerts and other notices.

Dextr augments the basic AWS Connect CCP softphone to enable advanced features that we find most call centers demand!  See Dextr.Cloud or DrVoiP.COM for additional details!

 

 

 

 

Dextr a Customized Agent Dashboard for #Amazon Connect Call Center!

AWS Connect CCP

Building out call centers on AWS, you learn a lot about opportunities for productivity enhancements!   One of the first issues that we noted was that the standard Contact Control Panel or CCP, which is basically a WebRTC soft phone client, though very useful has many opportunities for improving the Agent experience.   The list of request features is growing and as a result, we have taken on the development of  a customizable AWS Connect Agent Dashboard!

 

Call DrVoIP for AWS Call Center migration assistance.

If your only introduction to AWS is Connect, their cloud based call center product, you have successfully created your first call center instance and you are now taking inbound phone calls!   It was remarkably easy and with no real ‘geek” training, most call center professionals were able to log in, setup an instance, organize a call flows, create agents and voice prompts, obtain a phone number an in a few hours, you were taking phone calls!  Wow!

AWS Demo API’s

Did you know that the Agent CCP is completely customizable?  AWS provides a number of API’s and Connect Streams that a software engineer can access toward the goal of building an Agent Dashboard with a set of features and tools that are unique to your call center environment.  There is even a site you can log into and test some of the available API’s.   If you go to http://connectdemo.com and click on the “demo sites” you can see some examples of customized CCP, Click to Call, Screen Pops and other tasty code bits.

Agent Streams

We note that there are many “connect streams” that a developer can tap to create their own version of CCP.   The supervisor side, however is not as fully formed and there are not as many streams and API’s available to support Supervisor requirements like real time queue and agent metrics.   In fact we had to develop our own socket layer communication strategy to implement the features we envisioned in our dashboard.

Recently we have discovered new and not readily available API for other AWS streams.  Some are only available depending on your support contract status.

Agent Dashboard Feature Set

The list of functions and features that we have added to our CCP is still growing but we set a goal of making the dashboard painless!   For example there is nothing to install.  Our application needs to be added by your instance administrator as an application end point in the Connect dashboard.  Once that is complete, the user just points at our portal and enters their instance name (you can even upload your own logo).   The traditional AWS Connect CCP shows up and you login as normal.   Once your credentials are established, you are then presented with the revised Agent Dashboard as shown below.

AWS Connect Dextr Agent Dashboard feature set

Most folks have asked for a “team status” display.  As an Agent I want to see the status of the other agents on my team.  So the first attribute we added was just that, a team status display.    Each agent has their own Activity List showing all of their calls both inbound and outbound.   Next to each call is a link to hear the recording of that call. Supervisors can select all calls, but agents only see their own call recordings.

Each Agent has a personal contact list with contacts that they have entered for their own use.  This augments the “quick connects” that they system administrator had created.  Here is the feature list:

  • Nothing to install! Instant Access via https://go.dextr.com which has video instructions for on-boarding;
  • Customizable Logo and YourCompany custom log-in URL;
  • Role based Login (supervisor, agent, administrator)
  • SAML support;
  • Agent Team Status Display;
  • Agent to Agent Chat
  • Agent Call Activity with (click to return call);
  • Directory System with Click to call;
  • Help Button – Alert Supervisor;
  • Queue Monitor – including calls in queue, max waiting time; optional red, yellow tags)
  • Personal Recording; (permission option);
  • Supervisor Permissions add: Login/Logout (change agent state) Monitor, coach and Barge in;
  • All Recording search and play (see note 1 below);
  • Real Time Metric review Report Generation
  • Ability to set Holiday Schedules and “ad hoc” closings with new close prompt (think team meeting).
  • Push Announcement String out to Agent Dashboard for alerts and other notices.
  • Omni-Channel SMS/MMS enables test and pics to the next available agent
  • Omni-Channel email routing to the next available agent
  • “no headset” audible alert options for softphone

We are also planning to integrate or Click2WebChat functionality as an advanced feature option.  This would bring website co-browsing, video chat, SMS and keyboard chat into the call center!  The Dextr screen shows the Agent interface including the Video and Chat links.

How do you set a Holiday Schedule in Amazon Connect?

Dextr enables a user with Admin privileges to open a window and create both HOLIDAYS AND AD HOC closings.   The instance is initially stocked with all US Federal holidays already listed.  The Admin can modify, add or delete these dates.  They can also specify, via the drop down window, which queues they are closing.  There is also a Text to Speech window in which the supervisor can enter the text of a prompt that will be played to a caller should they call during that time slot.

We named the dashboard Dextr!  There is nothing to install.  Follow the video instruction below and have your Amazon Connect Administrator add us as a trusted application, then head over to our portal, log in and put Dextr to work for your team!

If you have a requirement for the CCP we would also like to know more about your requirements, so let us know.   If  you do not have an AWS Connect instance, DrVoIP will build you a “proof of concept” portal for no charge!  Remember, the American Business Communications landscape will be littered with the bleaching bones of those companies that do not adopt Amazon Connect as the enterprise call center that manages customer engagements!

 

 

 

 

 

 

 

 

 

 

 

 

The Achilles Heel of all Cloud Based Call Centers!

The Cloud Call Center Problem Statement!

A very common call center requirement is the ability to route a call based on the DNIS number dialed.  This is simple enough when you have only a few DNIS numbers to manage, but consider this application:   Consider a central call center that provides centralized appointment scheduling for some 600+ medical offices.    The call center agents are required to answer an inbound call with a custom answer greeting that is based on the medical office that cares for that patient.   The solution in place today requires the cloud platform to have a unique DNIS for each of 600 medical offices.  When a medical office wants to take advantage of services offered by the call center, they call forward their phone to the unique DNIS number on the call center platform assigned to their medical office.   On an incoming ring,  the call center grabs the DNIS and uses that number to index a connected database to retrieve the  name of the medical office and then display it to the agents on call presentation so they can provide the custom answer prompt.

As you might imagine, maintaining and updating both the relative campaign and a database of DNIS numbers is not only a nuisance with many opportunities for an error, it is also not very scalable.  The simplest solution is the ability to normalize or change SIP Headers or obtain the RDNIS in a PRI connection.   Neither of these is an option in any of the many cloud based solutions we have worked with.

The CPE solution!

In a CPE based solution we can touch the boarder controller of the incoming SIP trunk and see the various headers.   In a PRI trunk you could also see not only the CID/ANI  but the DNIS and the RDNIS.   RDNIS is commonly used in a voice mail system for example, to know the correct mailbox to open so the caller does not hear a main greeting but a custom greeting for the mailbox owner.   In either the SIP or PRI environment, we would NOT need 600 DNIS numbers to solve this application.   We could see the RDNIS or the FROM SIP header and use that field to look up the correct answer prompt or medical office name in the database.  We did a complete tutorial on this SIP header manipulation to achieve this same solution though the application was a bit different.

One for all and all for one?

Another major shortfall with cloud based call centers is that you will find it very hard to make modifications that are unique to your call center.  Keep in mind that all the cloud based call centers, with the possible exception of AWS Connect, are solutions that encompass many different clients.   The cloud provider can not make a modification for your call center unless it is applicable to all their other clients.  Likewise, when they upgrade or add a new feature, you are getting the new feature and the upgrade regardless of your desire to participate!

Summary

The Cloud is an amazing resource but it is not a one size fits all.  You will need to understand your requirements and how they match to what is generally available from your provider.  You should also understand that you will be increasing your WAN connectivity requirements to include advanced options like Software Defined Networks and MPLS, BGP along with bandwidth increases and new firewall challenges that you would not have on a CPE deployment.   You will still have phone and video end points, power over ethernet switches, network access credentials, intrusion protection and all of the IT resources you would still have with the Call Center located on site.  There are many advantages to the cloud, but make sure you know what you are hitching enterprise with!

 

 

 

 

Building an AWS Call Center is the definition of a “Disruptive” technology”!

AWS Connect – A Game Changer!

It has been almost a year since we first took a look at the AWS Connect Call Center service and what a year it has been.   Since it’s pubic release, AWS is most likely the fastest growing Call Center solution in the global market.   The reasons for this are clear and unmistakeable.   We think AWS Connect is a game changer!   Our first experience with AWS Connect was the result of a contract to move a ShoreTel ECC to AWS.    ShoreTel had basically abandoned the ECC product with no new feature develops in several years and the product was stuck at Version 9.  Given the great unknown regarding the future of ShoreTel CPE solutions, this client made the decision to move to the cloud and we were choosen to make that move painless.

Why Move to AWS Connect?

AWS Connect is a cloud based solution that follows the AWS mantra of elastic, scalable, reliable and highly available!  There is nothing to install and nothing to license!  You pay only for ‘usage’ at a couple of pennies per minute!   One client was paying some $250K a year in cloud call center licenses before they even processed their first phone call!  On AWS Connect this same spend would yield over 900,000 7 minute phone calls!  Take that to your CFO and note the reaction!  At the AWS reInvent 2017 conference, Capital One the tenth largest American Bank announced that it had moved to AWS Connect and the list of companies grows by the hour!

The DrVoIP Challenge

AWS makes it easy to spin up a call center! In less than one hour, you can have a fully functional call center handling inbound phone calls to an agent population that can be geographically distributed anywhere on the planet that supports a quality internet connection.   More than likely, it will take you more time to upload or enter the names of your agents into the Connect dashboard then it will take to create the Connect instance and obtain a telephone number! In fact DrVoIP will build out a ten agent 3 queue inbound call center for you company to pilot in under one hour!   Just give us a shout and try us!

Customization and Functionality is limited only by imagination!

One of the challenges that the current crop of cloud based call center providers face is the need. to standardize their service offering.   If you are anyone on the Gartner Magic Quadrant, you are serving thousands of users.   You can NOT make a change to the platform as it impact every customer in that providers installed base!   If you want to add a new feature, you will have to follow that vendors “product road map”.

AWS Connect has full access to the complete range of AWS Services including Lambda functions, Speech Recognition, Text to Speech, Kinesis, Mobility,  Cloudwatch, DynamoDB and the full range of AWS Storage solutions including S3 and Glacia. (recording storage and historical reports)!   Though the base instance is easy to configure and comes fully functional with a “default” call flow, the range of potential application solutions is limited only by the talent of your implementation team and your companies vision of the perfect “customer experience”.

Artificial Intelligence?

Most of the population now carries around a personal communicator that has Siri or Alex or Google and folks have not only grown accustomed to these features, they now expect them!   Do you really expect to front end your call flow with a “touch tone” based “call tree” or IVR that expects them Press 1 for English?  Come on people!   It is the 21st century!   AWS makes Alexa like features available through a natural language chat bot named LEX.   Is it not about time your call center had a natural language interface to your customer service group?    Try asking your current provider to add that functionality and when you look at the licensing fee, if the feature is available at all, pick yourself off the floor and give us a call!

Text to Speech?

Historically, as call center scripting professionals,  we resist starting a project until all of the prompts required in the call flow have been scripted, recorded, converted to the proper wav format and made available to the implementation team.   We can’t tell you how many project hours have been burned because clients did not think out the IVR messages or record the automated attendant announcements!   AWS has a wonderful feature named Polly that can enable us to script, fill the prompts with “text” and not only have our choice of voice artist and accent, but our choice of spoken language immediately available.   We can prototype call flow announcements and make changes  on the fly without waiting for a recording to be scheduled!

Data Dips with Lambda and DynamoDB

We first got involved with AWS because as consultants, we get paid on project completion.   If we have a call flow that requires a database dip to pull back  a”custom answer prompt” and were told that we had to wait for IT to spin up a Windows Server, blah, blah, blah….we would just log into AWS and spin out our favorite LAMP server and finish the project while IT was still filling out purchase requisitions!   Now we don’t even spin up a sever!  AWS is at the forefront of “server less” technology and Lambda and DynamoDB make it possible for us to write the database functions and completely ignore what the server technology is, let alone what OS it is running on!  AWS even bundles about 1 million Lambda function calls as part of its free tier.

Limitations, ah “No”!

Every system has constraints.   We have only one constraint that we have found to date on AWS but it is the same Constraint we find in Cloud solutions like Five9 and even cloud solution provider Twilio.   We can not access the telephony side of the platform to manipulate SIP message headers of other Call Control signals.  Currently this is hidden from the AWS Connect instance.  We have however, never had this be a show stopper and have always found a way to implement a work around.    At the rate AWS cranks out new feature and services however, we fully expect to see a SIP interface that we as developers can access on the shortest product road map implementation schedule in the global market place!

We Build AWS Connect Call Centers!

DrVoIP can design, deploy, maintain and manage your call center at a cost that is arguably redefines “total cost of ownership.”   Give us a call or let us know what you are thinking and you will find us to be the most experienced group of “full stack” developers available to those seeking an AWS Connect deployment!

 

 

 

 

 

 

 

 

 

 

 

Why Arlo by Netgear Sucks so bad!

Arlo on the down low!

If you are considering Arlo for real time security and door answering, you will be very, very  disappointed.   The response time is just to long!   If you just want to have a record of what happen and can live with recorded playback, then this is the way to go.  The cameras are excellent,  but the system as a security solution is full of short falls.     Here are just a few of our pet peeves!

Painfully Slow camera Access!

Having had the Ring doorbell with built in Camera. Microphone and Speaker for a base cost of under $200,   our expectations  were set.   Hear the door bell?  Hit your iPhone app and then very quickly see and speak with the visitor.   With Arlo,  If someone knocks at the door, by the time you log in and access the door camera they are gone.   Additionally you then discover that for a four camera solution with a price of about $600, you can not talk or hear the visitor even if they are still standing their by the time your App connects!    You will need to purchase PRO if you want to Hear and Talk through the camera.    We add one Camera for about $200!

Other “Pro” features.

Arlo marketing literature is so confusing, one can only conclude that the purposely set out to confuse the buyer!  We have Arlo, Arlo Pro and Now Arlo Pro 2!  Can we make it more confusing for the helpless shopper!    Let’s  talk about “motion detection”.    You can set “motion detection” on and off but only for the entire system.   Lets say your want motion detection alerts for the front door camera, but do not want it on for the lobby camera or living room.   You want to know if someone is at the front door, not if the dog is walking across the living room!   If you want to activate “Zone” based motion detection, you need the Pro Camera.

 Pro Base Station?

If you want to use the Zone based motion detection I added a Pro camera to my four camera System and I still did not get this feature you have to purchase the Pro base.   Both the Pro and whatever you call the “Not Pro” base controller appear to be the same hardware, but the software is different.    You can spend the money to add a Pro Camera to your mix, but you still do not get the Pro base features.  They don’t mention this when you buy a Pro Camera.  This is really BS in my humble opinion.  The base units should have the same software and know which Camera they are linking to!

Geo Location Short Fall?

Also you can share notification with another member but no observations.    For example assume you have a home setup and you want motion alerts sent to both yourself and your wife.   She can share your account notifications but she can not share you “geo settings”.       I only want motion alerts when I am away from the house.   “Geo Alerts” use the Smartphone GPS app to switch this feature on and off.      Well if you share the App with your wife, would it no make sense to turn it on only when both of your iPhones are out of the house, but not when just your iPhone is out of the house?  Unfortunately when I leave the house the system is not smart enough to know my wife is still home.   Really Netgear?

Cloud storage?

Your Arlo will connect to the cloud and store your video regardless of you desire to do so or not!   In fact we think this is what slows down the response rates.    If you do not want your network connected to the cloud and subject to folks that you have no control over, you might want to think this entire Arlo cloud strategy through!    Regardless of your security setup, Arlo is going to take your pictures and send them to the cloud for storage!   For the Smartphone app to work,  you must be linking with a cloud based camera controller that has access to your cameras!  Aside from taking forever to connect, the fact that you can not control access to your cameras is perhaps the biggest concern about Arlo as a security tool!   Not only can you not control it, or reach the cameras from your internal network but you have not assurance that someone outside your network can’t connect.

Summary

Arlo customer services seems limited to “community” support.   Admittedly, the Arlo cameras are excellent and weather proof!   They have some Zoom capability and some night vision.     Netgear should consider making the base software such that you can mix cameras and get the full feature set!  They also need to make the cloud storage optional and provide network connectivity options that enable you to select your own IP and port access!

In general this is a great camera system if you only want a historical recording for later playback.  As a solution for real time security it does not match Ring and cost much more.   A single camera solution from Wansview sells for $89 and provides full tilt and swivel, bi-direcitonal sound and network connectivity options.   Not making Pro software available with Pro camera additions is a real corporate miscommunication.

Netgear should stay with their core competency as the low cost provider of switches and routers for the Home Office, Small Office market.

NOTE New Defect 12/7/2017 – Due to the fact that I was out of town the night my neighborhood was evacuated because of the  San Diego Fires, I though I would log into Arlo and check my house by camera.   My house was offline with power failure.  It was at this time that I discovered you can not access your smart phone ap, if Arlo can not make contact with the camera or router.   This means you can even check what was stored in the cloud from the Ap!  (The product development team clearly never heard of Agile, or Scrum).

WTF is Ngrok?

Ngrok better than sliced bread!

As a software engineer developing telecom based web applications, testing and validating software can be a major time sync.  How do you get your lab system on the Internet, accessible with a public IP, so you can test a Webhook or REST API for example?   What if you are working behind a router that has a dynamic IP address?   Reconfiguring your firewall for each test of the new code is a pain!  There has to be an easy way to enable testing without going through 20 acts of vaudeville to test your application code!
We recently discovered two tools that are now essential elements of our software engineering toolkit!   Ngrok is very creative service that solves many problems for testing network-based applications during the pre-deployment, development process.  Ngrok is a software service developed by Alan Shreve, clearly a genius,  who often goes by the name “Inconshreveable”!  In its simplest form, Ngrok is a solution that enables you to expose your lab web server which is normally installed behind a NAT or firewall, and connect with it over the Internet.   Ngrok makes it easy to set up a secure outbound SSL tunnel that can be reached by a hyperlink to a public IP.

Secure tunnels on Demand!

Ngrok is a powerful tool and Alan Shreve is an extraordinary personality!   He makes this available for free use!  No credit card required!   Just open an account here and give this a try!   Then download Ngrok to your local Windows, MAC O/S or Linux development platform, unzip it and run it with a very simple configuration command.   You might enter  “Ngrok http 80” into your terminal window to indicate that you have a web server listening on port 80 on your local machine.

Ngrok then displays a DNS link that you can point at to access and test your application.   Now you can demo without deploying, simplify mobile device testing, build webhook integrations or run personal cloud services from your own private network!   For a modest monthly fee, you can change the random number Ngrok generates for your unique link to a reserved domain name.  So https://92832de0.ngrok.io can become https://yourcompanyname.ngrok.io which will not change and is easy for you to deal with!  The free account generates a random number that will change each time you run Ngrok.   Using a reserved domain also makes webhooks a lot easier.  For example, when developing Twilio applications you would have to change your webhook every time you ran Ngrok.  The paid version enables a reserved domain name that you can now use to stabilize your Twilio webhook!

You can also build secure tunnels that are password protected and able to support multiple simultaneous connections.  Open http://localhost:404o on the platform running your Ngrok client and you can inspect and replay traffic:

We now regularly use Ngrok not only for development testing but also for remote support applications so we don’t have to worry about VPN credentials!    You can create TCP tunnels as easy as you set up HTTP tunnels!  This resource will save you more than enough time to pay the annual fee of $60 for a basic account (1 online process, 3 reserved domain names and eight tunnels per process).     Alan is online from time to time and otherwise provides a link to ask questions!   (Learn about Alan’s other projects here)!  No serious developer, network engineer or remote support technician can afford to be without this power utility! – DrVoIP
(As a product of the 60’s you might note that Grok was first used in “stranger in a strange land”, a SiFi novel.  Profound effect on most of the 60’s generation).

Configuring a SIP Trunk TIE Line between CISCO CUCM and ShoreTel iPBX

Merging Systems is fun and easy?

In a world of swirling mergers and acquisitions,  IT organizations are expected to integrate the different systems so that they all work together.   In the world of  IP PBX systems, that might result in having to make a ShoreTel system play nice with a CISCO system.  Actually, both systems support SIP and though it is sometimes more of an art than a science, it can be configured and made to work.   In fact we are seeing this request a lot lately.  Not sure why, but there are a lot of ShoreTel/CISCO integrations out there in the real world!   This video cheat sheet takes a look at a real world configuration from both the ShoreTel side and the CISCO side, so there is something for everybody who has to work with either or both systems.

Quick Topology Overview

In our example we have a CISCO Version 11 deployed in France and a ShoreTel version 14.2 CPE solution deployed in several NY locations.    This will be an interesting configuration as both systems have over lapping extension numbers.  For example, both systems have the range of 4100-4199 as extension numbers.  This along with a requirement for tail end hop off or TEHO at both ends makes for an interesting configuration puzzle.  We determined to take it a step at a time and get a basic SIP  TIE line working between the two systems.  Once that was up an operational, we could then focus on the basic dial plan strategy that would enable us to resolve the extension number conflict.

We are not going to use a session boarder controller at either end.   The good news is that it will greatly simplify the configuration as the two SIP proxies will directly exchange SIP messages.   In the case of the CISCO, the SIP trunk will originate on the call manager server itself and will terminate on a ShoreTel SG appliance (one of those orange boxes for you CISCO guys) with SIP Trunk resources sufficient for the number of channels you want to set up.    The bad news is, that on the CISCO side it makes trouble shooting a bit more time consuming.  If you had a CUBE in the mix you could easily open up CCSIP Messages in the debug on the IOS device, but when you do not have IOS you need to download logs from RTMT.  On the ShoreTel side, there is the ability to do a remote wire shark capture from the HQ server diagnostic panel using the SG appliance as the end point source.   (As a VOIP engineer SIP debugging should be second nature).

To avoid the use of a SBC on either end, we have to configure the solution entirely within a private IP topology.  In this case we have a 10.0.0.0 /24 network on the ShoreTel side and a 192.168.53.0/24 network on the CISCO side.   The WAN connection is an MPLS network.

ShoreTel and CISCO dial plan strategies

CISCO does not really care about over lapping extension numbers of difference in extension number ranges.  When I say, they don’t care, I mean they have a strategy for dealing with it.   You might have a multi-site deployment as a result of a recent acquisition and you have four digit extension numbers at one site, and five digit extension numbers at a different site.  CISCO can deal with this.  ShoreTel not so much.   With ShoreTel you would have to convert the four digit site to five digits (you can expand from four to five digits,  but not five to four) if you are going to have one dial plan.  In CISCO you could actually let both sites coexist with different extension number lengths.

CISCO has a verbose dial plan strategy that expects you to create route “patterns” that when matched by dialed digits, point to a gateway or route list that contains a destination reachable by that route pattern.  In our example, we set up a dial pattern of 51.xxxx with a pre-dot discard that points to the SIP trunk TIE Line over to the ShoreTel.   The SIP Trunk configuration is relatively simple and is shown in the video below.

ShoreTel requires you to configure a Trunk Group and then put your individual trunks into the group.  These individual trunks are basically SIP channels and the video also shows this configuration.  The difference in the strategy of both systems is interesting to note.   CISCO is routing to this trunk group based on a route patter that matches dialed digits.  ShoreTel is going to want you to define both an access code and list out the OPX (off premise extension) numbers that this trunk can reach.

From a digits dialed perspective, ShoreTel is going to match the dialed digits against the list of OPX extensions to route calls over the Trunk Group that contains a matching OPX list.   Note that no access code will be required, though it will be required in the Trunk Group configuration.

SIP Trunk Group Profiles

Both systems required a reference to a SIP Profile that defines specifics of the call setup messaging.    Sometimes this is a bit more of an art than a science and it may take a bit of tweaking.   CISCO has a standard SIP Profile and an associated SIP Security profile both of which will be referenced in the SIP trunk configuration.  The only change I typically make to the SIP Profile on CISCO is to activate the “enable PING option” so that I can keep track of my trunk status which would otherwise be “unknown”.

I made all my SIP Profile changes on the ShoreTel Trunk side.   This is the  list of configuration options we applied and it was the result of trying and retrying, so this list alone should be worth the blog read as it most definitely works in our example:

OptionsPing=1
OptionsPeriod=60
StripVideoCodec=1
DontFwdRefer=1
SendMacIn911CallSetup=1
HistoryInfo=diversion
EnableP-AssertedIdentity=1
AddG729AnnexB_NO=1
Hairpin=1
Register=0
RegisterUser=BTN
RegisterExpiration=3600
CustomRules=0
OverwriteFromUser=0
1CodecAnswer=1

If you have never configured a ShoreTel SIP Profile, the video walks you though this in detail.  ShoreTel provides a “standard tie-line” sip profile and suggests that you use it.  In fact if you change it, they generate a strong message urging you not to do so, but change it we did to the settings above and we had a more than acceptable result.

Extension conflict resolution

ShoreTel trunks do not out of the box allow abbreviated dialing.  The Standard ShoreTel domestic dial plan really wants what amounts to an E164 format.   ShoreTel will take all digits dialed and attempt to construct a +1 NPA – NXX – XXXX dial string.   So in this example, we are not going to be able to dial 51 as an access code on the ShoreTel side, then output only four digits.  Not going to work.    As outlined above, ShoreTel will want you to define the OPX extension reachable by the encapsulating trunk group in a detailed list as part.   The good news is that this means that you only have to dial the distant extension number and ShoreTel will see it as an OPX and route it over the associated trunk.

Clearly this means these extensions are unique.   What are we going to do? We have extensions on both sides of the TIE Line that are not unique, they are the same 41xx.   ShoreTel will allow you to create translation table to over come this limitation.   We could create a range of 61xx for our OPX list and then convert it to 41xx in the translation table and that would eliminate our problem.  Not my favorite solution but it may be the one we have to go with.   The down side is that we have no eliminated the 61xx range for use on the ShoreTel side.   Additionally, it is not very friendly to directory systems as people have to remember that if you are calling 4304 in France from New York, you need to dial 6304 not 4304 another colleague in NY!

Ideally we want to make use of that access code.  It would be nice to dial 51 + XXXX and be done with it, but as previously explained ShoreTel does not easily support that option.   It may be possible to write a custom dial plan and apply it to this specific trunk group.   For example, when working with paging adapters that have zones, you want to dial the paging amplifier and then dial your zone.   The custom dial plan for this would by “;1I” but you would still have to dial an OPX number.   For example, you would create the trunk group and maybe put 1234 as the OPX which would route the caller to the paging adapter.  The custom dial plan rule would be interpreted by ShoreTel as “do not echo any digits” enabling the paging adapter to play a second dial tone, and then you could touch tone out some digits.   Sounds like this would be a good solution but you would end up dialing eight digits, but it would free up a range of extensions that might otherwise be eaten alive by the required translation table.

ShoreTel Update

At the end of the day, the solution was to create a custom dial rule and apply it to the ShoreTel Trunk Group.  Users inside the ShoreTel would dial 50+xxxx but as a result of the custom dial rule, the ShoreTel would see 999-555-xxxx and only pass the xxxx.   Remember that ShoreTel wants you to list the extension numbers on the other side of the TIE line in the OPX list of the Trunk Group.  In a situation in which you have extension conflict you can use a translation table, but often that is not the most friendly solution.  Ideally you will want to dial and access code, get connected to the distant phone system and then out dial the extension digits regardless of extension conflict.   To do this on a ShoreTel system will require a custom dial plan modification to the trunk group.  The document on this subject is very limited so you either have to pay ShoreTel  Professional Services or be prepared to play detective.  We went the detective route, so hit us up for the solution.