Monday, April 16, 2018

Fixing Audio Sync Issues After Ripping DVD's

I don't buy very many DVD's, but when I do, I almost always want to convert them to MP4 files that I can watch on one of my devices to make long hours in an airplane go a bit faster.

I thought I had a good solution with Freemake Video Converter after learning to specify 29.97 as the desired output frames per second (fps). Recently I had some time so I figured I would pick up where I had left off ripping the full set of Hill Street Blues DVD's that I had purchased a year or so back on Amazon. (An extravagant purchase, I know, but the set is 34 DVDs of perhaps the best TV ever produced.) I had previously converted a couple of seasons without issue, so I was surprised and disheartened to find a significant sync issue when I checked the results in the new MP4 files created from the first of the Season 3 DVDs. Specifically, the video trailed the audio enough to make the MP4 unwatchable. I tried ripping with different software and on multiple computers but nothing worked other than a painstaking and inefficient procedure in which I recorded a track during playback using VLC, then converted the resulting file from VLC's default format to MP4 using Freemake. Oh, and the resulting MP4 was more than twice the size of the one done in a single relatively quick pass with Freemake.

I finally came across this solution on Hectic Geek that actually worked. It involves a second step after converting the tracks to MP4's, but it is quick and easy, and it is the only thing I have found that actually works. If you have been down this frustrating road as well (almost a certainty if you are reading this post), I would recommend you give it a try. You will need a copy of the free, open source (GNU license), non-commercial product Avidemux. Avidemux is multi-platform video-editing software that does quite a bit more than adjust audio-video sync.

After the quick installation, I followed the rest of the steps and suggestions in the Hectic Geek article. In my case, the following settings resulted in the correction I needed. One note - be sure to either close (File > Close) each file before loading the next, or exit Avidemux after re-saving each MP4. My successful settings, with no other configuration changes from the default beyond the Shift settings under Audio Output and the selection of MP4v2 Muxer in the Output Format:

After determining the correct time shift and checking with the built-in player, all you have to do is to click File > Save and provide a new name for your MP4. The save of the new, adjusted file took just a few seconds. Remember to close each MP4 before re-starting Avidemux to load your next file.

Monday, January 30, 2017

Configuring L2TP VPN on Zyxel USG 60 for Chromebook / ChomeOS compatibility

For a couple of years I have had no problem connecting to my office VPN from my Chromebooks. Prior to departing for a long trip I decided to just double-check that all was well. Unfortunately, it wasn't. I could no longer connect to the VPN from either of my Chromebooks, even though I still connected successfully from Windows and from Android. I assumed that Google changed something, but as it turns out, it was probably a change that I made in the USG that caused the problem.

After months of frustration, I came upon an blog post that detailed the ipsec VPN configuration settings on a Fortigate router needed to work with the Chromebook's built-in VPN capability.

L2TP depends upon underlying ipsec protocols so I compared mine on the USG to those documented in the post above.

Looking at the IPSEC Phase 2 configuration, I saw that the policies did not match those I was using. Once I changed them to match those in the article, the Chromebook connected no problem. The results suggest that the Chromebook doesn't like SHA authentication. A while back I had changed a Zyxel default policy that specified MD5 authentication to SHA. Once I re-created a policy that uses MD5 authentication instead, the VPN link was established successfully and quickly. Here are my new working settings:

Tuesday, January 3, 2017

Cannot start Tigerpaw tsiTimers service after moving database to new server

We are using the Tigerpaw CRM software (v 12.1.08). After moving the Tigerpaw database to a new server, I was unable to restart the required tsiTimers service. Checking the Windows Event Logs, I found that the problem was that the service was immediately terminating because it detected evidence that a copy of the service was running on another computer:

Error starting service tsiTimers
Error in routine: StartService
This service is running on another machine

It turns out that unless the service is stopped and the database is shut down before migrating it to a different server, values referencing the name of the original server remain in the database, so when the new instance of the service starts it believes the old server is still running.

More specifically, the database contains a table named tblSysServiceStatus. In my case that table contained just two rows, both of which contained the old server name in the column "MachineName". The old server name was FUJIV1; the new server name is WHITE. A quick SQL statement put things to right:

UPDATE  tblSysServiceStatus
SET MachineName = 'WHITE'  WHERE  MachineName = 'FUJIV1';

Once I committed the above change, I was able to restart the tsiTimers service successfully.

Tuesday, August 25, 2015

Using a mobile hotspot as a second WAN input on a Zyxel USG 60

About a week ago, our broadband connection (CenturyLink DSL) was out for more than 12 hours, including the entire business day. Outages have occurred from time to time in the past, but nothing even close to this one (except during very severe weather that knocks out electrical power regionally).

Outages are a big problem for our small software company. Virtually our entire business is dependent on that internet connection. We use if for email, Google Apps for Business, our customer-facing help desk system, customer support, sales demos, data backups, web site maintenance, and much more. That long outage really put the hurt on us.

For a while we paid for two CenturyLink DSL connections, but that did not really provide any backup because when one was down, the other was always down as well. Using another traditional broadband provider, such as Comcast, is not possible, because they won't run the cable from the street to our building, which is about 1,000 feet down a private driveway. I have even offered to pay for the cable drop, but no dice. They are not interested.

Our new Zyxel USG-60, as well as our older USG-100 both theoretically can accommodate a wireless internet dongle, but I was unable to find an up-to-date compatibility list. The list I did locate identifies devices by manufacturer and part number, so it would take some detective work to determine whether any of these devices match what is offered by AT&T and Verizon (the only LTE coverage in our area). Even if I could solve the compatibility issue, I am confident that the configuration in the USG would be a pain in the ass, and that still leaves me with a significant monthly bill for a service that would rarely be needed.

During the recent outage I enabled the hotspot feature of my Android phone so we were at least able to keep up with email from those computers in our office that have wifi. The catch 22 was that when the wifi connection was active, the local LAN connection was unavailable on those computers. Clearly what we needed was a way to get the USG to use the cell phone as an alternate WAN connection for our entire LAN.

I tried direct tethering with a USB cable, unsuccessfully. Turning to the collective experience of the internet, I found the following thread on DSLReports:

The last message in the thread, offered by a user, who goes by the handle "login forgot", was...

What I did to work around this was attach a wireless AP in bridge/client mode to the WAN2 port of the USG. That AP then associates to the wireless hotspot that my phone can create.

Windows phone > instant wireless hotspot > EnGenius EAP350 > Ethernet > WAN2 port of USG
Additional details would have been great, but this message was enough to give me hope. I hopped onto Amazon and ordered a TP-Link TL-WA801ND Access Point for $23 that very clearly indicated both bridge and client capabilities. When it arrived I first tried it in bridge mode, but that didn't work. I switched to client mode and BINGO, I was good to go. To save the reader the need to go through the same trial and error, I am sharing the details of the configuration on both the access point and the USG.

Access Point Configuration

Your best bet is to configure the TP-Link (or similar AP)  without connecting it to your network.
  • Plug it in and power it up. 
  • Next, using any wifi capable laptop, tablet or even phone, connect to the default SSID (TP-LINK_), and log into the unit's configuration page using the IP, user ID, and password on the bottom of the unit. Alternatively, just connect a cable from your laptop to the unit's ethernet port.
  • Once connected, skip the "Quick Setup" and go right to Wireless > -Wireless Settings in the navigation bar on the left.
  • Above are the settings that I am using, with my SSID and MAC blacked out. At this point, you should have your phone near the TP-Link AP, and set so that its Wi-Fi hotspot is active. 
  • For Operation Mode select "Client". 
  • I did not bother with WDS, but TP-Link suggests that you enable it if the access point to which you are connecting (your phone or other mobile hotspot) supports it.
  • If you are not sure of the SSID and MAC address of your own phone or cellular wifi hotspot, you can use the Survey button on this page to discover that information. Enter the SSID and MAC address of your phone's hotspot or your cellular wifi hotspot (like a MiFi device) in the next two fields.
  • Make sure the Enable Wireless Radio option is checked.
  • Click SAVE.
  • Now go to -Wireless Security in the navigation bar to enter your hotspot's security settings. In my case, all I needed to do was to select WPA/WPA2 and type in my phone hotspot's password.
  • After entering your credentials, just click SAVE.
  • Although you may want to come back to change the device password (System Tools > -Password) and maybe fiddle with some of the advanced settings, for now I would suggest that you keep it simple until you have successfully tested.
  • Before rebooting the TP-Link (System Tools > -Reboot), I would suggest that you disable DHCP to avoid the possibility of anyone picking up conflicting and incorrect gateway/dns addresses from this unit.
  •  After rebooting and testing, at the very least you should come back into this configuration app to backup your configuration settings (System Tools > -Backup & Restore). It would be a good idea to do that backup before adding too many more changes.

Zyxel USG Configuration 

All I had to do on the USG 60 was to:
  • Go to Network > Interface, Ethernet tab to enable the WAN2 interface. I might have enabled the Connectivity Check toward the bottom of the page, but it is possible that it was enabled by default.

At this point, everything may well just work if you already have a Policy Route that is configured with "auto" as the Next-Hop for your lan traffic. Here is the relevant default Policy Route that came pre-configured in my USG 60:

Also required is a WAN Trunk that contains your existing WAN1 and the just-enabled WAN2. My USG 60 came with a SYSTEM_DEFAULT_WAN_TRUNK that includes both WAN interfaces as well as various others, and was set as the Default WAN Trunk. Although not really necessary, I created a User Configured Trunk that contains only the WAN1 and WAN2 interfaces and set that as the Default Trunk. The only reason to do that was so that I could experiment with trunk settings without messing with the Zyxel default trunk configuration.

In case you are scratching your head about the whole Trunk thing, as I understand it, it is basically a pool of outgoing connections. In our scenario here, if you had both WANs connected and WAN1 went down for some reason, outgoing traffic would automatically use WAN2. Therefore, to test your setup, with your phone/wifi hotspot active, and the TP-Link client on, you should be able to disconnect the cable plugged into WAN1 and you should still have internet through your wifi hotspot.

In my use case, WAN2 (the cell phone connection) is off except when I need it. As a result, all internet traffic uses WAN1 (our CenturyLink DSL).  If you were to leave them both on, traffic would automatically be routed to the WAN connection that is least busy (assuming you are using the default "LLF" load balancing algorithm. Unless you have unlimited data on your device and a carrier that doesn't care about high volume tethered/hotspot use, don't leave WAN2 connected or you will end up with a hell of a bill from your mobile carrier. Turning off the TP-Link plugged into the WAN2 is all that you have to do to prevent any accidental use.

With regard to these network devices, I am self-taught, with most of my experience being with Zyxel components, so I am in no way an expert. Nonetheless, if you have a question about this article, leave a comment and I will do my best to help.


Wednesday, December 3, 2014

Consumer Cellular - Android phone configuration for LTE and MMS (December 2014)

Problem: Your phone does voice, text, and maybe non-LTE data, but LTE and MMS don't work.

Quick Solution: DO NOT use an existing APN entry for your CC configuration. Use the "+" button to create a brand new APN entry and put in just the required values. Editing existing values, such as selecting or typing something, then deleting it, appears to leave troublesome remnants. Probably there are values that need to be null rather than blank, and once you touch them, they are saved as blank and cause the config to fail. By creating a fresh APN, you prevent that problem. Here's my working configuration, found in a thread on Howard Forums but an almost identical configuration can be found on the CC web site.

You must also be sure to select the new APN as the active one, exit, then check to be sure it sticks, and finally, best practice includes shutting down and restarting the phone after making these changes. I even go to the point of briefly removing the battery, but that might well be superstition.

The full story...

My wife and I switched from ATT ($140/mo, three phones) to Consumer Cellular ($60/mo, three phones) about a year ago.

I love the fact that we still have ATT service and national coverage. It is exceedingly rare for us to find ourselves without coverage in our US travels, except in situations where there is no cell coverage at all, such as in remote areas of the west, far from towns and major highways. On a bike trip a couple of years back, we found ourselves in Jeffrey City, WY...

... where I had coverage on ATT, but my riding buddy had zilch on Verizon. Because I do trips like that one with some frequency, nationwide coverage, including in the boonies, is pretty important to me. That rules out T-Mobile and Sprint, along with MVNO's that depend on their infrastructure.

In addition to the coverage, I love the fact that there is no contract, and that I can change my plan right up to the last day of the month to get the best rate for my usage that month. We work from home, so my usage of mobile date is usually quite low, except when actually traveling or doing MMS. My wife and I rarely go through 300 MB in a month, but when we do, Consumer Cellular lets me know that we are near or over our chosen plan's allowance, so I can change the data plan to the next higher level on their web site. The only thing that could be better is if they automatically changed the plan for me, essentially giving me the best rate for my usage without the need for any manual intervention.

So, great coverage, and great price, but there has been one fly in the ointment -- getting our phones properly configured. We have three phones, including an old flip phone that just sits at home and anchors our old home phone number so the solicitors have a number to call. These calls get forwarded to our household Google Voice number which sends us text and/or email notifications. Our friends and family know to call our mobiles, which are both Samsung Galaxy S3's. Kathy is running the stock Samsung flavor of Android on hers; I have used the wonderful Cyanogen installer to convert my phone to Cyanogen 11, a vast improvement over the crapware-infested Samsung factory Android.

To take an ATT phone to Consumer Cellular or to use an alternate SIM when outside the US, you must "unlock" your phone. ATT is pretty obliging on that score, as long as your phone is no longer on contract, or you pay the early termination fee. By definition, that will be the case if you are switching to another carrier. Anyway, once unlocked, you give the IMEI number to the nice support folks at CC and they register the phone. If you have an LTE-capable phone, be sure to let them know that you want LTE set on their end. They might not set you up in their system for LTE unless you remind them, making configuration more confusing or sticking you with lower 3G and HSPA data rates.

Initially, with the help of a second-level support person at CC, I got both of our phones configured. After switching from stock Samsung Android to Cyanogen, however, I found that I no longer had LTE, or perhaps I never did have LTE on CC, but I didn't notice. I fiddled with the settings unsuccessfully every so often, but in truth my data use doesn't need anything beyond HSPA, which was working fine, so getting LTE to work on my phone was a low priority tech challenge more than a necessity. More recently, my wife dropped her phone, cracking the display in the corner that took the impact. Initially, it seemed to be a cosmetic issue and she was willing to live with it. A week or two later, however, the microphone in the phone quit working. Short of using a headphone all the time, she could not make phone calls or use voice commands. I found a new, sealed box, unlocked ATT Galaxy S3 on eBay for a good price and replaced her phone with the new one. Of course, that meant that we had to register the new phone with CC, and get it configured. Voice, fine. SMS texting, fine. Data, HSPA, but no LTE. MMS, total FAIL.

I spent a couple of nights trying to duplicate the settings on my phone, which was working with the exception of LTE data. Nothing I did seemed to get MMS to work. Finally I noticed a caution in one of the forum posts about the need to get CC support to enable LTE on their end. I gave them a call, and sure enough, it was not enabled for either of our S3's. That done, I again changed the APN settings to match what I was seeing online (see the two links at the top of this post). No dice. I was about to admit defeat and call CC support again, but my eyes finally caught sight of a step in another forum post that specifically said you must create a new APN rather than edit an existing one. Once I did that, everything quickly started working as it should. LTE appears in the notification bar, and MMS messages go to and from both the phones!