a perspective on XML Services for VoIP Telephones

Last Wednesday I attended a talk at the Toronto Asterisk Users’ Group given by Hung Lam, Aastra‘s IP Product Portfolio Director, on the topic of developing XML-based services for Aastra’s IP telephones. It’s clear that Aastra is trying to compete with Cisco in the same space; Cisco’s Unified IP Phone portfolio includes support for their own XML-based information services. In fact, Aastra’s own XML dialect is based largely on the equivalent Cisco dialect.

I won’t go into details about Aastra’s offering in this space; hopefully TAUG will be able to procure Hung’s slides and put them up on its website to give a PowerPoint-style overview of Aastra’s feature set. (The XML Development Kit also includes extensive documentation and sample code for developers wishing to implement their own applications.) I only wanted to make a couple of observations, as follows. Continue reading

new cell phone activated

I decided to downgrade to a cheaper cell phone after looking over my bills for the last year or so. Previously, I was on Telus‘ Mike service, whose IDEN-based features I’d never used — the only person I knew who still owned an IDEN device was Meredith’s brother, but he ran over his phone with a tractor several months ago. Oops.

Looking at my bill, I was paying about $40/mo. for around 80 minutes of calls. This was insane! My per-minute rate worked out to about 50c/min., once you factored in the “Network Access Fee” (as though you have a choice as to whether to pay that) and taxes. I decided that getting a pay-as-you-go phone was the best alternative.

As a good engineer, I scoped out my requirements first, and did my research. Here’s a summary of my findings.

Company Name Cost Top-Up Details Other Charges Roaming Call Display Voicemail Text Messaging
President’s Choice Mobile 20c per minute $15 top up: provides up to 75 minutes of local calling, valid for 30 days; $25 top up: provides up to 125 minutes of local calling, valid for 60 days. N/A Need to coordinate 2+ weeks in advance and provide a credit/debit card x x x
Virgin Mobile 25c per minute (on “Small” plan, i.e. $0 monthly fee) $100 top-up expires in 365 days; $50 in 120; $25 in 49; $15 in 45 N/A No roaming possible x x x (15c per message sent)
Telus 25c, 33c or 40c a minute $50 top-up expires in 60 days; $25 in 60; $10 in 30 N/A unclear x $10/mo (SPARK10) only with SPARK
Rogers 25c to 39c a minute minimum $10-$30 top-up every month 911 access charge each month Roaming in US for $2.49/minute unclear x (but billed for each minute of a message too) x (15c per message sent)
Fido 20c per minute with >=$20 top-up; otherwise 30c a minute $50 top-up expires in 60 days; $30, $20 and $10 expire in 30 50c 9-1-1 charge every month Roaming not available (only with monthly invoice packages) x $5/mo x (15c per message sent, but it’s not explicit that SMS is included)
Bell Mobility 30¢/minute for the first 2 minutes and 5¢/minute for the rest of the call $25 card expires in 60 days; $15 card expires in 30 days $3.95/mo system access fee + $1.00/mo 9-1-1 fee only with automatic top-up no up to 3 one-minute messages no

You can see that there is quite a high variance between the various prepaid mobile providers out there. Some of them, like Bell, even charge you the same Network Access Fee even though you’re on a prepaid plan! I decided that my requirements were:

  • No network access fees or extra (e.g. 911) fees
  • Reasonable per-minute rate – no weird variations like Telus has
  • Possible to roam in the United States
  • Text messaging, for a cost, of course
  • Bundled voice mail
  • Call display

Based on these requirements, I selected President’s Choice Mobile and bought a new Nokia 2855i phone — much lighter than my old Motorola i90c, and it has a colour screen and Bluetooth too! I’m very happy both with the phone and the service from PC. One amusing fact: PC farms out the actual work to Bell, but if you were to get a pay-as-you-go service from Bell, they’d charge you $3.95/mo. for a system access fee, plus $1.00/mo. for a 9-1-1 access fee! PC Mobility has no such gouging — plus it’s more feature-rich (call display, bundled voice mail, etc.)

The best part is that since the phone is functionally the same as a Bell phone, I get even better reception within the CBC Broadcast Centre than I did with a Telus phone, and I can still send e-mail to the phone by specifying phone-number@txt.bellmobility.ca.

I’m very happy with my choice and I can definitely recommend PC Mobility for low-volume cellphone users. Oh – and if you’re interested in an old IDEN phone – I’m selling mine :-).

Government of Canada to override CRTC on VoIP regulation

As many of my regular readers know, I’m an open-source VoIP hobbyist, and as such, I’m a "member" of the Toronto Asterisk Users’ Group (I use the quotations because the group does not have membership requirements nor is it a formal organization per se). One of the hot topics recently on the TAUG mailing list was the Government of Canada’s recent decision to override the CRTC‘s position that VoIP is a telephony service and should be regulated as such.

The CRTC has traditionally regulated telephone companies and set minimum pricing on services such as land lines and DSL so that the incumbent carriers like Bell Canada cannot use predatory pricing to drive non-incumbent firms out of business, only to raise those prices later when the marketplace has been clear-cut. Now that the government has proposed to override the commission, VoIP service will become a free-for-all, with hobbyist and startup VoIP providers like Unlimitel and AtlasVoice getting squeezed by the incumbents for large commercial deployments.

This is bad news for VoIP telephony in Canada and will greatly reduce consumer choice, except for those consumers, such as hobbyists, who are willing to take an "anything but Bell" attitude. The government’s actions in overriding the CRTC’s fair and thorough process aimed at protecting consumers is a blatant demonstration that it is pro-big-business to the exclusion of all other factors. (That process, by the way, arrived twice at the outcome that VoIP should be regulated like regular telephony, despite a Conservative government Privy Council Order which attempted to pressure them into reconsidering their original decision.)

It’s a shame that this particular issue is too esoteric for the mainstream press to cover, but I think it’s very much a bellwether for how the government plans to treat other emerging technology trends that threaten traditional big-business hegemony.

supervised disconnect on PSTN lines

It’s funny how sometimes you have a technical problem that you think is only attributable to your own (possibly crappy telephony) setup, but later on you discover that the problem is quite common. For example, today on the TAUG mailing list, someone complained about their Zap (analog) channel never being hung up by Asterisk particularly when the user at the other end hangs up right away. I have also had this problem on my home Asterisk setup, where Asterisk will busy-out the Zap channel for hours, preventing people from making incoming calls.

At first I attributed it to my crappy clone FXO card, but now I’m wondering if it’s a problem with Asterisk. Others seem to think so and feel that Asterisk doesn’t properly handle the supervised disconnect in situations when the channel hasn’t been Answer()ed. I haven’t done enough tests to nail down when in the dialplan it happens exactly.

Later in the day, someone claimed that one way to fix the root cause is to teach Asterisk how to handle the standard off-hook warning tone, but I don’t think it’ll be very simple to implement, since the warning tones are probably different for each country.

For now, I’m happy to ssh into the server and soft hangup Zap/1 (as someone suggested) but I wish there was a solution that didn’t require such manual intervention, so if any telephony enthusiasts are reading this and have any better ideas, feel free to comment.

Sphinx talk at TAUG this month

As a follow-up to my last post, Simon Ditner is going to be giving a talk about speech-to-text integration in Asterisk using Sphinx2 and Sphinx4 at this month’s TAUG meeting. All the meeting details can be found here. You’ll also get to hear a demonstration of Simon’s own use of this engine, which is a hilarious Zork-over-IP implementation in Asterisk.

By the way, you may have noticed that some of my previous posts allude to me returning VoIP equipment to Devlin. That’s because I’ve returned to the Platform Administration team at CBC.ca. This time around, I’ll be working on a number of exciting capital projects (I know, it doesn’t sound exciting when you call them capital projects) that are mostly aimed at fixing the basics with CBC.ca’s infrastructure. I’m not sure I can disclose many details at the moment beyond that, but rest assured that I will be discussing the relevant technical challenges and their solutions at an appropriate time. I hope to be able to informally follow in the footsteps of my colleague Blake’s contributions to the Inside The CBC weblog in his Under The Hood column, but going into far greater technical detail than Blake is able to, for reasons of audience accessibility.

Sphinx: An Open Source Speech-to-Text Engine

I attended the Toronto Asterisk Users’ Group meeting tonight and one of the hot topics discussed over dinner was speech-to-text (i.e. speech recognition). Text-to-speech (TTS) in Asterisk is already well-handled by Festival and the corresponding Asterisk application, but I think you’ll agree that speech recognition is a far more interesting topic. (Except if you hate Emily, Bell Canada’s vocal equivalent of the stupid Microsoft paperclip)

Carnegie Mellon University has long had a group working on a recognition engine called Sphinx, funded by a DARPA grant. I’m told that Sphinx-II, the original C version, is available as an application for Asterisk, but later versions of Sphinx have much higher accuracy. Sphinx-3 is written in C++ and Sphinx-4 is written entirely in Java. Sphinx is different from many other speech recognition systems in that it does not require training, which makes it ideal for use in telephony applications. Instead, you supply it with a dictionary of known waveforms (the bigger the dictionary, the more RAM is used). Mike Ashton of QualityTrack claims over 96% accuracy using Sphinx, using it to strip sensitive information out of recorded phone calls from a call centre monitoring application.

This is really fascinating technology, and the best part about it is that despite having been developed under a DARPA grant, it’s open source! Apparently this was one of the stipulations of the CMU researchers when they first agreed to accept the grant, and the community is the better for it. According to the site, it’s rather difficult to install and set up, particularly for those of us with no knowledge in speech patterns and the like, but perhaps one day I’ll be able to have a system that I can dial and say “Please reboot programGuide” and Asterisk will be able to do the right thing.

Super Mario meets the SPA-941

The default ring tones that come with the Sipura SPA 941 IP phone are a bit lame, and actually the "Classic" tone is very jarring. I’ve been playing with my Super Nintendo (yes, that 16-bit dinosaur) again recently, and I must say that the sound effects and music in Super Mario Brothers 2 are very catchy. I decided to see if I could make a ringtone out of some key tunes.

Continue reading

provisioning a new SPA-941 IP phone with Asterisk

I recently returned my fancy-pants Cisco 7960G IP phone to Devlin, and in its place I purchased a Linksys (formerly Sipura) SPA-941. I’d spoken with my friend & colleague Dan Fraser over at One Stop Media who are using these handsets quite successfully in conjunction with an Asterisk PBX system, so I decided to pick one up. Dan specifically recommended against the SPA-841, saying the voice quality was poor, and although he said the Grandstream sets (such as the GXP-2000) have decent sound quality, they are really ugly, and I have to agree. I wanted a decent-looking set that I could also autoprovision using TFTP and evangelize to people on the road about VoIP.

Continue reading