Solved! Charter internet headaches

Just wanted to follow up. The Charter guys on twitter got in touch with me right away last Monday, and proceeded to solve my issues. They utilized the services of one of their network engineers to double-check the configurations on everything from my modem all the way up the chain to the local office. Somewhere along the way, everything suddenly started working as expected.

I also got another list of blocked ports:

  • 445
  • 593
  • 139
  • 1433
  • 80
  • 21
  • 25
  • 1080
  • 8080
  • 143

Now, to cancel my DSL lines 🙂


Charter internet headaches

Seduced by Charter’s upstream speeds (2 mbps with their 20 mbps service, and 5 mbps with their 60 mbps service), along with their better prices than AT&T’s slower DSL services, I finally caved. On Friday, a tech installed my 20 mbps service, and we were off to the races.

Earlier tonight, I was working with Dan Wilson on some code for a presentation, and I wanted him to look at my latest build. I sent him to the URL of my development server, and he couldn’t get to it. Thus started my so far unsuccessful journey of getting a straight answer from Charter as to what ports they block.

Now, it’s been documented that Charter blocks various ports on sites like DSL Reports and other forums, but nowhere on Charter’s site do they mention these things.

The first time I called in, I got a rep that sounded like he might be at a call center in India. I asked him what incoming ports Charter blocks, and he said that they do not block anything, that Charter gives me the “Full Internet”. I explained to him that I knew, from being a previous customer, that Charter at least blocks port 25 for external mail servers and port 110 incoming, and he said that Charter “doesn’t block any ports”. I asked him when that policy had changed, and he disconnected me.

I called back, and got a rep with a southern accent. I thought that my problems were over, that I was directed to someone competent, but I would eventually realize otherwise. We had quite a long conversation, that summed up went something like this:

Charter Rep: “We do not block any ports”
Me: “I know you block ports 25 and 110”
Charter Rep: “We don’t allow you to use other mail servers”
Me: “You just contradicted yourself. You said ports are not blocked, but then you tell me the mail server ports are blocked”
Charter Rep: “The ports are not blocked, you just have to use our mail servers, just like any other ISP would”

After a while, he decided that actually trying to troubleshoot might be prudent, and I connected my laptop directly to the cable modem, to prove that it’s not my firewall blocking the ports. I then asked him to try connecting to port 80 on my machine, at which point he confessed that he did not have the tools to do so. I asked him if he had a web browser, and he got confused and said that my machine should already have a web browser installed.

After a little more back and forth, he said that he was going to check with someone about something (he mumbled), and then disconnected me.

I cooled off for a couple hours, and decided to subject myself to more punishment by calling back again. I got another American rep, and I gave him a brief summary of my night so far, and he said that the previous two reps were right, that Charter does not block any ports. I held the same argument with him about mail ports, and explained to him all I wanted to do, like occasionally show my work to clients, or to connect to my home network when I’m on the road, and I needed to know what ports were blocked so I could properly configure my network. He said he’d check to see if one of his superiors could talk to me.

He came back on the line, and said that he found out that, lo and behold, Charter DOES in fact block ports, and here is the complete list:

  • 80
  • 23
  • 119
  • 110
  • 21
  • 1080
  • 135
  • 139
  • 593
  • 445
  • 25
  • 143
  • 8080

Armed with this supposed complete list, I asked why I couldn’t then connect to my laptop on port 22, SSH. He started to give me some runaround about how running a server is against Charter’s Acceptable Use Policy. After going back and forth a bit, I decided I had enough, and politely ended the call.

I just read the acceptable use policy, and there’s nothing in there about running servers. Now, understand that I’m not actually running servers, I just want a way to occationally let clients glance at the latest builds of my code, and connect to my network via VPN. I’m not using any P2P software, nor am I trying to run any active websites. I’m able to do all of this just fine with AT&T’s consumer DSL service, and I’m quickly growing tired of the runaround.

I’ve pointed Umatter2Charter to this blog post, we’ll see what happens tomorrow.


Facebook Job Connection – an Alternative to LinkedIn

I’ve written my first Facebook application, Job Connection. It allows you to use your Facebook friends network to look for a job by word of mouth. On the flip side, it lets you connect your friends with job openings that you know of.

So, go out, install it, and don’t forget to invite your friends. The application only really will meet it’s potential if you invite your friends.


URLValidator for AS3/Flex

I had the need for a URL Validator for a Flex project, and couldn’t find one. So, here’s the code:

package org.iotashan.validators
    import mx.validators.ValidationResult;
    import mx.validators.Validator;
    public class URLValidator extends Validator
        public function URLValidator()
        override protected function doValidation(value:Object):Array
            // Clear results Array.
            var results:Array = [];

            // Call base class doValidation().
            results = super.doValidation(value);       
            // Return if there are errors.
            if (results.length > 0)
                return results;
            // match regex pattern
            var pattern:RegExp = new RegExp("^http[s]?\:\\/\\/([^\\/]+)\\/");
            // run the pattern, but don't error if there is no value and this is not required
            if (!(!required && !value) && !pattern.exec(String(value))) {
                results.push(new ValidationResult(true, null, "notURL",
                    "You must enter a valid URL."));
                return results;
            return results;

You can download the swc here.