Wednesday, June 24, 2015

Porting an H2O Wireless (AT&T MVNO) to AT&T

(Original 6/24/2015, updated 64/28/2019 when ported last number to AT&T)

When I last wrote about H2O Wireless, our kids dirt cheap mobile carrier, I mentioned that our daughter’s texting costs were bringing the monthly H2O fee close to the $25/month device fee on Emily and my AT&T account. 

The move has come sooner than I’d expected, because in the process of debugging her iPhone [1] with some SIM swaps we lost all data access. I tried contacting H2O wireless to see if they had a fix, but I couldn’t get through. I didn’t try too hard — the H2O web site is increasingly clear that prepaid plans aren’t supposed to have data access. I figured we were living on borrowed time.

Our first attempt at porting failed though. I did it at an AT&T retail store; they had the impression we couldn’t port an AT&T MVNO number to AT&T because the porting software wasn’t designed for that use case.

i was going to let things lie for a bit, but then my daughter started getting 2-3 AT&T texts a day demanding she finish her porting. When I called up to stop the bloody things I was transferred to the “porting department’, where I ran into one of those miraculous people who actually know how things work.

Turns out the problem was not the MVNO to AT&T port. The problem is that nobody knows what the account number is for an H2O Wireless prepaid account. H2O’s correspondence and web site imply it’s either the phone number for the H2O phone or my phone number associated with the master account and credit cards.

Wrong. The account number is the SIM Card number, known to iOS settings or iTunes as the ICCID number. In addition you need to know a “passcode”, which is typically the last 4 digits of the ICCID number (supposedly customers can change this, perhaps from an H2O SIMd phone).

An AT&T porting center expert told me when the port was authorized, then I went back to an  the AT&T store to complete the process (create a database relationship between IEMI (phone ID) and ICCID (SIM card ID)) and pick up a new SIM. Our daughter’s phone service continued until the AT&T rep complete the process. There are a few things you need to do before completion:

  • Delete the H2O profile if you have one. This is hard to find in iOS 8; it’s in Settings:General then “Profiles”. You need the H2O profile to get data on an H2O SIMd phone, but if you don’t remove it you won’t have data posts transfer to AT&T. (You can remove it after transfer and you’ll get data.)
  • Log out of Message and FaceTime — these have their own authentication mechanism and they may get confused by the SIM swap.
  • If you’re using Google Voice for voicemail remove it. (Restore post switch or just use iPhone Visual voicemail — if Google’s directions don’t work see this page.)

On our no-contract mobile share account we were charged $15 $30 for adding the phone [Update: cost doubled between 2015 and 2019]

After you confirm voice and data services on the newly activated time enable Message, FaceTime and setup visual voicemail.

[1] An old 32GB iPhone 4S we fondly call the “DemonPhone”. It has been my primary tech support pain for years — possibly due to occult hardware issues, but also due to Apple’s bugs, DRM flaws, and hacked together online services. H2O hasn’t necessarily helped; adding a low quality and low service mobile carrier to a buggy phone puts the D in Demon.

Update 8/3/2015 has a priceless resource on phone number porting, including H2O wireless.

  • account number is the ICCID of the SIM card
  • To find account number you need to call H2O wireless. Try 800-643-4296. They will provide you with the secret account number, it’s not available otherwise. You’ll need to provide the last 3 numbers dialed.
  • PIN is the last 4 digits of the SIM card ID/ ICCID

Because AT&T usual porting tool doesn’t work with MVNOs, or perhaps because I’m on a corporate discount account, I needed to do this at an AT&T store. It took at least 30 minutes of rep time.

Incidentally, I’m separately looking at porting a CenturyLink number to a burner phone then to Google Voice — hoping that will also kill my CenturyLink service (really, Comcast may be better, if only because more people hate them). That information is harder to find. I’ve read two theories on the CenturyLink number porting (number security) PIN both from a single source (the lack of information is a rather strong hint that CenturyLink is quite dead).

  • last four digits of account holder’s SSN
  • the 3 digits that follow the CenturyLink phone number on a billing statement (not including a letter that may follow those digits).

My guess is the SSN, but I’ll write a post about what happens.

Update 9/4/2015: What happens when you screw up a port and the number gets stuck.

Months after I wrote this I had to port another number. Unfortunately I relied on memory rather than reading my old notes; I tried the port at the store and messed it up. I should have done it through my AT&T account and just gone to the store to get a new SIM. This resulted in a stranded phone number — H2O’s account system couldn’t work with it but AT&T’s port eligibility page said it could’t be ported.

I knew H2O couldn’t fix the problem (their support staff is hapless), so I called AT&T’s porting service directly (888-898-7685) and “Darlene” fixed it. She spent about 30 minutes on hold with H2O then called me back.

I took the phone to the AT&T store, but ran into a confused rep. He didn’t understand how to finish the process. The clue was to say something like “check port status”, from that he found the right screen and quickly completed the port.

Saturday, June 20, 2015

iOS 8 will let you copy coordinates if you do a long press

During a recent bike adventure I was frustrated that I couldn’t copy coordinates from either Google Map or Apple Map. I think I used to be able to do that - but no more. would show coordinates, but I couldn’t copy/paste ‘em. Best I could do was a screenshot of what Compass displays.

There’s a convoluted way to do it …

Messages, Details, Send My Current Location -> gives a tappable link, then get info on location gives apple map URLs with coordinates

The map URL is interesting, but I wanted something better. Once I was home I paid $1 for Nav, a primeval iOS app that, among other things, shows coordinates in portrait mode and local sun related events in landscape mode. If you tap your finger carefully (it’s picky) on the start of the coordinates you get a copy option.

Nav Clock is pretty cool and well worth $1, but I still wondered if there wasn’t a secret way to get map coordinates out of Seems something an engineer would sneak in. 

Jeremy W. Sherman figured it out:

Compass does let you copy out the coordinates: Long-press on the coordinates and hit Copy from the floating menu. Don’t tap - that bounces you to Maps.

It’s a non-standard UI — long but not too long press pops up a new string ‘Copy’. Tap ‘Copy’ and you can paste degrees, minutes, seconds N and W.

As best I can tell this has never been documented. It’s a secret…

Wednesday, June 17, 2015

In praise of ClouldPull -- bring your Google Drive files to your Mac's local storage

There are a lot of spreadsheet and documents on my Mac, representing years of work, that have contents that look like this:

{"url": "”, “doc_id”: “17c7....VloXI”, “email”: “”, “resource_id": "document:17c7Z...unVloXI"}

Yes, they’re stubs referencing data stored in Google’s cloud as “Google Docs” and “Google Sheets”. That’s what Google puts on Google Drive on my Mac, and why so much data takes up so little storage. (Beware, however, of Google Drive/Photos integration. That’s bad news.)

It means that I don’t really have ownership of any of those files. I can use Google Drive to “reorganize” my Cloud drive, but I generally can’t work with that data offline [1].

Which is one of the reasons I like CloudPull - a $25 Mac app that still runs on Mavericks [2]. It creates local backups of my Calendars (VCALENDAR), Contacts (VCARD 3.0), and my Google Drive. I can ask for a complete backup, or I can only create backups for Google doc (as Microsoft Word, dock) or Google sheets (as Excel, .xlsx) and let Google Drive handle all the readable files.

It even holds 1,500 Google Reader liked articles left over from the end of Reader.

The data is stored in my User Library Application Support folder, but I really should move it back into my Docs folder.

Most of the time I can ignore all of this content, but it’s a great reassurance to have it at hand. Every Mac user of Google Services should own CloudPull.

[1] So when I drag something out of the drive, and it’s “deleted”, what happens if I open the stub file? What does Google do to enable offline use, and how scary is that? Curious stuff.

[2] I’m going to Yosemite with 10.10.4. Too many apps need Yosemite now, and as good as El Cap sounds it won’t be ready for me before Feb 2016.

Wednesday, June 10, 2015

Mavericks bug: enabling iCloud Keychain duplicates Contacts if use .me domain

This is a truly weird bug.

If I enabled iCloud Keychain sync in Mavericks all of my Contacts would duplicate. One set would show up with the header of 'iCloud', the second (new) set would have the heading 'iCloud jf" where jf are my (true) initials.

The two sets appeared truly identical. Edits to one appeared in another. My iPhone Contacts were not affected.

If I turned off iCloud Keychain sync I could unclick Contacts in iCloud preferences and watch one set disappear. Then it would check itself back on. I unchecked again and a second set disappeared. Then I rechecked it and the first set of Contacts returned Lastly I reenabled iCloud Keychain and the second set of Contacts reappeared.

I think this bug is related in part to the .me to .iCloud transition. I say that because my iCloud account used the old '.me' domain. It's supposed to be interoperable with iCloud, but I guess it really isn't. I signed out of everything on my iMac and left iCloud, then restored using the '.icloud' domain. Now I have one set of Contacts and I have Keychain sync enabled.

Curiously, even after the fix, the Accounts setting in Contacts shows the .me suffix. I can't edit that, it claims to be inheriting from Preferences. iCloud support in Mavericks is a real hack. I probably can't wait for El Cap, will need to accept Yellowstone after next bugfix release.

Saturday, June 06, 2015

Google Photos is a wrapper over Picasa Web Albums

Google Photos uses the Picasa Web Albums API, it doesn't have its own API:
No wonder my Picasa web albums showed up so well in Google Photos and why so many G+ features are missing -- Google chose to build on old Picasa rather than G+. It also explains why my old Mac Picasa uploader (works in Mavericks) is the best way to get images in albums to Google Photos.

The Google Drive integration, by the way, is a dangerous hack. Avoid it for now.

The Picasa uploader doesn't support Google Photo's image compression format (WebP?), so I wonder if those images will count against storage totals.

I hope we get an API, particularly with support for creating or selecting albums at upload time, any minute now...

Friday, June 05, 2015

Domain configuration - notes on www and naked domains

I’m writing this primarily for myself. I’ll try to update it as I learn more.
I’ve used DreamHost for years, I have several domains there. Recently I created one for our mountain bike team - I set it up as “Fully Hosted” and created a few subdomains so I could create a subdomain like that would redirect to our Facebook site. (This is probably not the best way to do this, maybe better to use Apache URL rewrites with .htaccess)
I was even able to get a subdomain to work properly with wikispaces.
That’s when I ran aground. I wanted the naked domain, or to point to that same wiki page. As best I can tell, with DreamHost, you can’t do that through DNS or domain configuration. For one thing, and are treated by DreamHost as synonyms. You can’t really have them behave differently.
For another DreamHost, for a fully hosted domain, sets up a fixed type A DNS record to reference DreamHost’s IP address.
Can this be done for a DNS only configuration, with hosting disabled?
I think there’s a way to do it with Google Apps, in particular I’m pretty sure there’s a way to have a naked domain or www.domain reference a Google Site. I’m just not quite sure how to do it. Clues might be in these references ...
Phew. This is a tiring domain to explore. Not only is it fundamentally complex, the documentation is marginal (Google has the best, but it’s Google Apps specific) and experimentation is hard. It’s easy to mess up a domain, and changes can take time to propagate. There are lots of quirks; I discovered Chrome will cache DNS redirects, so if you make a change and Chrome doesn’t seem to know about it try incognito mode. Good luck!

Thursday, June 04, 2015

Domain registrar transfer pains - something broken between eNom and Dreamhost (or me)

I've transferred several eNom domain with associated Google Apps services to Dreamhost. This is the first time I've been really stuck.

I'm trying to move from eNom to Dreamhost. Dreamhost already provides DNS services, so it's "simply" a registrar transfer. I've done several of those.

This time the process is failing after I get an "authorization key" (EPP) from eNom/Google and I complete the Dreamhost authorization key submission. Instead of receiving a Google email (takes 1-2 hours):
DOMAIN NAME TRANSFER - Confirmation of Registrar Transfer Request ...
I get radio silence. Tech support tells me Dreamhost's system shows a transfer status of denied ... Canceled - Invalid EPP/authorization key - Please contact current registrar to obtain correct key
We've been through this twice now with two keys. So I think something is broken (yes, user error cannot be ruled out, this is a complex process).

Unfortunately level one tech support doesn't know the details how this status shows up in their system. (They also can't explain why Dreamhost doesn't expose this status in the user accessible control panel or generate an email. I think there's a hole in their workflow process, but this could also be a bug in their system.)

At this point I'm hoping I can escalate to tier 2 support. Then I can interview somebody who should know how the status code is generated, and whether the bug is with Dreamhost (already known to have a process problem) or eNom (gonna be hard to talk to) or me (always possible).

Frustrating, but other than lost time worst likely outcome is I renew with eNom for another year. Then try again in 6 months and hope whatever is broken gets fixed.

Update 6/5/2015: Dreamhost tells me they're getting a formal transaction from eNom: "Invalid EPP/authorization key - Please contact current registrar to obtain correct key". So now I have to contact eNom at 425-274-4500. May the Force be with me.

Tuesday, June 02, 2015

Facebook still has RSS feed for Pages. For the moment.

Once upon a time Facebook had RSS support for personal Newsfeeds. That died years ago.

I don't know if Facebook ever had RSS support for Groups; Groups used to be pretty limited. They don't now.

Pages though, they've always had RSS feeds. It's just getting a lot harder to find.

I may be dreaming, but I thought there used to be an official RSS link somewhere. If so it quietly passed on, maybe in the last 6-12 months.

The old Feed URL format still works though:
where the number is the Page ID.

The trick is finding the Page ID. Facebook keeps moving it around. As of June 2015 find it here:
  1. Click About link beneath Page photo (Timeline, About, Photos, etc)
  2. Find Facebook Page ID at bottom of the About Link.