being flexible – webex vs zoom(future meetings schedule)

Welcome back … Part 2

It has been far too long since getting my thoughts or things I have learned expressed on this site. Well over a year to be exact. Sure in that time we have had a Pandemic which has thrown all of our routines off the rails. That sounds like an excuse so let me stop giving those and get to the point of this post.

The Point Of This Post …

The following is not going to be some great revelation to anyone with time put into an IT career. With that being said it’s easy to forget how important being flexible can actually be. In this case being flexible means you can’t lock yourself into one ecosystem. Expanding on that many solutions deliver similar end results though they end up getting there via different routes.

Getting There Via Different Routes …

Within the world of virtual meetings people schedule things in the moment (ad hoc) or in the future (future , yah I have no fancy words for that) . These meetings can be recurring or singular. They can be smaller meetings or larger Events or Webinars. They can include co-workers, partners, vendors or as we have all learned over the past year the random pet that desperately needs to be a part of your ongoing meeting for reasons. The thing is there are meetings in the future be it tomorrow , next week , next month or next year.

Tomorrow , Next week , Next month or Next year …

As an Admin or Engineer you run across all sorts of scenarios that could require this type of info. Maybe you are splitting one tenant into two tenants so you need to know what things are coming up that may need to be moved. A similar scenario, what if you are migrating from the solution of one vendor to another. What if your focus is Infosec and you are tracking down a possible attack vector where someone is allegedly using your meeting solution for their own planning. All three of these are scenarios I have supported in the past and all three were successful because I was able to look at upcoming scheduled future meetings. So what is the process for doing this on Webex?

The Process For Doing This On Webex …

You would think this may be easy to get to and with API access or upcoming UX changes it may be but for now the process to get this from Webex is as follows. Keep in mind that Tenant or Control Hub versioning may change this somewhat but in general it should be applicable:

  1. Login to Cisco Webex Control Hub
  2. On the left side Monitoring Menu select ANALYTICS

3. Across the top Analytics menu select the far right choice of REPORTS

4. If your login account has entitlement to multiple sites then select the target site you are trying to run the report on via the far right drop down. On the far left SELECT A REPORT drop down , currently in a rather unintuitive approach, scroll all the way to the bottom then select WEBEX FUTURE SCHEDULE MEETINGS and hit the GENERATE REPORT button.

5. Depending on the volume of meetings scheduled in the future or overall traffic load on the tenant or Webex cluster you may need to wait the estimated time shown on the screen, typically a few minutes, before highlighting the report you just ran and clicking the download icon on the far right.

6. Once the file downloads you will now have a CSV file showing all the future scheduled meetings for your targeted Webex Tenant.

If we go back to the start of this post I talked about how different solutions often offer the same end results but get there via different routes? Well go figure a competing virtual meeting service does exactly that which leads us to reviewing the steps to view future meetings in Zoom.

The Steps To View Future Meetings In Zoom …

  1. Login to Zoom via SSO or your local account or however your tenant is configured.
  2. Under the left side ADMIN menu click the ACCOUNT MANAGEMENT drop down

3. Select REPORTS then click the UPCOMING EVENTS choice

4. On the left SEARCH BY drop down select by TIME RANGE or MEETING ID. If you select TIME RANGE you will have the option to specify a date range for up to 12 months out along with being able to optionally specify a host name or email then click Search.

If you know the MEETING ID then enter that and click Search.

5. If you filtered by date then your results will be listed with a few interesting options such as filtering by All Events, Only Meeting or Only Webinar. Additionally if you are the host or an alt-host you will actually be able to start the meeting from this list. Finally click on the EXPORT AS CSV FILE link under the search field.

If you searched by Meeting ID click on the EXPORT AS CSV FILE link under the search value . Additionally if you are the host or an alt-host you will actually be able to start the meeting from this list.

6. Once the file downloads you will now have a CSV file showing all the future scheduled meetings for your targeted Zoom Tenant. Having now viewed the same outcome via different routes on different solutions lets bring this to an ending that sounds familiar.

An Ending That Sounds Familiar …

While this specific post covers a technical outcome being flexible is an ability that you will most likely have to leverage in multiple different ways during the course of your life. You are going to encounter different people, different requirements, different expectations and different variables as you grow older. If you make the choice to remain rigid in what you do, how you learn or how you deliver outcomes then life or your career will quickly leave you behind.

Audiophile : A Hobby Renewed


Summer is over, the best time of the year is almost here: Autumn , the start of the NHL season and perhaps the most important Blizzcon that has ever been planned.

Things accomplished this Summer: Another great CLUS, my first year at Blizzard, weight loss and working out.

Hovering around that has been my renewed love of the hobby known as Audiophile which is basically a fancy way of saying “stereo gear”. So this is the first of an expansion of this blog which previously had been all about Collaboration but in a way audiophile as a hobby provides recorded or sometimes live musical and artistic Collaboration so this makes sense.


Many years ago I had a great setup of B&W DM607’s powered by a Marantz Mono-Block Amp and AV setup. Streaming via different services wasn’t as common then so it was a mix of ripped MP3 files , CD’s and a small vinyl collection.

In the year 2019 though the way musical content gets delivered has changed to an almost unlimited number of options for streaming services. Previously a huge fan of Google Play Music my current service of choice is Tidal HiFi but content only is part of the equation in this hobby.

My current budget listening setup runs the following lineup:

Streaming Source – Dell XPS15 USB Audio out via TB Dock

Content – Tidal HiFi, Google Play Music, FLAC, Vinyl, CD

USB Interface – Schiit Eitr

Integrated Amp + DAC –  Onkyo A-9010

Turntable – Audio Technica LP120 (Non-modified)

CD Transport – Onkyo C-7030

Speakers – Definitive Technology D7 Bookshelf speakers

Speaker Cable – Custom made AJW cable (this was a fun project)

Headphones – Audio Technica M50x

Minus the $20/month Tidal HiFi sub the above build out was had for around $1k total and to this point I have been happy with the sound but as is always the case with this hobby tweaks and thus costs abound if you get bitten by that bug. Sadly I can’t stop scratching all the bites I currently have.


Tomorrow I’m scheduled to get my Marantz HD-DAC1 which will serve as my primary headphone amp and DAC for digital services. This unit runs for around $800 which as you can see almost equals the full amount of what I spent on everything above. So what am I hoping to get with this change: that elusive 5% sound improvement that drives us all.

I kid, I’m actually going to do some before and after AB testing to see if what my ears hear have any basis in science but that is a post for another day.

Okay so $800, in this world that leaves me money to focus on a speaker upgrade next possibly though I am very happy with the imaging and sound produced by the DT’s so maybe I’ll keep them.


With the expected delivery of the new Marantz piece tomorrow I’ll be doing an unboxing, setup, tweaking and config of the system for anyone that wants to see it. Going forward my plan is to improve content load but split it between more traditional Collab items along with the sweet sounds of music and how our environments impact it.


The Importance of TAC Along With Some SSO Info.


  • For those that have worked with me this formatting approach is either going to make you smile or make you cringe with memories of overly complex email updates.



Someone once asked me why I seem to enjoy dealing with TAC, Tech Support, Support, insert some other title here as much as I do and the answer was simple: every time I deal with TAC I come away with some new piece of knowledge. 

Yes I know we all have played TAC roulette where maybe the person you get handling your case doesn’t seem to have that much knowledge of what you are calling about. Maybe they are just starting down their career path and it’s their first day. Maybe English isn’t their first language. In the end though , for me, calling TAC isn’t just about solving a problem but rather learning something new each time I end a given case. That doesn’t have to be something technical because like many things in life , the results of an action are only as good as the effort you put into that action.

As a reference point I’ll talk about a recent case I worked through around getting SAML based SSO, IDP = Okta, to work with Cisco Collab. After burning on this for a few days with two internal engineers we then engaged both Cisco and Okta TAC. Having worked with the Cisco engineer we got before we knew we were in a great spot. The Okta engineer was new to us though. The first Webex we did with all of us didn’t go great, no real progress seemed to be made and the Okta TAC had to drop earlier. It would have been easy to just write that engineer off as not caring as much as the Cisco TAC did or maybe he didn’t know what he was talking about but he asked us to reschedule for later in the afternoon.  So we waited and within about 30 minutes of that second call starting the Okta Engineer and resolved both issues. Maybe they were able to clear their head , maybe they spoke to someone else , maybe they didn’t do anything at all related to our case and just found the right logs to look at when we all got back together.

The point being that TAC is there to solve problems for their customers , among other things, and this engineer did just that which is why we all pay for such support. So great, what new things did I get from that case that made this another enjoyable scenario:


This was the first time I had gone through dealing with Okta support so I got to learn what that process is and what mechanisms they use to interface with their customers.


I picked up this CUCM CLI driven command:

set samltrace level 

TAC also pointed us to these two documents which really seemed to help explain and troubleshoot SSO.

Troubleshoot SSO in Cisco Unified Communications Manager

SAML SSO Okta Identity Provider


Not every TAC engineer is going to be the all star you hope for but remember the following: life is a two way street. You as a customer have the responsibility to be a good customer on that call. You have a responsibility to do your part to try and make it easier for TAC to do their part and for me that comes down to always trying to learn something new. =)

Device Inaccessible in PCCE\UCCE

/disclaimer on

The following works with PCCE and UCCE with the same general theory approach being applicable in UCCX. Any account name changes , where possible, should be considered.

/disclaimer off


Hello Friend, it’s been awhile.

At my previous job we had two PCCE deployments , both 10.5(3) and 11.6(1), running off a CUCM 10.5 cluster. Their is this one small little account used in the Cisco Contact center world called PG User and you don’t know what fun is until that “remove all devices” button has accidentally been checked . Middle of the day. While in production. Managers and supervisors panic while co-workers feel complete shame and guilt for just a poorly designed UI element. Thankfully that has been improved in a later version of CUCM but that is a story for another day.

So lets say it’s happened , someone has clicked that button and removed your users from PG User. Here you are starting to add them back and having people login when you get the good old “Device Inaccessible” message from Finesse.  In a follow up article I’m going to show how you can really start to dig into this more as to the how and why with logs and your good old CLI friend OPC but for now what is the quickest move to get your agents back that doesn’t involve changing their numbers?

Before going over those steps the tag line , if you will, for this blog is one of my core approaches in life: Slow is smooth and smooth is fast. What that means to me is going SLOW and taking your time , within reason, is going to be SMOOTH and limit errors or repeat work which will result in FAST turn around times on your target. Keep that in mind with these steps because rushing through them will only create duplicate work.


  1. Remove the device receiving that message from PGUser (Go SLOW here)
    1. Click Application User
    2. Find your PGUser account
    3. Controlled Devices
    4. Find the DN of the device
    5. Uncheck just that device
    6. Click Save
    7. Click Save
  2. Disable CTI Control of your device (Go SLOW here)
    1. Find your phone and switch to the DN
    2. Uncheck the “Allow CTI control box at the DN level on the phone”
    3. Click Save
    4. Click Apply Config
    5. Wait for phone to fully reboot and register again
  3. Add the device back to PG User (Go SLOW here)
    1. Click Application user
    2. Find your PGUser account
    3. Controlled Devices
    4. FInd the DN of the device
    5. Check the box to add it to PGUser
    6. Click save
    7. Click Save
  4. Enable CTI Control of your device (Go SLOW here)
    1. Find your phone and switch to the DN
    2. Check the “Allow CTI Control box at the DN level on the phone”
    3. Click Save
    4. Click Apply Config
    5. Wait for phone to full reboot and register again

Assuming you have done the SLOW part then everything should have been SMOOTH with no unexpected issues meaning you now have a FAST solution for this problem. Finally login to Finesse with the same device again and bask in the glory of all those inbound ACD calls!

Receiving Cisco Contact Center Update Notices in Webex Teams

I have a few different posts queued up that I am working on but this one is too useful , I think, to not make it a priority.

At CLUS in June I was in a session talking about rethinking what is possible with CVP and how you can leverage different API’s, SDK’s or whatever to go beyond traditional deployments.  This has really changed the way I approach the Cisco Contact Center space and ever since then I have been looking for ways to incorporate different elements into that world.

Everyone in the that Contact Center space, regardless of if its UCCX or PCCE or full blown UCCE, knows just how complex and how many different software elements make that engine go. From CVP to ICM to CUIC to Finesse and everything in between their are a million components meaning their are just as many if not more chances for bugs to creep up. It is inevitable for something like that to happen with so many moving parts and it is just as inevitable that their will be software updates , ES (Engineering Special) releases , hotfixes or similar items that come out to fix those issues. Previous notification of such was done in a few different ways either by the web, social media on critical items, your Account Team, email or some other manner.

Enter Webex Teams to make such release notifications substantially easier in my opinion. 

At some point recently Cisco started compiling all ES release notes in a nice table which sadly seems to only be in the partner space currently that or my current entitlements are wrong for access to it. I’m investigating that but I can tell you if you can get to the table it’s a great resource when looking for update knowledge which you can find here: Cisco Contact Center ES Release Table

What I want to focus on is this bottom section of the page which gives you a way to get update info directly into Webex Teams:


How To Get Notified About New ESs

Charlie is a bot which provides latest information about Latest Engineering Specials and other important updates.

  • Open Webex Teams.
  • Send a message ‘hi’ to
  • Or add to any group.

Okay great so what does this actually do?

Once you add this bot then you are greeted by this welcome which gives you base info along with the current supported command list:


Seems pretty straight forward , lets run one of these commands and see what happens. I’ll go with /ucce-updates-latest which it says will show me the 3 latest updates about Unified CCE solution releases and sure enough that is what I get:


Pretty damn useful if you ask me and what is great is this bot doesn’t seem to be limited to just release updates as you can see by that last item above. Another example is this alert that came across previously talking about the Expansion of the Contact Center Solutions Plus Program: 


While I am aware you can get this kind of info in different ways I see a huge ROI on this approach. Being able to add it to a space where you have your contact center team or just in general a more proactive notification approach like this can’t be beat. It’s not the same as getting yet another email notice as I find the nature of persistent chat solutions like Webex Teams to be more elegant.

Alright that is enough for this Sunday morning. Remember, keep rethinking your Contact Center experience and growing your knowledge base on a daily basis!





Rethinking Collab Thanks to CLUS and DevNet



Here we are a few days after CLUS 2018 in Orlando and everything was great. I had arguably the greatest car ride ever to the CAE with A Fish, A Ginger , A Hat and an SE.  A Webex Teams Master and I tried to run a Physical Security Op against a vendor in the WoS and came very close. I got to take part in the Cisco Champions Behind the Scenes Tour which turned out to be one of my favorite things. I plan on doing another entry just about CLUS but I want to go over a concept that came out of the first session I was in on Sunday which was a 4 hour Deep Dive into CVP.

This session was essentially broken down into the following 2 categories:

  1. Traditional CVP information: The how, what, when , why
  2. DevNet Flavor of CVP: Full stack programming leveraging CVP

It’s that second item I want to talk about in this post.

My guess is if you know what CVP is or how to support it then you are somewhat familiar with Collab and the role CVP plays in Cisco Call Centers. You know, Call Centers those things where ACD routing and call queuing seem to dominate everything. In 2018 that thinking is no longer applicable which is what this session really tried to get across. Which brings me around to DevNet or coding in general. As the last 2 hours of the CVP session ended I was watching the reactions of what I guess are legacy Collab folks wondering what JSON, middleware and JavaScript among other things has to do with ringtone and endpoints.  Ask me that a few years ago and I might agree but having invested in the Webex Teams\Spark Ambassador program I was able to get the launching point I needed to move into the wonderful world of APIs\SDKs and various middleware and languages.

This has completely changed the way I approach Collab projects. Where before my thoughts were “are my local route patterns built right” or “do I have the correct CSS to call something” I now find myself thinking wouldn’t it be great to not think just about those traditional UC items but how to grow call flows and expand them out in ways we have never done before.

So with all that being said lets see where all this takes us, I am excited to keep moving forward and seeing how the Collab and DevNet worlds weave together and expand the way people communicate.

Getting Started:

Webex Teams Ambassador Program


Getting Started With AXL

Cisco Live 2018 – Prep Week

This time next week I will be sitting in my hotel room in Orlando ready for Summer Camp with Friends or as it is more commonly known CLUS (Cisco Live US) and I can’t wait!

This year will be my first as a Cisco Champion and the recently re-branded as Webex Teams (Spark) Ambassador so that has opened a few new opportunities but most importantly a whole new group of amazing people to meet and network with.

Sure I am not looking forward to the heat and humidity but looking forward to learning more, to come back a better Collab\Contact Center Engineer then I am now and most importantly to come together again with a group of people that although for all but this week of this year I only see virtually mean so much to me.

Every year I say ” I am going to take it a bit easier with session load” so of course this year between Sunday and Monday I am in QTY 3 of the 4 hour lab sessions:

  1. UCCE Call Flow (yes I know the PCCE call flow is different)
  2. CVP Troubleshooting
  3. Cisco and Microsoft Federation 

The rest of my week is a mixture of PCCE, Finesse and Cisco+MSFT based sessions along with some CCP specific opportunities. DevNet sessions will be attended as much as possible. Get on that train or get out of the way because the world is no longer about punch down tools and DTMF but rather API’s and SDK’s.

Alright , too many hockey pucks to the head make me think that pace is a good idea…speaking of which ….We have a Bubble Hockey thing going on hopefully with a few will be posted and cups will be won.

Anyway getting back to the important stuff.. I’m excited because a previous co-worker that has been an SE for awhile will be there. I’m excited because members of our account team will be there. I’m excited because it’s time to activate the Sherpa powers for Denise Fishburne. I’m excited to see the impact that Amy Engineer has on not just those that are lucky enough to know her but for thousands of technical people around the world.  Most of all I’m just excited to spend 5 days surrounded by amazing people doing amazing things.


Filename Changes for Agent Greeting with CVP 11.5(1)

WHAT: Starting with CVP 11.5(1) and onward the file naming convention used when the WAV file recording of an Agent Greeting (AG) is saved has changed.

BACKGROUND: For those that don’t know what AG is the following is an explanation though chances are high if you are reading this still you know what we are talking about.  Anyway here is the by the book definition taken from one of the official Cisco guides  Agent Greeting feature lets you record a message that plays automatically to callers when they connect to you. Your greeting message can welcome the caller, identify yourself, and include other useful contextual information. With Agent Greeting, each caller can receive a clear, well-paced, language-appropriate, and enthusiastic introduction. And it saves you, the agent, from having to repeat the same introductory phrase for each call”

OFFICIAL EXPLANATION: Going through the link you can find here we have this nice little section tucked at the very end of this section which tells the whole story, This release includes a change in the Agent Greeting file naming convention. The greeting file is now named using the convention PersonID_AgentGreetingType (instead of LoginName_AgentGreetingType). Because of this change, existing agent greeting files do not play until they are either rerecorded or renamed.

THOUGHTS: So this one got me right in the middle of going from PCCE 10.5(3) to PCCE 11.6(1). We all know the tried and true naming convention of Agent Greeting in previous versions of CVP:  loginname_AGType.wav or for example 1234_1.wav.

Most exciting because as we see above with this version of CVP their is a substantial change to what CVP is looking for on AG. The AGType component of the file doesn’t change any so you will still have your 1 for English, 2 for Spanish, 3 for Elvish or whatever other call types you have defined. What we want to focus on is the first element and sadly their is no administratively easy way to get that info but wait hiding in the documentation section of this a PERL script based approach that will , when you apply some logic to it, rename your current WAV files to the new expected file format.

This conversion process works and works damn well when you follow all the steps given. To quickly go over those steps:

  1. Copy or backup WAV files
  2. Run a SQL query against your AWDB to list the files to be renamed
    1. Adjust your query as needed depending your version
  3. Save query results to a CSV
  4. Save migration PERL script to same dir as CSV from line 3 above
  5. Run migration PERL script
  6. Bask in the glory of converted WAV files and copy to appropriate place on your CVP servers.

BONUS POINTS: Depending on your version of what or where you are trying to do this from but over all this SQL query run against the AWDB should give you the ability to manually get the PERSON ID assuming you know the PeripheralNumber which equates to the Agent ID and you can easily get that from CCE admin among other places.

Wildcards to change

  1. DB NAME = name of your AWDB
  2. AGENT ID = value defined at the CCE user level

FROM [DB NAME].[dbo].[t_Agent] where PeripheralNumber='AGENT ID'


  1. Installation and Upgrade Guide for Cisco Unified Customer Voice Portal, Release 11.5(1)
  2. PCCE Agent Greeting
  3. UCCE Agent Greeting