DSL Upgrade Saga: Act III?
I feel like I’m finally entering the third act of my DSL upgrade drama. This started over a year ago when I realized that I really wanted faster service then the 768/128 link that I’m paying $80/month for right now. Last June, I asked Verizon to turn up my DSL’s speed, with predictable results–they ran around in circles for over a month, with different departments giving me different answers, ranging from “we already turned it up” to “we lost the order” to “we can’t do that, you need to cancel DSL, wait for it to go dead, and then re-order.”
Amazingly enough, the “you need to cancel” camp was correct–Verizon is unable to increase the speed of my current DSL setup. I played as many cards as I could, pulled the few strings that I have inside of Verizon, had off-the-record conversations with installers, and concluded that I had three choices:
- Put up with my current service, as slow and expensive as it it.
- Cancel DSL, wait two weeks, and re-order.
- Order a second phone line, wait for them to install it, then order DSL on it, then cancel the old line and DSL.
I looked into cable modems, but there’s no way to get a static IP address out of Comcast around here, and I need to run a number of servers. I considered moving my mail, web, and Asterisk servers off onto a hosted system somewhere–that’d let me use Comcast with a dynamic IP, but the cost and complexity of it all just makes it impractical.
So, yesterday, I finally decided to go with plan #3. I ordered a new phone line. It ends up costing me $29 to get it installed and $20/month. Hopefully I won’t have to carry both lines for more then a month. It’s supposed to be up on February 2nd; as soon as that happens, I’m ordering new 1.5/384 DSL service on the line. I’ll cancel the old DSL the same day that the new one comes up–I just need to swing DNS over to the new IP and then wait for a few short timeouts. So, hopefully, this whole saga won’t cost me more then $100 up front. The nice thing is that it’ll end up saving me a few bucks in the long term–with 3x the upstream bandwidth, I can move more phone services over to VoIP, so I can turn off more features on the phone line. That could save me almost $10/month. It’s not a lot of money, but every bit helps sometimes. Besides, it’s mostly the principle of the thing.
My Mac mini debate
So, I’ve been thinking about the new Mac mini. I could definitely use a couple new computers at home, and I’d be happiest with new Macs. They’d fit in well with my Powerbook and our dying old iMac. The Mac mini is certainly cheaper then older models, but the pricing is kind of deceptive. Yeah, you can get a model for $499, but by the time you bump the hard drive up to 80 MB, add a DVD burner, and add a reasonable amount of (third-party) memory, it’s pushing $1,000 all of a sudden. More specifically:
- Mac mini, 1.43 GHz/80 GB model: $599
- upgrade to Superdrive: $100
- add keyboard: $29 (Apple total: $728)
- 1 GB of Mac mini RAM from Crucial: $226.99
I’m sure I could get the memory for a few bucks less elsewhere, but I’ve had good luck with Crucial in the past, and I’d rather not monkey around with the RAM if I can avoid it. The initial rumors were that the Mac mini’s RAM wasn’t user-upgradeable; now it looks like it’s just sort of not recommended. It doesn’t require any special tools at the very least.
So, for $1,000, I can have a Mac with around 3x the CPU power of my aging PowerBook, enough RAM to do a bit of photo editing now and then, and a bit of disk space. I’d reuse the 22” CRT sitting on my desk at home and a Logitech optical mouse that I already own.
The problem is that I can’t afford a new Mac and a new Treo 650. Fortunately, no one seems eager to sell me a GSM Treo 650 any time soon, but sooner or later, Cingular is going to announce pricing, and I’m going to have to decide what I’m going to do about it. If they’d been shipping it 3 months ago, I probably would have ordered right off the bat, but its lack of memory and WiFi makes it look less enticing every month.
Oh, well–I should really wait until taxes are done this year before ordering any new hardware anyway.
New Years A/V cleanup
As part of the 4-day weekend that work gave us for New Year’s weekend, I spent some time cleaning and rationalizing the A/V system in our bedroom. Since we bought the projector a couple months ago, we’ve had 30-foot long audio and video cables snaking between the ceiling-mounted projector and the receiver and TiVo that were sitting on the floor right below the projector image. There had been a cabinet there that held them, but it got in the way of the projected image, and we couldn’t move them very far without running into the limits of our satellite cable.
The receiver wiring itself was a total rat’s nest, with TiVo, satellite receiver, and DVD player cables all tied together in a knot with a bunch of unused speaker wire. Since we cancelled the satellite and extracted all of the video from the TiVo, they could both be removed from the pile. Similarly, there was an old RCA DVD player–since we’re using MythTV for DVDs, we could remove it, too. Once we were done removing hardware, we were left with nothing but the receiver and the PC that runs MythTV. Since we weren’t tied to the cable jack in the wall any more, I moved the receiver closer to the projector, shortened the audio and video cables, and then re-ran longer speaker wires. Finally, I wired up rear speakers–the first time since 1997 that I’ve had rear speakers connected to any receiver I own. I also took the time to cable-tie the projector wires and discreetly stick them to the wall. That keep the projector from swiveling slightly ever time something bumps the cables, which makes for a more stable image.
Finally, I dragged the Xbox upstairs and wired it into the projector. Amazingly enough, in the whole time we’ve owned the projector, we hadn’t used it with the Xbox once. It works okay, but the interlacing is kind of nasty and the Xbox’s output looks fuzzy when it’s that big; I’m probably going to buy the Xbox component video kit, a component video to VGA cable for the projector, and a cheap 2-port KVM switch for switching the video input on the projector. That should give me a better image, plus the ability to use 720p on the handful of Xbox games that support it.
My one remaining job is to find a cheap IR transmitter for the PC and then program it to turn the projector off and on. Does lirc support any cheap USB IR transmitters? I notice that they have the IR codes for InFocus projectors on their web site. Given the codes and a transmitter, it should only take a couple minutes to get the PC to control the projector’s power.
A few days with MythTV
As I mentioned briefly before, I’ve been setting up a MythTV system at home. MythTV is a Linux-based open-source PVR system. Used properly, you’ll end up with something TiVo-like. Used improperly, you’ll end up with a massive headache and a sore throat from screaming at your computer.
I should start with a bit of background. I have two TiVos, and I love them, mostly. I loved them a lot more before the hardware on one box started flaking out, and before they started sucking up to the TV networks. What I really want is a way to record the TV shows that I watch and then share them between our two TVs, so I can watch the same show on either TV, and then delete it when I’ve finished watching it. With newer TiVos, you can copy shows between TiVos, but it’s just a copy–if I record it upstairs, then I can copy it downstairs and watch it, but I’ll need to delete it in both places once I’m done with it. I’d also like to be able to listen to music and watch DVDs on the same hardware; the ability to rip DVDs would be nice. I’d like the ability to expand my storage is critical–I have roughly 1 TB of disk space in my house, and I’d like to be able to use as much of that as possible for storing video. Finally, and really most importantly, I’d like to have the ability to fix things when they break–I haven’t had any luck with that with TiVo–one system crashes daily, and there’s nothing that I can do to fix it, short of spending hours sitting on hold with their tech-support system.
What I really want is the TV equivalent of iTunes–I want to be able to take the big mound of DVDs that I have sitting around, RIP them, and move them to the basement, next to the big mound of CDs that I used to listen to. I want to be able to pick and choose from upcoming TV events and add them to the library, just like DVDs. I want to be able to watch the movies on any TV in my house without remembering where it’s stored or worrying about the kids scratching the fragile little things. I’d really like it to Just Work, just like iTunes and the iPod, or like TiVo usually does. And I’d like it to work for *me*, not for network companies, record producers, or movie studios.
The closest that I can come to this today is MythTV. It supports recording TV, playing and ripping DVDs, playing MP3s, and displaying digital images. It networks nicely. It’s open-source and expandable.
It’s also a complete bitch to install. Once it’s installed, using it isn’t exactly a walk in the park, either.
I’m certainly not afraid of Linux in any of its incarnations, but I’d had a number of people tell me what a pain MythTV is to install, so I decided to try KnoppMyth, a Linux distribution customized for MythTV. It’s based on Debian, my favorite Linux distribution, and it comes with MythTV pre-installed and configured. I figured it wouldn’t be too hard to use KnoppMyth to take MythTV for a quick spin. I even had a spare small-form-factor system with a Celeron 2.4, a Bt878-based TV capture card, and a DVD drive sitting around.
Here’s a short list of what went wrong:
- The KnoppMyth installer locked up in the middle of the install when I told it to do an automatic install.
- When I tried again with a manual install, it didn’t default to installing onto any particular hard drive partition. I had to monkey with it briefly to tell it to install onto the boot partition that I’d just created. If I skipped through with just the defaults, I got an error later on when it tried to format a drive named ‘’.
- Once it had finished installing, even though it had formatted two partitions for
/mythand/cache, it failed to mount them. This resulted in errors that I had to fix by manually editing/etc/fstab. - The MythTV setup procedure consists of an xterm that asks a handful of questions. Without a mouse, it’s non-obvious how to select the xterm so you can type into it (Alt-Tab, space, if I recall correctly), and then it’s not obvious what to do–I had to re-run the installer repeatedly to get my channel listings correct, for example, because nothing said that I needed to go to http://labs.zap2it.com/, register, and get a username and password.
- Once MythTV was running, I was still unable to access the DVD drive at all–putting in a disk and hitting ‘Play DVD’ would cause the menu to flicker slightly, but it didn’t play the DVD or return an error. A bit of digging showed that the
/dev/scd*devices weren’t owned by thecdromgroup, so MythTV couldn’t access them. Once that was fixed, DVDs played correctly (plus or minus CSS problems, but we’ll ignore that little issue–it’s political, not technical). - DVD ripping complained about the transcoding daemon not running, and never seemed to actually do anything.
- Dropping video files into
/myth/videodidn’t seem to make videos visible to MythTV. - Live TV video worked, but recording TV produced files that were way too dim to view. Live TV audio didn’t work, even though it should have been available directly from the Bt878 decoder chip, but loading the
btaudiodriver doesn’t seem to produce any effect that I can see.
Most of these are just stupid integration issues; there’s no reason for them to exist in any even slightly polished product. KnoppMyth is at version 4r5; you’d think the CD ownership settings would have been fixed by now, right?
At this point, it had taken me about a half day to get MythTV to work, and all I could do was watch broadcast TV via rabbit ears and play DVDs. I could have accomplished the same thing by plugging the rabbit ears into a TV and buying an $18 DVD player (that was the cheapest “black friday” ad that I saw this year).
I probably would have dropped the project if an InFocus X1a projector hadn’t fallen into my hands. The InFocus is a 800x600 DLP projector that works with composite, svideo, HDTV, or VGA sources, but it’s happiest with VGA. So I had a project–mate the MythTV box to the projector. A few quick tests with MythTV’s DVD player shows that it looks way better then the same DVD via NTSC from my old RCA DVD player. Finding Nemo was gorgeous.
So, here’s all that I’ve had to do to get this to work right:
- Go to Fry’s on Black Friday to find a 25-foot stereo 1/8” plug to RCA cable.
- Pick up the cheapest USB remote control gizmo they had there.
- Recompile LIRC to support the StreamZap remote that Fry’s had sent me. This required re-creating KnoppMyth’s patched kernel so that the StreamZap patches would build.
- Figure out how to debug LIRC problems. Hint: use
irw, because strace onlircdis pointless. - Set up key mappings for MythTV and mplayer for the new remote. Half of the keys aren’t mapped to anything right now, because I can’t find the right feature to map onto.
- Set up NFS so I can store videos and music on my home file server.
- Copy 15 GB of music out of iTunes and into MythTV.
- Point MythTV to my home picture library.
- Upgrade like half of the software on the box to get MythPhone and Torrentocracy to compile. I ended up hand-patching Torrentocracy, and it still crashes MythTV whenever I try to use it.
- Figure out how to import videos. It turns out to be trivial–just copy the file into
/myth/video, then go to the “Utilities/Setup” menu, then “Video Manager,” and then edit the metadata so the video has a reasonable name. Once you’ve done that, it’ll show up in the menu under “Media Library”/”Watch Videos”. Yes, this *is* a new meaning of the word “trivial” that you haven’t seen before.
Things that still don’t work:
- Playing DVDs or DVD rips with AC3 audio produces really quiet audio.
- Ripping DVDs doesn’t always work right. Of my two test disks, one just fails silently in the middle of the process, while the other seems to work, but has video from the “making of” feature combined with audio from the main feature.
- Recording TV is still broken, I think.
- TV audio is still broken.
- Playing DVDs results in frame drops, which produces jerky video. Playing the same DVD ripped to the hard drive works fine, which leads me to suspect DVD read speed issues.
- I can’t skip chapters in DVDs, but I can fast forward and rewind several minutes at a time.
- DVD menus don’t work.
- Image gallery slideshows are weird–they overlay the image on top of the menu’s background, when a black background would make a lot more sense. The image gallery in general doesn’t look quite right, but that might just be a theme issue.
So, what does work?
- I can play DVDs with audio, if I turn the stereo up really loud.
- I can watch live TV, if I can lip-read.
- I can listen to MP3s.
- I can watch
.avifiles that have come from various sources. - I can browse JPEGs.
- I can do all this using a remote control instead of a keyboard.
Not a whole lot in other words. But I’m making progress–I’ve had a couple suggestions that might fix the DVD audio problem, and I suspect that the DVD ripping problem isn’t much harder. Once that’s done, at the very least I’ll be able to import a handful of the kids’ shows and have something useful.
I have a huge usability rant to make here, but I’m going to put it off a few days–I actually have some hope for MythTV, ever though it’s proving to be a massive time sink. It’ll take a few days to get all of my ducks in order, though–I need to finish a couple minor projects and do a few little tests. Fundamentally, I want to believe that MythTV can be fixed, but it’s so far from usable today that I’m amazed that it has the number of users that it does.
The travails of a house owner
One of the problems with owning a 20 year old house is that it comes full of 20 year old appliances, and most appliances are designed for a 15 year lifespan. When we bought this house almost 5 years ago, our inspector told us not to expect the appliances to last much longer, and to be happy with whatever life we got out of them.
Since then, we’ve lost the dishwasher, hot water heater, garbage disposal (who knew they could die?), and we’ve had to replace a couple faucets, a bunch of toilet parts, one complete toilet, and an outside water faucet.
Sometime tomorrow, we’ll add a new refrigerator to the list. Our current one is an old side-by-side Whirlpool with lots of fun features–the shelves don’t go all the way back, so things are prone to falling off the back of the shelves and ending up wedged behind the drawers at the bottom, where we don’t find them until we pull everything out for a big cleaning. The drawers fall off their rails all the time. The door shelves fall off sometimes. The glass shelves in the fridge pop out of their holders at a whim. The kick-plate the covers the coils doesn’t stay on right anymore; Gabe has a big gash in his foot right now from stepping on it after it fell off. And, on top of that, for the past few weeks, neither the fridge or freezer door closes properly. We’ve pulled everything out, cleaned the seals, checked alignment, and it looks like something’s bent somewhere. Even when everything’s closed as well as possible, the fridge barely makes it to 42˚ F overnight, so food’s been spoiling. Even if the seal problem is causing the lack-of-cold problem, and they’re both fixable, when all is said and done, we’d still be stuck with an old fridge that doesn’t work right.
In short, we need a new fridge. Fortunately, we’ve known this day was coming, and we’ve done way too much research. So, we had a decent idea of what we wanted, what models were available, and what they cost. After an afternoon of fighting pre-pre-Christmas shopping traffic, we’re the proud owners of one of LG’s new ”french door” models. Most of the reviews online seem positive, and we get got a decent price on it. It’s supposed to be delivered on Monday, which is better then I’d expected; when we replaced our dishwasher, it took over a month for it to show up.
Of course, there’s a downside to the story. While I was waiting for them to arrange delivery details, I spotted a pile of open-box InFocus DLP projectors for sale. I’ve been lusting after one for a while, and $735 seems like a decent price. So, I’m the proud owner of not only a new fridge, but a new projector as well. For the moment, it’s sitting in our bedroom, projecting an 8’ TiVo image on the wall, but we’ve been planning on turning our basement into a media room. It’ll be a few months before we’re ready to move it, but this gives us a nice incentive to keep after things.
I’m also trying to set up a MythTV box to go with it, but that’s a whole other story that I’ll get to later.
Database-driven call forwarding with Asterisk
Well, I know that I just said that I was done adding things to Asterisk, but it appears that I lied. I just added database-driven call forwarding to Asterisk, and took under 5 minutes.
The problem that I’m trying to solve here is simple: sometimes specific people call my home phone number when I’d really rather talk to them elsewhere. I have one specific example in mind–I’ve been beta-testing some software, and one of their sales guys calls me from time to time to ask how things are going. I don’t mind talking to him, but he keeps calling my home phone, when he’d be a lot better off calling my office number. I could just send him mail and give him the new contact information, but where’s the fun in that?
Instead, I added another macro:
; Do call forwarding out of a database. Look up the caller ID number,
; and if it exists in the forward DB, then forward the call to the
; specified number.
[macro-dbcallforward]
exten => s,1,DBGet(FORWARDTO=forward/${CALLERIDNUM})
exten => s,2,Macro(condsetcid)
exten => s,3,Dial(Local/${FORWARDTO}@inside)This macro looks in Asterisk’s internal DB for an entry called forward/$PHONENUMBER. If it exists, then the call is forwarded to wherever the DB entry points. I’m using the Local dialing channel, which basically just loops the call back around into the inside context, so it behaves just like I’d dialed it from an internal phone. This let me do things like forward calls to specific extensions, voicemail, conference rooms, or* external phone numbers. Finally, if the call fails, *or if there’s no matching DB entry, then we return to whoever called us.
So, the net result is that one quick DB entry is enough to send calls from some specific caller to wherever I want. Here’s how you set up the DB entries from Asterisk’s CLI:
CLI> database put forward 9199999999 12062629999
To delete them, just do this:
CLI> database delete forward 9199999999
VoIP: Where to go from here?
To recap, my Asterisk-based home phone system is working nicely. It lets me make cheap long-distance phone calls using VoIP. It sends me copies of incoming voicemail via email. It lets me selectively forward (or even ignore) incoming calls based on Caller ID. Basically, it’s a completely programmable home phone system. It’s completely under my control.
And it’s sort of boring. After all of this, it’s still just a telephone. I have a fantastic amount of computer and network power devoted to emulating a 100-year-old communication tool. It’s an “inside the box” system.
I’d like to change that, but I think I’ve lived inside the telephone box for too long, and I’m having a really hard time seeing out. What should the future’s phone system look like, and what do we need to do to build it? And, while we’re building it, how to we get it to interact with the existing phone network?
All sorts of fun question pop up here:
- Should phone (and phone numbers) be person-based or location-based?
- Do we want to stick with phone numbers, or would name-based addressing work better. Do you want to call me at +1-425-488-9014 or sip:scott@sigkill.org?
- How does presence play into this?
- How long should call setup take? Is there an advantage to < 1 second call setup, like the cellular push-to-talk people keep pushing?
- How should we differentiate between “buddy list” calls and calls from complete strangers? When we don’t know the caller, are we better off punting them to voicemail by default?
- For semi-stable social groups, would we be better off with semi-stable “chat room”-style conference calls rather then two-party phone calls? For instance, I could set up a conference for my extended family. Everyone with the right equipment could keep a “line” open for the call whenever it’s convenient. Then, anyone in the group with something to say simply has to activate their microphone and talk to the group, and everyone can listen in and respond. This is basically just the audio equivalent of IRC; it’s not technically difficult to implement, but it has huge social implications.
I’d like to play with some of this in Asterisk, but I’m lacking a few pieces. None of the fancier things that you can do with smart phone systems really works when all you have to work with are shared home phones, like the Cisco 7940 in our kitchen. I’d really like to find a decent softphone for OS X, but as Boris Mann points out, they’re mostly stuck in the voice-as-application model, when they should be voice-as-utility. I’d love to see a OS X softphone that works just like iChat–its normal mode of operation is just a little toolbar icon. You click on it, and it gives you a couple menu options and then a list of all of your common contacts. Select one, and it dials the number and gives your a little call-management window. Incoming calls are handled via pop-up, just like iChat.
An alternative would be a PDA phone with a decent SIP client. I’ve heard rumors that Vonage will have a SIP client for the next Treo. Frankly, if the “Treo Ace” (or whatever it ends up being called) can run a decent SIP client, and it includes something besides bluetooth for wireless connectivity, then it’ll be almost impossible for me to resist buying one.
Continued Asterisk progress
Pulling Ethernet cable to replace a bad WiFi link seems to have fixed the audio dropouts that were plaguing our home phone system, but it didn’t do much to help the two other problems on my to-do list. Like many people using Asterisk with POTS lines, the first dozen seconds of some phone calls suffered from a strong far-end echo. Every time we talked, we heard our voices echoing back at full volume around a half-second later. It made it really hard to carry on a conversation. Fortunately, Asterisk’s echo canceling code killed it off eventually, but we had to suffer with it at the beginning of a lot of calls.
I’d heard reports that changes to the echo cancelling code in the latest Asterisk release, 1.0-rc1, had almost completely eliminated echos for a lot of people. So, I rebuilt Asterisk from source again, installed it, added echotraining=800 to zapata.conf, and restarted Asterisk. And, sure enough, the echo seems to be gone. I made a handful of test phone calls without issues, and a 15-minute call to my parents was perfect. No drop-outs, no echo, and the only noise came from their lousy cordless phone.
So, that left only one thing on my to-do list. The Cisco 7940 phones make it easy to use call forwarding–it’s one of the default softkeys on the main screen. Just press the matching button, enter a phone number, and bam, all of your calls are forwarded. Canceling forwarding is even easier. Unfortunately, the way I had Asterisk configured, all forwarded calls would use our caller-ID information. So, when forwarding our home phone to one of our cell phones, every call would look like it was coming from home, not from whoever was actually calling. Fortunately, since NuFone lets your set your own caller-ID information, it’s possible to leave the existing caller-ID info in place for forwarded calls. I just used this macro:
[macro-condsetcid]
exten => s,1,SubString(cs1=${CALLERIDNUM},0,4)
exten => s,2,GotoIf($[${cs1} = ${CALLERIDNUM}]?3:4)
exten => s,3,SetCallerID(4254889999)
exten => s,4,NoOpIn essence, it checks the current caller ID number. If the number is 4 digits or less, then it assumes that it’s an internal extension number, so it overrides it with our real phone number. Otherwise, it lets it stay as-is.
Then, I went through my extension.conf and replaced every occurance of SetCallerID(4254889999) with Macro(condsetcid). Now call forwarding works perfectly–the caller’s ID is used instead of our home phone number.
At this point, my Asterisk to-do list is essentially empty. There are a few little projects that I can pick up and play with, but there’s nothing left that needs fixed. It’s reached the point where it Just Works.
So close, yet so far yet to go
I’ve spent all day today split between two tasks. On one hand, I’ve been trying to finish all of the wedding pictures; at this point the web gallery is complete, and C1 is almost done rendering all of the printable images. Considering that it started at 11:00 last night, it’s a clear sign that I need to go buy a G5.
Unfortunately, that was the easy job. With the help of my brother-in-law, I’ve been pulling Ethernet cable through the house all day. So far, we’ve pulled wire and terminated plugs in 6 rooms, but actually getting to all of those rooms was a major pain. We have wire running through two different attics, both garages, a crawl space, and into rooms on three different floors of the house. We’re both exhaused, and I’m not quite done yet–I need a RJ11 keystone jack, one more keystone coverplate, and some drywall repair goop. Oh, plus an extra Ethernet switch. Fun stuff. I wonder if any of it works right.
Update: Yeah, it works. Mostly. I killed our home phone service for an hour or so while trying to shoehorn the kitchen’s legacy POTS line into a keystone jack; in the end, I hand-twisted the red and green wires together for the night; tomorrow I’ll go buy something more suitable that will let me splice together a working phone system. Other then that, everything’s good. The Cisco 7940 in the kitchen is up and pingable, and that’s an improvement over our recent wireless networking performance.
Asterisk logs whenever a SIP phone becomes unreachable. It’s looked like this recently:
| Month | Number of unreachables |
|---|---|
| April | 114 |
| May | 112 |
| June | 187 |
| July | 319 |
| August | 245 |
Clearly, whatever’s been causing problems has been getting worse. Since each of these events is enough to kill an in-progress phone call, I now understand why my wife has been pushing me to fix the phone.
Verizon DSL just doesn't improve with age
Chapter 3 in my continuing DSL upgrade saga. Chapter 2 saw our intrepid hero trapped in bureaucratic hell, unable to move forward to a higher speed without canceling the current service and waiting for Verizon to re-install the new service. Since I wasn’t looking forward to 2 weeks without service, I decided to wait a while before cancelling my service.
Silly me. I assumed that, because they’d cancelled the upgrade, they wouldn’t keep billing me for the new service. No such luck; my bill has been $10 higher then it should have been for the last three months. I called once before and they claimed that they’d fixed it, but my bills haven’t reflected any change. So I called again, and was informed that I’m stuck with the new rate. Since they no longer offer my old rate, they can’t give it back to me. Typical Verizon. I was starting to warm up my “can I speak to a supervisor” speech when the rep surprised me and offered a credit for a month’s free service. After doing a bit of bit of quick math, as long as I cancel my current service within the next 5 months, I come out ahead with the credit. So, I now have a deadline running–cancel my current frame-relay-based DSL service before the end of the year, or end up paying extra for service that I’m not receiving.
Hmm. If they charge me for a new DSL modem, I wonder if I’m better off returning it for credit and getting a Sangoma S518 instead. A couple people on the asterisk-users mailing list have had really good luck with it, because it lets you do more reliable traffic shaping on your Linux box, rather then play games with the buffers on the DSL modem. It’s probably not worth the hassle, though.