Author Archives: mike

How Wind Mobile Took My Autistic Brother for a Ride

UPDATE:

I just received a call from Ayesha at Wind Mobile- from the “Office of the President”. She spent most of the call re-iterating their policies to me, and suggesting that i’m lying about calling in before the 14 day window.

She then mentioned that they had plans on beefing up the coverage in my brothers area, and if I was willing to come back as a customer, they would offer me a $100 credit towards my account.

I declined.

Hello Michael,

As a follow up to our conversation today, the reference ID for our conversation is CXXXXXXXX. We will be investigating further and I will touch base with you soon with regards to reaching a mutual resolution to this matter.

We sincerely appreciate your patience and cooperation with regards to this matter.

Regards,

Ayesha S Office of the President

My brother is autistic.

He’s pretty high functioning as far as autism goes, but he still struggles with his disability on a daily basis (whether he’s fully aware of it or not). He can do a lot of stuff on his own- he can navigate the transit system better than most, he can feed himself (for the most part), and do many of the things average people do.

My brother moved from Vancouver to Toronto to come and live with me after our mother passed away in 2009; there was really nowhere else for him to go, so in one of her last lucid moments, I promised my mom that I would take care of him.

A large part of taking care of him was getting him registered for ODSP (Ontario Disability Services Plan), and with DSO (Development Services Ontario) in the hopes of getting him moved out on his own so he could be as independent as possible. Part of that independence was developing a budget that he could stick to, so that all his bills were covered, whether I was around to help or not.

One of his monthly expenses is his cell phone. The only other person my brother talks to besides me, is our sister in California- but they talk a LOT, and it’s good for both of them, as his autism makes it hard for him to connect with people, so family and familiarity is really good for him.

So I started the research. I considered Rogers, Fido, and Wind Mobile- Wind immediately stood out because they had unlimited plans for voice, text, and data, and they had a $10/mo add-on that would let my brother call my sister in the US. Unlimited is good, because my brother isn’t going to remember to limit himself, and he can’t afford to get stuck with crazy over-usage charges at the end of each month- he HAS to stick to his budget.

According to the Wind coverage map, they were well covered in his area (as well covered as the Toronto downtown core), and the “Windtab” option sounded great, because he could get a “good” phone without having to pay for the whole thing up front. So we decided Wind was the way to go- and so he started saving up. My brother only has an extra $50 every month, so it took him five months to save up enough to get the phone he wanted, and to pay for the first month of service.

coverage_area

Finally the day came where he had enough saved up to get his phone. I went in on a Saturday (March 9th) to the Wind Mobile store on Queen St., and set up the account for him using my credit card (as he doesn’t have one of his own). The total came out to $254.37– every cent he saved up, plus I kicked in the $4.37. The next morning I met him for breakfast and gave him his new phone; he was entranced- completely taken by his new Droid- and I got to take a breather, and check one more thing off my list of things I needed to do for my brother.

The problems started immediately.

By Wednesday (March 13th) we realized that whenever he tried to make a phone call from home, the calls would drop; and when I would try to call him, I’d just get a message about the subscriber being unavailable. At first I thought it might be temporary; or maybe he turned his phone off for some reason, or the battery died. But it persisted for several days, despite the fact that he had 3-5 bars the whole time.

It also took us a few days to figure out what was going on, since the phone worked perfectly fine when he wasn’t at home; my brother would call me from Dundas square or from a Starbucks somewhere closer to the downtown core, and we’d talk without issue. It was only in his area that the calls would drop.

Call #1– So I called into the Wind support for the first time on Friday (March 15th) – 7 days after buying the phone. I explained to the support person what was happening; she confirmed for me that their coverage in his area was well within the support zone (which backs up what their website says), and that he should have NO network issues in that area.

We ran through all the “normal” troubleshooting issues, and then she said that she would “reset the phone on her side” because sometimes the connections get “stuck” on certain cell towers.

“Stuck”.

Now, I’m not an idiot; and I was a technical support rep myself at one point in my career- so I understand what a blow-off sounds like- but she assured me that this would solve the problem, and everything would be working fine now. Rather than argue with her about what “stuck” means, I thanked her for her help, and got my brother to reboot his phone and try again- obviously there was no difference.

Call #2 – Saturday (March 16th) I phoned back in and I relayed to the new support rep the entire story, and about how the last rep “reset” something on their side. After going through all the same thing as the first rep, I started to lose patience, and requested to speak with a supervisor; not because she had done anything wrong at that point, but simply because her ability to help me was clearly limited- and I just needed to get this problem fixed.

She immediately got defensive, and insisted that if I really wanted to talk to a manager, that it was going to be a 4-6 hour wait, and that they might not even be able to call me back that night. When I insisted that I talk to somebody right away, and that I’d wait on the line, she put me on hold, and then hung up on me.

Call #3 – Monday (March 18th) I phoned back in; I waited a day because I simply could not bring myself to call back in right away- I wouldn’t have been able to refrain from taking my frustration out on the reps, and despite the poor performance so far, I’m sure i wouldn’t get the same person, and they don’t deserve that.

This time I get a rep named John; I recapped everything for John, including the initial solution of resetting the “stuck” connection- which he literally laughed out loud about- he insisted that the level 1 tech support have no such ability– and he confirmed that we’ve already worked through every possible trouble shooting option available to him, and that the only thing left was to talk to a level 2 rep.

John was the man; he got there in less than 5 minutes of talking to him, and he assured me that he would “take care of it”- the only downside is that the level 2 rep would only be able to call me back in the next “24-48 hours… but sometimes it takes longer”. So John put in the ticket, gave me the case number, and then I waited.

And then… nothing.

Call #4 – Friday (March 22nd) This call was short; I gave her my case number, she looked it up, and quickly told me that the reason I didn’t get a call-back from a level-2 rep yet, is because my buddy John didn’t submit the ticket correctly. I wasted four days waiting for a call that was never going to come.

She re-submitted the ticket, and told me that I would need to wait another 24-48 hours before hearing from the level 2 rep.

** At this point we reached the 14 day return policy that Wind provides; my brother would need to pay out his Windtab if we decided to cancel the account- so another $250+. **

Call #5 – Monday (March 25th) – three days later- I received the level-2 rep call-back. Of course, they happen to call at the exact minute I’m in the washroom, so I missed the call. The voice mail message was weak– no direct number to get back to them, no attempt to re-dial me, no effort at all- they simply said “sorry we missed you, please call us back at our main number”.

Call #6 – Saturday (March 30th) – I called in, but the hold time was soooo long- I just couldn’t do it. At this point I’m already so nauseated at the thought of talking to Wind support, that i just needed to take a day off.

Call #7 – Sunday (March 31st) I called back in and talked to a level-1 rep, and I told them that I missed the level-2 call-back, and that I’d like to be transferred right away. He said the only thing he could do was put the ticket back in, and I’d get a call-back again in another 24-48 hours. I asked to speak to a supervisor, and he said “sure”, and hung up on me.

That’s twice I was hung up on!

Call #8 – Monday (April 1st) I spoke with Spencer and I explained to him that I missed the level-2 call-back and that I’d like to talk to them right away- and I would wait if needed. Spencer gave me the same line about putting in a ticket, and how I’d get a call-back within 24-48 hours- but I refused. I said that’s insane. I said I would wait.

He didn’t want to let me wait on the line, so I finally said that he should simply pass me to their cancellation dept., as they seem to be unable to resolve my issue. I was transferred to their loyalty dept. so I could cancel, but the rep insisted that I speak with a loyalty supervisor, so she transferred me; the loyalty supervisor insisted I speak with a level-2 support rep, and she immediately transferred me to Matt- level-2 support.

Now, I understand that the level-1 reps have limited abilities but I shouldn’t have to threaten cancellation, only to be transferred to the very person I called in to talk to- this is terrible support.

Matt insisted that the calling area was well covered, and that it must be my phone or my SIM card. That answer seems suspect to me, given that the phone works perfectly fine in other areas, and that the SIM (along with the phone) is brand new- but he insisted that this is where they need to start, before talking to anybody about the cell coverage in the area.

So I agreed to jump through their hoops, in the hopes that something will solve the problem. I took the phone in to get a new SIM card, and gave the phone back to my brother to take home so we could test- no difference at all.

At this point the conclusion is obvious; it’s been obvious from the beginning- the coverage in the area is poor, and there’s really nothing they can do about it.

Call #9 – Monday (April 10th) the level-1 rep looks up my account, and sees a note to transfer me right away to a level-2 rep. – no questions asked. I’m not sure why they didn’t do this all the other times instead of insisting that I wait 24-48 hours for a call-back- but whatever.

I spoke with Mimi- I explain everything that’s been done, and she reluctantly admits that the service is poor in that area. She said a couple things that blew my mind:

1) She said that my brothers’ address is “right on the edge of their coverage area”. Now, when you look at their coverage map on their website (I took a screen shot above), my brothers address looks like it’s well covered, and not at all on the “edge”. But she says that she has access to a “better map”, and on her map, he’s right on the edge.

So basically the Wind Mobile coverage map on their website is a lie– they’ve exaggerated their coverage area to look bigger than they actually are. This isn’t really that surprising, given how new Wind is to the mobile market, but coverage was a deciding factor on choosing them in the first place.

2) She also said that they have more cell towers scheduled to be installed in that area “at some point in the future“. I’m not sure if that’s really true or not, but if it is, it means they KNOW that the area is not well covered- which means their reps are lying to their customers, telling them the coverage in that area is good, when it’s clearly not.

She also couldn’t give me any dates of when the area would be upgraded; she said it “could be years” before anything in actually installed.

At this point, I’m done- the service is unusable; there is no other recourse other than to wait to see if/when the area is upgraded, which could take years, not to mention the weeks I’ve lost working through this, only to be repeatedly lied to and hung up on.

I asked Mimi to transfer me to the loyalty dept. so I can cancel my brothers’ account. I spoke with a rep, who eventually transferred me to Candace- a loyalty supervisor. I explained to Candace why I was cancelling, and that I was happy to pay for the usage on the account so far, but I’d like to return the phone and cancel the account.

Candace informs me that because it’s been more than 14 days since I signed up, my brother needs to pay out the remainder of the Windtab (a total of $226) – they won’t take the phone back, and they’ll refuse to cancel the account until the Wintab is paid- so it will keep incurring monthly charges for a service he can’t/won’t use.

I was BLOWN away.

First off, the service doesn’t work; and hasn’t worked since day 1- they can SEE all the dropped calls on their side- that should be more than enough right there for a company to accept that they screwed up, and eat the costs.

Secondly, the ONLY reason we were past the 14 days is because THEIR tech support took longer than that to try and resolve the problem. I spent time working through the support steps that they themselves had engineered, not to mention their mistakes, them hanging up on me, them lying to me about the area being covered, and the time it took for them to call me back.

If your support process is padded with 24-48 hour call-back windows, and requires multiple calls to resolve issues, then you need to stop the clock on your return policy until a conclusion is come to- and the consumer can make an informed decision on whether to keep the account or not.

But it’s very possible that this is intentional; if you keep a half-assed support system in place, then it creates a scenario where customers could get pushed past the 14 day window, and are forced into a decision of paying out the Windtab in one lump sum (which for many people like my brother, is months and months of saving), or they just put up with the poor service and keep the account (because Wind refuses to cancel the account unless the Windtab is paid)- either way Wind wins.

So where are we now? After paying Wind Mobile over $500 for a service that never worked.

charges

My brother needs to save every penny he has for the next six months to pay off the Windtab, and he’ll end up with a phone that he may or may not be able to use with another carrier. Meanwhile, he’ll have no phone, since he can’t afford a plan with another company until the Windtab is paid off.

He won’t be able to call our sister. I won’t be able to get a hold on him to check in on him; to make sure he’s taking his medication; to make sure he’s “ok”. And he’ll have no way to call me in an emergency- or if he just wants to tell me about his day.

He’s autistic, so he doesn’t really understand why this happened, no matter how much I try to explain it to him. He feels ripped off, and he’s confused, and he feels abandoned by his family; and Wind Mobile did this to him for money.

Net_DNS2 Version 1.3.0 – More DNSSEC Features

This release includes many new DNSSEC changes, including a new, simple “dnssec” flag that tells the server to send all the DNSSEC related resource records for the given zone, as well as include the AD flag indicating if the data is authentic. This is analogous to the “+dnssec” option on the command line dig command.

Setting “dnssec” to true makes Net_DNS2 automatically add an OPT record to the additional section of the request, with the DO bit set to 1, indicating that we would like the DNSSEC information related to the given zone.

$resolver = new Net_DNS2_Resolver(array('nameservers' => array('8.8.8.8')));

$resolver->dnssec = true;

$result = $resolver->query('org', 'SOA', 'IN');

print_r($result);

Produces:

Net_DNS2_Packet_Response Object
(
    [answer_from] => 8.8.8.8
    [answer_socket_type] => 2
    [header] => Net_DNS2_Header Object
        (
            [id] => 31102
            [qr] => 1
            [opcode] => 0
            [aa] => 0
            [tc] => 0
            [rd] => 1
            [ra] => 1
            [z] => 0
            [ad] => 1
            [cd] => 0
            [rcode] => 0
            [qdcount] => 1
            [ancount] => 2
            [nscount] => 0
            [arcount] => 1
        )

    [question] => Array
        (
            [0] => Net_DNS2_Question Object
                (
                    [qname] => org
                    [qtype] => SOA
                    [qclass] => IN
                )

        )

    [answer] => Array
        (
            [0] => Net_DNS2_RR_SOA Object
                (
                    [mname] => a0.org.afilias-nst.info
                    [rname] => noc.afilias-nst.info
                    [serial] => 2010472684
                    [refresh] => 1800
                    [retry] => 900
                    [expire] => 604800
                    [minimum] => 86400
                    [name] => org
                    [type] => SOA
                    [class] => IN
                    [ttl] => 886
                    [rdlength] => 51
                )

            [1] => Net_DNS2_RR_RRSIG Object
                (
                    [typecovered] => SOA
                    [algorithm] => 7
                    [labels] => 1
                    [origttl] => 900
                    [sigexp] => 20130429014033
                    [sigincep] => 20130408004033
                    [keytag] => 31380
                    [signname] => org
                    [signature] => KBWEIC7BTypmbMTPU2KjCkPDbN1tV29ShWqa2zoGb4uQcRDBgYhz2ajpOaaJPrK+YY2E7BavLI+kulhJn9r/5kjXlOHQG/34B+OFlQwTTwHIRqtSmBu1qJorJSrSObQGVjZt4hteNVF6rfbS2u1m/Rh43eaoVCHfhJaeyr+MzLA=
                    [name] => org
                    [type] => RRSIG
                    [class] => IN
                    [ttl] => 886
                    [rdlength] => 151
                )

        )

    [authority] => Array
        (
        )

    [additional] => Array
        (
            [0] => Net_DNS2_RR_OPT Object
                (
                    [option_code] => 
                    [option_length] => 0
                    [option_data] => 
                    [extended_rcode] => 0
                    [version] => 0
                    [do] => 1
                    [z] => 0
                    [name] => 
                    [type] => OPT
                    [class] => 512
                    [ttl] => 32768
                    [rdlength] => 0
                    [rdata] => 
                )

        )
)

You can see that the response includes the original OPT RR in the additional section, with the DO bit set to 1. The header section also includes the AD bit set to 1, indicating that the server considers the data authentic.

I’ve also included the ability to adjust the AD flag  when making a query (to indicate to the server that we’d like the value of the AD bit, without having to set the DO bit in the OPT RR – see RFC6840 section 5.7), and to adjust the CD flag (telling the server that the client will perform it’s own signature validation).

Net_DNS2 does not validate the DNSSEC signatures itself, but it does provide all the data from DNS needed so that users can. Future versions of Net_DNS2 may provide support for this.

See the change log page for a full list of changes in this release.

You can install Net_DNS2 version 1.3.0 directly from PEAR, using the command line PEAR installer:

pear install Net_DNS2

Or download it directly from the Google Code page here.

RBLTracker: Automated, Real-Time Black List (RBL) Tracking

RBLTracker is a new project I’ve been working on- an automated, real-time black list (RBL) tracking service.

rbltracker3

RBL and URIBL Monitoring

The RBLTracker system automatically scans over 60 RBLs,  and 20 URIBLs, multiple times per day, to see if any of your IP addresses or website domains are listed, giving you the peace of mind you need to focus on your business.

The list of RBLs that RBLTracker monitors will always be kept up to date with the most current list.

rbltracker4

Hosts

RBLTracker is a fully automated monitoring service, which checks your IP addresses and website domains against the most frequently used real-time black lists (RBLs) and Safe Browsing Databases.

rbltracker1

 

Contacts

Get alerted immediately when one of your hosts is found on an RBL, URIBL, or in a Safe Browsing database.

Your RBLTracker account can be configured with multiple email addresses and phone numbers, for receiving alerts about your hosts. Each contact can be individually configured with different notification rules, to control how each contact receives alerts when one of your hosts is blocked.

rbltracker2

Google Safe Browsing

The Google Safe Browsing database includes lists of website domains that may be dangerous to visitors, because they are suspected of phishing or malware.

RBLTracker will check your websites against the Google Safe Browsing database, and alert you immediately if any errors are found, ensuring that your visitors can reach your websites.

safe_browsing_mac

API Access

RLBTracker includes a simple, read-only, REST based API, that lets you poll our database for the current status of your hosts.

The RBLTracker API can easily be integrated into existing monitoring systems, like Nagios or Zabbix, by performing a simple HTTP GET request for the list of currently blocked hosts. The response data can be returned either as simple XML, or as a JSON object.

<?php
    echo file_get_contents('https://rbltracker.com/api/blocks.json?api_token=123');
?>

{
    "status_code": 200,
    "status_message": "Ok",
    "total_blocks": 1,
    "data": [
        {
            "id": "5afd618836c251cbb066803f25b87fa1",
            "host": "192.168.1.1",
            "name": "Primary Mail Server",
            "status": "active",
            "last_checked": "2012-12-30 21:00:07 EST",
            "first_blocked": "2012-12-17 11:05:03 EST",
            "block_period": "13 days 13:35:58",
            "blocked": "1"
        }
    ]
}

Don’t let your customers be the first to know when your email systems or websites get blocked.

Signup for FREE today!

 

Net_DNS2 Version 1.2.5 Released

I’ve released version 1.2.5 of the PEAR Net_DNS2 library- you can install it now through the command line PEAR installer:

pear install Net_DNS2

Or download it directly from the Google Code page here.

This release includes some important fixes to the way I was calculating the offset values when building the DNS packets. Here is the full list of changes for this release:

  • changed the socket_connect() code to start off non-blocking, and call select() after connect() so a timeout on a invalid server works properly
  • added the new TLSA RR – RFC 6698
  • fixed the socket defines again; apparently the values of the SOCK are different under solaris
  • changed the Net_DNS2_Updater::update() so you can pass a reference to a variable that will be populated with the response object
  • moved the lines that add the response server/type to after the is_null() check- it should have been there to begin with.
  • fixed a whole bunch of cases where I wasn’t incrementing the offset values properly
  • added support to set the RD (recursion desired) bit when making a request

My Animals for Kids! – Free iPhone/iPad Game

My Animals for Kids is a fun and educational game that helps kids visually recognize animal shapes, and learn pronunciation and spelling of each animal’s name.

Kid tested and Parent approved! My Animals was developed for toddlers, preschoolers, ESL students, and people with disabilities.

Download for FREE here.

Quality Learning Tool

My Animals for Kids! features high resolution photographs, crisp animal shapes, and a clean, easy to use interface made specifically for little fingers.

Listen for the catchy music, fun sound FX’s, and a professionally recorded voice actor.

Content & Replay Value

My Animals for Kids! contains 10 Animals to try out for FREE! Don’t want the fun to stop? Upgrade to the 33 Animal FULL version!

For LESS than the price of a chocolate bar you get hours of fun and learning for your child!

Two modes of play (Manual / Auto); No internet connection required to play!

By Parents for Parents

Share in the fun by playing together, or let your child play on their own. Simple, straightforward- with lots to explore.

Children are rewarded for every touch with Magic Sparkles! If they’re old enough to ask for your phone, they’re old enough for our game.