[Asterisk-Dev] proposal for channel driver
Alastair Maw
al.maw at mxtelecom.com
Fri Jul 2 03:43:37 MST 2004
On 02/07/04 04:01, mark spowage wrote:
> how about some discussion on a "model" channel driver , a model "protocol".
>
> a. nat friendly as the world is full of nat's these days
IAX2 is about as NAT-friendly as it gets (uses a single UDP port).
The only way to significantly improve NAT traversal is to use a Skype-like
system where there is a third-party external non-NAT host that helps two
NATed clients communicate with each other.
> b. easy to code, use the kiss principle
I've written a Java IAX2 stack - it's not all that hard (certainly much
easier than implementing H.323, probably comparable or slightly simpler
than SIP). There are some broken things, like the way the CODEC byte is
specified (why isn't it just the power of two specified in frame.h, rather
than being the number bit-shifted for the first seven bits, then having a
flag on the most-significant bit after that, and becoming the power of two
- originally allowing for only eight CODECs when you have a full byte to
play with is so obviously braindead :-) ).
> c. provide for the client server model (iax does that)
I don't know what you mean by this in relation to a VoIP protocol...
everything is just a peer, unless you're a switch.
> d. add on a client to client peer to peer voice streams
IAX2 already does this via transfers. If you want a protocol that has
signalling separate from voice traffic, use SIP/RTP.
> e. add on aes for security ?
This could be added to IAX2. However, it will add significant latency if
you wish to be able to cope with dropped packets vaguely elegantly. AES is
a stream cipher. If you miss a chunk, it will invalidate the rest of the
decrypt. Of course, you can encrypt each packet individually (not the
audio stream itself) but that would seriously weaken the encryption. This
is relative - it'd probably good enough anyway. :)
> one server could then manage a farm of fxs,fxo,etc boxes
What's an "fxo box"? One can already tie together multiple Asterisk
servers. If you want to plug in large volumes of fxo/fxs gear you should
get a channel bank and interface T1/E1 to it.
> f. add on server to server so box on server a can reach box on server b
> via peer to peer audio if possible.
- http://www.voip-info.org/tiki-index.php?page=Asterisk+TDMoE
> a php scripted system would allow easy configuration? well some hook for
> vertical scripting
Scripting for what? Do you mean having a web interface to configure
Asterisk? (There is work underway on this, please search the list archives
and contribute if you have the time.)
If you mean writing IVR scripts in PHP, this is already possible:
- http://apollo.bcwireless.net/~matthewa/phpagi/
- http://www.voip-info.org/tiki-index.php?page=Asterisk%20AGI%20php
> iax is fixated on routing voice+commands to the asterisk server , not
> allowing peer to peer voice channels right ?
You can do a transfer to hand off the call to the two clients. Asterisk
will try to do this by default. This isn't appropriate in many cases,
though, where you want signalling info to go through your PBX, but audio
to go peer-to-peer (for call billing or whatever). IAX doesn't allow this
separation (you have to use something like H.323 or SIP signalling with
RTP endpoints).
Regards,
Alastair
--
Alastair Maw
Systems Analyst
Tel: +44 (0) 845 666 7778
http://www.mxtelecom.com
More information about the asterisk-dev
mailing list