[Asterisk-Dev] I need help to make a simple iax switch/proxy

Derek Smithies derek at indranet.co.nz
Thu Sep 8 14:45:33 MST 2005


Hi,
 Stave, thanks for your comments.

Now, having written a C++ cross platform Opal based IAX2 handler, I feel I 
can provide some comment.

When I wrote the IAX2 handler for OPAL, I carefully examined the documents 
from Kenny Shumard <kshumard at gmail.com> and reviewed the iax2 source in *.

In my opinion, the IAX2 protocol is great for many places, in particular,
getting throough firewalls and trunking.

SIP has many advantages also.- it has a richer control language which 
gives the ability to do many interesting/useful things.

However, once the call is set up, and audio is flowing - why should there 
be a quality difference?
In both cases, there  are audio packets flowing between the endpoints.
In both cases, the audio is compressed with the same codec.

In reality, the difference in the audio quality is caused by things like
a) the performance of the  jitter buffer (how does it cope with 
   dropped/delayed/out of order packets)

b) the quality of the implementation of the protocol.
   If the code is nicely designed with no bottlenecks/thread starvation 
    etc, the code performance will not hinder the audio quality.


Now you wrote:
> Why does IAX suck? Because it does. Dont question my authority

I am sorry, this is not helpful. If we can find the cause of the 
"suckiness", we can fix the suckiness. Comments such as yours above do not 
help.

  Do you agree with my implied comment above, that IAX2 on asterisk gives 
poorer performance than SIP because of implementation issues?

  Do you agree with my comment above that there is nothing in the IAX2 
protocol that will give rise to poor audio quality?


Derek 

On Thu, 8 Sep 2005, Steve wrote:

> But IAX Sucks and SIP Works wondefully a bunch of people recently figured
> out!
> 
> Why does IAX suck? Because it does. Dont question my authority
> 
> Why does SIP Work better? Because everyone says it does. You can quote me on
> that :)
> 
> Have a wondeful morning.
> -Steve
> 
> P.S. Ever slap a BKW with a RaInBoW Trout!
> 
> ----- Original Message ----- 
> From: "Goldenear" <goldenear at free.fr>
> To: "Asterisk Developers Mailing List" <asterisk-dev at lists.digium.com>
> Sent: Tuesday, September 06, 2005 3:50 AM
> Subject: [Asterisk-Dev] I need help to make a simple iax switch/proxy
> 
> 
> > Hi,
> >
> > I would like to make a small iax switch/proxy (I don't know which term
> > is better). The need is very simple: a proxy small enought to run on a
> > linux based wifi router (wrt54g) and/or simple enough to support many
> > simultaneous peers. It doens't need all the bells and whistles of
> > asterisk (many protocol support, voicemail, codec translation, etc ...).
> >
> > It simply needs to:
> > - authenticate users (and keep a registered peers "database"): This is
> > similar to what asterisk does with iax.conf (or realtime database),
> > except that a phonenumber/extension would be directly given to a user in
> > the iax.conf like file. As it's a simple proxy, it doesn't need complex
> > call routing.
> > - connect users: each registered user could call an other one either by
> > its given phonenumber/extension or by its user name. As the proxy
> > doesn't support codec translation, all peers must have a least a common
> > codec. If the proxy can't make a native codec bridging between the
> > peers, the call is aborded. Also the proxy should always try to do
> > native transfer (with a option to drop the call if it's not possible).
> > When peers are "connected" and speaking, the proxy should (or must) not
> > stay in the path.
> > - maintain an online users directory (with the possiblity to publish a
> > web page), a little bit like the h323 ils system.
> > - register itself to an asterisk server (or a other iax switch/proxy):
> > This would be useful to define a default gateway if an extension doesn't
> > exist localy.
> > - make coffee, but only when all other features are working ;)
> >
> > I hope you understand what I would like to do. Alas, I'm not a
> > programmer. I only have a few C basis (php is the only language I really
> > know). That's why I really need help. I guess I'm not the only one
> > interrested in an iax2 softswith/proxy. I think such a project could be
> > useful in many cases (e.g. be used as an asterisk frontend for iax
> > peers, like SER can be for sip peers). Also, I guess that, using libiax,
> > it should not be too complicated / time consuming to do for a real
> > programmer :)
> > So I hope somebody will be interrested in this project and can help me.
> > I can even offer $100 as a bounty for it :)
> >
> > Any comment / suggestion is welcome
> >
> > Thanks.
> >
> > regards,
> >
> > Nicolas
> > _______________________________________________
> > Asterisk-Dev mailing list
> > Asterisk-Dev at lists.digium.com
> > http://lists.digium.com/mailman/listinfo/asterisk-dev
> > To UNSUBSCRIBE or update options visit:
> >    http://lists.digium.com/mailman/listinfo/asterisk-dev
> 
> _______________________________________________
> Asterisk-Dev mailing list
> Asterisk-Dev at lists.digium.com
> http://lists.digium.com/mailman/listinfo/asterisk-dev
> To UNSUBSCRIBE or update options visit:
>    http://lists.digium.com/mailman/listinfo/asterisk-dev
> 

-- 
Derek Smithies Ph.D.                 Any fool can write code that 
IndraNet Technologies Ltd.                a computer can understand.        
Email: derek at indranet.co.nz         Good programmers write code 
ph +64 3 365 6485                          that humans can understand.
Web: http://www.indranet-technologies.com/            Martin Fowler




More information about the asterisk-dev mailing list