[asterisk-dev] unexpected behavior between chan_sip and chan_iax2 configuration files

Tilghman Lesher tilghman at meg.abyt.es
Sat Sep 3 16:47:42 CDT 2011


On Saturday, September 03, 2011 12:58:57 PM Paul Belanger wrote:
> Consider the following two configuration files:
> 
> ---
> ; sip.conf
> [general]
> udpbindaddr = 127.0.0.1:5060
> #include "sip.general.conf.inc"
> 
> ---
> ; sip.general.conf.inc
> udpbindaddr = 192.168.1.195:5060
> 
> ---
> ; iax.conf
> [general]
> bindaddr = 127.0.0.1
> #include "iax.general.conf.inc"
> 
> ---
> ; iax.general.conf.inc
> bindaddr = 192.168.1.195
> 
> I would expect both to have the same behavior, which chan_sip.c will
> bind to 192.168.1.195.  This is because, as I understand, chan_sip
> can actually only bind to one interface (due to how it is written).
> 
> However with chan_iax2, I am seeing something different.  It not only
> binds to 192.168.1.195 but it also binds to 127.0.0.1.  It seem with
> the bindaddr setting for chan_iax2, it does not override the
> previous setting like chan_sip.c.
> 
> I took a look into chan_iax2 and can see why, as the configuration
> setting is read, asterisk binds right away. Where chan_sip, binds
> after all the configuration file settings have been read.
> 
> My question is, does chan_iax2 actually support binding to multiple
> interfaces? Making it different then chan_sip or should the binding
> happen like chan_sip, after parsing the complete configuration file?

It does, but not in the way that you might expect.  It only supports
setting a particular peer's sourceaddress in the peer definition to one
of the alternate bind addresses.  If a packet is received on the "wrong"
socket, the connection will likely not work correctly, because IAX
depends upon receiving a response from the same IP as to which it sent
the original packet.

-- 
Tilghman



More information about the asterisk-dev mailing list