Alan Porter wrote:


Does Gizmo support sending tones?

With Skype, I've had a problem using the dialer to send tones to phonebots and answering machines, whenever there's a "Press one to leave a message" situation.

On a side note, when you send tones over a cellular phone,
they don't actually run the DTMF tones through the vocoder.
Instead, they send meta-information "5 key pressed" and
then "5 key released". This way, if your call fades for
a second (you drive through a tunnel), your long keypress
will not be broken into two short keypresses.

I imagine that Skype and VOIP services do not have this
same sort of out-of-band signaling. So I bet they have
to encode the tones (which do not encode very well) and
send them as normal audio.

Interesting problem. I'm looking forward to learning
more about Gizmo and other VOIP goodies. Perhaps Kevin
or one of our other VOIP-masters would like to put
together a presentation for a TriLUG meeting!


This type of signalling is generally referred to as simply 'out of band' signaling, or sometimes more specifically 'out of band dtmf'. Most of the VOIP protocols, ala SIP, IAX, etc support out of band DTMF, which is particularly important for the low bitrate codecs such as g.729, ilbc, etc which can theoretically make dtmf detection at the other end wonky, because the dtmf tones are being mangled by the codec. The usual practice is to support DTMF detection and encoding as close to the PSTN as possible, and then pass that data along out of band when using VOIP. So consider these three secnearios.

I call from my Asterisk phone system at home to Cingular, to check my voicemail. My Cisco SIP phone sends out of band DTMF to Asterisk along side the G.711 audio. Asterisk sends out of band DTMF along side the g.729 audio to Broadvoice, who encodes the DTMF and sends it over the PSTN to Cingular.

Someone calls me from Bell South at my Asterisk phone system at home. They send DTMF tones from their phone to Bellsouth, who sends the audio over the PSTN to Broadvoice, who grabs the audio, compresses it with g.729 and sends it to my Asterisk server. My Asterisk server then has to decode the dtmf, in order for you to navigate the menu system to reach an extension. This is suboptimal because the audio has been encoded with g.729, but in practice is 100% reliable. DTMF is pretty well suited to computer recognition, and people have been doing it for many years so it's a very well-solved problem. In a perfect world, Broadvoice would decode the dtmf streams and send them out of band, in practice I don't know of a provider that does this.

I call someone else in TriLUG directly from my Asterisk server, to their Asterisk server, over an IAX tunnel. In the likely case, my phone transmits DTMF out of band, and both Asterisk servers continue it out of band all the way to the remote phone, which then (maybe) generates DTMF tones to play out the handset. Perfection at it's finest, as the remote generation isn't impeded by what ever codecs or latency problems might exist in the middle, and you end up with a perfect locally-generated dtmf tone at the remote end.

Hopefully this short lesson in out-of-band signaling will be useful to someone, some day. :)
Aaron S. Joyner
--
TriLUG mailing list        : http://www.trilug.org/mailman/listinfo/trilug
TriLUG Organizational FAQ  : http://trilug.org/faq/
TriLUG Member Services FAQ : http://members.trilug.org/services_faq/

Reply via email to