Tip to search multiple Cisco CVP activity log errors quickly

We’ve been chasing a Nuance issue and as part of the process I’m monitoring the activity logs for certain errors to see if they are related to the issue we’re chasing or something else. I have multiple applications across over a dozen CVP servers and going one by one using Notepad++ is time consuming. Since the Cisco life is a Windows world here’s a quick way to do this and save you a ton of time.

There are tools out there like PowerGREP which do something similar, but my personal choice is to use Sublime Text. From there you go to Find > Find in Files.

  1. In Where add the locations you want to search and separate them by a comma:

\\server1\c$\cisco\cvp\VXMLServer\applications\YourApp\logs\ActivityLog,\\server1\c$\cisco\cvp\VXMLServer\applications\YourOtherApp\logs\ActivityLog,\\server2\c$\cisco\cvp\VXMLServer\applications\YourApp\logs\ActivityLog,\\server2\c$\cisco\cvp\VXMLServer\applications\YourOtherApp\logs\ActivityLog

2. In Find, make sure to select Regular expression and enter:

(?=.*06\/11\/2020.*error\.noresource$)|(?=.*06\/11\/2020.*Hotevent_Error_NoResource$)\w+

3. Click Find and watch all matches appear.

The expression above is looking for two different types of errors. error.noresource and Hotevent_Error_NoResource. It’s looking for this information only for the date of 06/11/2020, to ensure we only get the most recent logs. Finally, since we know this error is always at the end of the line we use the $ to anchor that string at the end of the line.

I hope this helps someone else do their work faster.

~david

Nuance Speech Suite Login Screen

Installing Nuance Speech Suite 10.5

The Nuance Speech Suite has been around for a couple of years, but it’s not until recently that I’ve started to really use it. Before I had always installed the individual components independently because that’s how I’ve always done it. However, I decided to finally buckle down and get the installation process for this down and wanted to create a tutorial post for it. Please note that while you can install the Extended version which includes MySQL as part of the installer. I wanted to install the Standard version which forces you to install the database individually. Additionally, this is strictly a lab install. For production and specially for a hosted environments there’s a lot more “engineering” that has to happen to get this right and to avoid killing your server.

What you’ll need:

  • Windows 2012 R2 x64
  • The latest version of JDK 1.8 (as of this post jdk-8u241-windows-i586.exe)
  • The latest Apache Tomcat package (as of this post apache-tomcat-8.5.51-windows-x86.zip)
  • The latest version of MySQL 5.7 Community or Enterprise (as of this post mysql-installer-community-5.7.29.0.msi)

Validate that 8.3 File naming is enabled:

  1. Open command prompt
  2. Type: cd c:\ <enter>
  3. Type: dir /x (/x will display the long and the 8.3 name)
  4. The important part is that you see something like “Progra~1″:
Command Prompt 8.3 File Naming Validation

Command prompt 8.3 file naming validation

5. If you don’t see the above Google how to enable 8.3 file naming in Windows.

Install the JDK:

  1. I choose all the installer defaults.
  2. Validate the installation by doing java -version from the command prompt.
Windows command prompt to validate JDK installation version

Windows command prompt to validate JDK installation version

Install Tomcat and validate it:

  1. Remember to not use the Tomcat installer, but the package which comes in a zip file. Extract this to your machine. I placed mine in C:\apache-tomcat-8.5.51
  2. Run C:\apache-tomcat-8.5.51\bin\startup.bat and ensure you can get to http://localhost:8080

Install MySQL:

  1. Choose custom installation.
MySQL Installer

MySQL Installer

2. Choose the following features. There is an issue in the below screen shot. Additionally, Python is not required, that’s just because I use Python to parse Nuance logs. Maybe a blog post to come on this. You will have to use the Filter in the installer to find some of the specific versions you need.

MySQL Installer Features

MySQL Installer Features

3. The installer might complain about some missing dependencies, but it should automatically resolve them. If that fails, you’ll have to resolve them manually. When everything looks good you should see this.

 

Screen Shot 2020-02-27 at 8.38.40 PM

MySQL Installer Ready

MySQL Installer Configuration

MySQL Installer Configuration

4. Along with installed MySQL in the default location I also install the connectors in the default location (e.g. C:\Program Files (x86)\MySQL\Connector J 8.0\) make note of this path as you’ll need it later.

MySQL Installer Cluster Configuration

MySQL Installer Cluster Configuration

MySQL Installer Cluster Configuration

MySQL Installer Cluster Configuration

MySQL Installer User Configuration

MySQL Installer User Configuration

MySQL Installer Service Configuration

MySQL Installer Service Configuration

MySQL Installer Confirmation

MySQL Installer Confirmation

MySQL Installer Finished

MySQL Installer Finished

Verify MySQL installation:

  1. Service is running and set to automatic.
Confirm MySQL Windows Service

Confirm MySQL Windows Service

2. Start > Command Line, enter the root password.

MySQL Client

MySQL Client

Installing Nuance Speech Suite:

  1. Make sure you’re not installing the extended version. Once you do that run the installer.
  2. Select all components as this is a one box solution.
Nuance Speech Suite Features

Nuance Speech Suite Features

3. Choose your license file.

Nuance Speech Suite License Selection

Nuance Speech Suite License Selection

4. Select your database type.

Nuance Speech Suite Database Selection

Nuance Speech Suite Database Selection

5. More than likely the installer will not find all your components automatically. So refer to your steps above to find the right path for each. Also enter your DB admin user and verify the installer can connect.

Nuance Speech Suite Component Configuration

Nuance Speech Suite Component Configuration

6. If you didn’t choose to customize the database details, you do not see this screen. Here’s is where you can set specific DB users as well as set your audit DB. By entering an admin account earlier you’ve chosen to either accept the default username and password (ms/msp) or you’re choosing a specific user. I use nuance as my DB user to make it clear who is accessing these DBs.

Nuance Speech Suite Database Configuration

Nuance Speech Suite Database Configuration

7. If you have any languages or voices you want to install choose the root directory and the installer will automatically find them. Make sure you’ve extracted the zip files to the same root folder.

Nuance Speech Suite Final Configuration

Nuance Speech Suite Final Configuration

8. From here it’s just waiting for the installer to run. You should see external install windows appears specially around the language and voices being installed.

Nuance Speech Suite Finished

Nuance Speech Suite Finished

9. Do a Windows restart.

Validate Installation of Nuance Speech Suite:

  1. Take a look at the install log (C:\Program Files (x86)\Nuance\Management Station\mstation\mserver\logs) and look for any ERRORs.
  2. Open the Windows services and ensure that the following servers are started:
    • Nuance Management Station
    • Nuance Management Station Data Collection
    • Nuance Management Station Stats Analyzer

3. Go to http://localhost:8080/mserver use the default login of administrator/changeit

Nuance Speech Suite Login Screen

Nuance Speech Suite Login Screen

4. You’ll be prompted to change your password. Make sure you check out the password requirements as they are very specific. I also use my trusted old C1sc0C1sc0123! password which generally works everywhere.

There’s a lot more to go in getting this up and running, but this post is long enough. More to come.

~david

 

VMWare Fusion 11.5 Windows 10 VM Black Screen on Catalina

I wanted to do a quick post on this as I had to try multiple things to get my Windows 10 VM up and running. There are two posts which helped. TCC DB Updates and the processor change post 10. To summarize it both links:

Turn Off the Rootless

  1. Reboot your MAC and hold CMD+R to enter the recovery mode.
  2. Open the terminal.
  3. Enter csrutil disable
  4. Restart

From a terminal run:

tccutil reset All com.vmware.fusion   
 
sudo sqlite3 "/Library/Application Support/com.apple.TCC/TCC.db" 'insert into access values ("kTCCServiceScreenCapture", "com.vmware.fusion", 0, 1, 1, "", "", "", "UNUSED", "", 0,1565595574)'   3, 
sudo sqlite3 "/Library/Application Support/com.apple.TCC/TCC.db" 'insert into access values ("kTCCServiceListenEvent", "com.vmware.fusion", 0, 1, 1, "", "", "", "UNUSED", "", 0,1565595574)'   4, 
sudo sqlite3 "/Library/Application Support/com.apple.TCC/TCC.db" 'insert into access values ("kTCCServicePostEvent", "com.vmware.fusion", 0, 1, 1, "", "", "", "UNUSED", "", 0,1565595574)'

Turn On the Rootless

  1. Reboot your MAC and hold CMD+R to enter the recovery mode.
  2. Open the terminal.
  3. Enter csrutil enable
  4. Restart

Launch Fusion and ensure that under your Mac’s Security and Privacy:

Accessibility > VMWare Fusion is checked
Screen Recording > Vmware Fusion is checked

With your VM shutdown go to settings > Processor and Memory and check these two settings:

VMProcessor&Memory

Hope this helps another poor soul.

~david

Excel macros multiple columns to a single column and delete a repetitive range of columns.

When I’m not fighting the war on bad call centers I try to assist my better half with some of her work.  Lately this has involved a lot of spreadsheets and data manipulation, which is something I enjoy as it’s a bit different than what I do day-to-day. The latest issue was turning a dataset from rows to columns. Transpose, you say? I wouldn’t be posting this if it would have been that easy.  The dataset looked like this:

A 7 2 9
B 3 4 5
A 9 9 2
C 3 2 3
C 1 3 9
B 1 2 2

The good thing is that the data had the same number or rows for every entity, in my case 10 rows belonged to each entity.  The bad news is that transposing got me from 10 rows to 10 columns.  The first thing I did was sort the rows by entity to group all entity rows together and did a transpose. 

AABBCC
793131
224223
925239

Next, I went to Google for some help and came up with the following macro:

Sub ManyColumnsTo1()
Dim LR As Long, index1 As Long, index2 As Long, x As Long, y As Long, z As Long, maxCol As Long
x = 2
y = 10
z = 1
maxCol = 50
‘ First entry
    For index1 = x To y
        LR = Cells(Rows.Count, index1).End(xlUp).Row
        Range(Cells(1, index1), Cells(LR, index1)).Copy
        Cells(Rows.Count, z).End(xlUp).Offset(1).PasteSpecial Paste:=xlPasteValues
    Next index1
‘ All others
For index2 = x To maxCol
    x = x + 10
    y = y + 10
    z = z + 10
    For index1 = x To y
        LR = Cells(Rows.Count, index1).End(xlUp).Row
        Range(Cells(1, index1), Cells(LR, index1)).Copy
        Cells(Rows.Count, z).End(xlUp).Offset(1).PasteSpecial Paste:=xlPasteValues
    Next index1
Next index2
On Error Resume Next
Columns("A").SpecialCells(xlCellTypeBlanks).Delete shift:=xlShiftUp
On Error GoTo 0
End Sub

This macro will copy a range of columns into one column.  The code will copy y columns, starting with column x into column z.  The for loop will then cycle through maxCol to ensure you get every column in your dataset. Which then gives us the following.

AABBCC
793131
224223
925239
A  B  C
9  1  1
2  2  3
2  2  9

Ultimately, this is what I wanted, but I had a lot of unnecessary columns in the middle which we needed to get rid of.  Enter a column delete macro:

Sub DeleteColumn()
    Dim startCol As Long, endCol As Long, maxCol As Long
    startCol = 1
    endCol = 10
    maxCol = 50
    For i = startCol To maxCol
        ActiveSheet.Range(Cells(1, startCol + 1), Cells(10, endCol)).EntireColumn.Delete
        startCol = startCol + 1
        endCol = endCol + 1
    Next i
End Sub

This macro will delete a range of columns.  The deletion will start with startCol through endCol for maxCol.

Which gives us the following.

ABC
733
242
953
ABC
911
223
229

One more transpose and some cleanup and we’re good to go.  Hope this helps others.

david

Check Windows 2003 Service Status Remotely

At my current project there are times where I have to restart a bunch of servers at a time.  On these servers there is a particular service which I want to make sure it has started and is running.  There’s the sc.exe command which allows your stop, start, query service statuses from the command prompt.

Here’s a small batch script I wrote which runs through a list of server names and prints out the status.  You’ll need two files.

First file includes the server names and is called Servers.txt:

Server1
Server2
Server3
Server4

The second file just needs to be saved as a .bat file.

   1:  REM ***Start Here***
   2:  Echo Off
   3:  Setlocal EnableDelayedExpansion
   4:  FOR /F "Tokens=*" %%L IN (Servers.txt) DO (
   5:     SET ServerName=
   6:     SET ServerName=%%L
   7:     sc.exe \\!ServerName! query <Your Service Name> > Results.txt
   8:     ECHO !ServerName!
   9:     Find /i "RUNNING" < Result.txt
  10:     Find /i "STOPPED" < Result.txt
  11:  )
  12:  IF EXIST Results.txt DEL Result.txt
  13:  REM ***END HERE***

This script will print out the server name and if your particular service is RUNNING or STOPPED.  You can expand this as you would like.

~david

2 Months with Sprint’s HTC Touch Pro 2

If you recall last year I posted a few Tweets about the, then upcoming, Palm Pre and how much I was looking forward to this phone.  Later on I posted a story about about my impressions with the Palm Pre.  After a few months of sticking with it and really giving it a try I had to let it go and go back to Windows Mobile.  Yes, I am a Microsoft slave when it comes to phones.  I missed the integration with Exchange, I missed the seamless connectivity with Outlook, I missed being able to tweak it to try and make it far more efficient and faster.

It now has been around two months since I’ve made the switch and I can’t really complain, I got everything I expected from Windows Mobile.  First, let’s start with the phone.

The HTC Touch Pro 2 retails for $599.99 at Sprint.com.  Yes, that’s $600 dollars for a phone!  Yes, I thought it was insane when I saw the price tag.  Not only is/was the phone incredibly pricey, it was close to impossible to find it at Sprint stores.  The excuse I always got was that since it was so pricey not a lot of stores carried it and it was considered a specialty item.  Good thing I didn’t ask for diamond encrusted keys.  Regardless, I turned to my trusted friend Craig Newman and his awesome website http://craigslist.org/ and found someone letting go of their phone for $250.  Finding the guy, haggling with him, and finally getting the phone is a whole other story, but ultimately I paid the asking price and began my journey back to the dark side.

Happy with my purchase I decided that this phone had so much potential, which was being thrown away by the stock operating system provided by Sprint.  First and foremost, there was Windows 6.5 and the phone runs Windows 6 stock.  Second, there was HTC’s Sense UI, among other tweaks available which would put this phone over the top when it came to usability.

When it comes to hacking your phone and making it do things it might not be supposed to do, you head over to the always awesome and informative, http://forum.ppcgeeks.com/.  After a few days of research I decided to give Mike and his http://www.mightyrom.com/ a spin.  Flashing your phone is not for the faint of heart, I was pretty nervous something would happen in the middle of the flash which would render my phone useless, but thankfully everything has been great so far and I’ve enjoyed what my phone has become.

The key features I love about this phone:

– Great voice quality, including the speaker.

– A keyboard, I love having a physical keyboard.

– Very responsive, more than my Palm Pre.

Cons:

– This thing is a brick, it’s huge.

– It’s Windows, which needs a kick to restart it ever few days… well maybe about once every two weeks.

– Windows Marketplace sucks.

~david

Microsoft’s SyncToy in Windows XP 64

Well, for those of you struggling trying to get SyncToy working on Windows XP 64, here is the fix.

Download custsat.dll version 9.0.3790.2428 and replace it in the SynToy install directory (usually C:Documents and Settings<usernam>Local SettingsApplication DataSyncToy)

Cheers.

~david

Windows 2003 Server

So I finally cracked down and started playing with the future of the Windows Servers. I am talking about the Windows 2003 server. Read on to find out what some of my initial thoughts on this new operating system.



edit: 04/08/04
Security Focus just posted a new article on the IIS6.0 security :-) Talk about timely.1. It actually loaded pretty fast, which I was surprised, I didn’t use a beast of a machine, but what I did use, seemed to work well and have a nice response time.



2. Security, this has to be the first server where it seems like the computer is tight down out of the box. A couple of ports were open which seem to be unnecessary, but I will not close then until I find out more about the operating system.



3. The interface is a great improvement from that horrible interface called Windows XP.



4. Symantec Antivirus Corporate Edition v8 does not play well with 2003, at least for me, and I am having a hard time automating the virus updates. I think it might have something to do with Windows security.



5. I absolutely love remote desktop connection; MS finally got on the ball and did what PC Anywhere and tightVNC have been doing for years.



6. Sharepoint is nice; I just need to read up on how to configure it correctly.



I don’t see the migration from Windows 2002 Server to Windows 2003 should be too painful. However, I think that with the new IIS 6.0 that my Linux server might end up doing something else.



-david macias

Job Search Information Management

The saying is that treat a job search like a full time job. Right, specially when you already have a job that is close to full time and you’re a full time student. So can you really have 3 full time jobs? Not really.

The point is that I looked around the web for a tool that would help me manage all my information concerning my job search. The tool I am createing will manage:

  • Job Postings
  • Job Contacts
  • Job Leads
  • References
  • Resumes
  • Cover Letters
  • Thank You Letters
  • Read on…So ideally this tool would be web accesible, however due to time constraints and the fact that I have “3” full time jobs, I will be releasing the first version of this tool in MS Access. For those of you who do not have Access, I will release a MySQL version as soon as the Access version is usable.



    This is just a heads up on what is to come at the end of the week, hopefully sooner.

    -david macias