[Home]

Summary:ASTERISK-12836: Asterisk fills "via" header not correctly.
Reporter:performer (performer)Labels:
Date Opened:2008-10-07 00:42:48Date Closed:2008-12-16 09:44:25.000-0600
Priority:MajorRegression?No
Status:Closed/CompleteComponents:Channels/chan_sip/General
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:
Description:Some provider couldn't send responses to Asterisk because information in "via" header has port "0".

My solution:
diff chan_sip.c.bak chan_sip.c
2628c2628
<                       ntohs(p->ourip.sin_port), p->branch, rport);
---
>                       ntohs(p->socket.port), p->branch, rport);
Comments:By: Joshua C. Colp (jcolp) 2008-12-15 14:03:01.000-0600

Can you please attach your configuration that causes this minus passwords? Thanks.

By: performer (performer) 2008-12-15 22:57:33.000-0600

[general]
context=incoming
realm=mydomain.ru
bindport=5060
bindaddr=0.0.0.0
srvlookup=yes
domain=mydomain.ru

register => AAAA:AAAA@sipnet.ru:5060/1234567
register => BBBB:BBBB@sip.asterisk.somedomain1.com:55060
register => CCCC:CCCC@sip.asterisk.somedomain1.com:55060
register => DDDD:DDDD@proxy01.sipphone.com:5060
register => EEEE:EEEE@sip.voiparound.com:5060
register => FFFF:FFFF@somedomain2.dynalias.com:5060

externhost=sip.mydomain.ru
localnet=192.168.4.0/255.255.255.0
localnet=192.168.5.0/255.255.255.0

nat=route

canreinvite=no

domain=mydomain.ru,internal
domain=192.168.4.7
fromdomain=mydomain.ru

[authentication]

auth = FFFF:FFFF@FFFF ; somedomain2 realm

[BBBB]
type=friend
context=incoming1
username=BBBB
secret=BBBB
fromuser=BBBB
host=sip.asterisk.somedomain1.com
insecure=port,invite
outboundproxy=sip.asterisk.somedomain1.com
port=55060
nat=route
language=ru
disallow=all
allow=alaw

[CCCC]
type=friend
context=incoming1
username=CCCC
secret=CCCC
fromuser=CCCC
host=sip.asterisk.somedomain1.com
insecure=port,invite
outboundproxy=sip.asterisk.somedomain1.com
port=55060
nat=route
language=ru
disallow=all
allow=alaw

[sipnet]
type=friend
username=AAAA
secret=AAAA
fromuser=AAAA
fromdomain=sipnet.ru
host=sipnet.ru
port=5060
outboundproxy=sipnet.ru
canreinvite=no
nat=route
insecure=port,invite
disallow=all
allow=alaw
allow=ulaw
allow=g723
allow=g729
;allow=gsm
context=incoming1
qualify=yes

[sipphone]
type=friend
username=DDDD
secret=DDDD
host=proxy01.sipphone.com
port=5060
outboundproxy=proxy01.sipphone.com
canreinvite=no
insecure=port,invite
disallow=all
allow=ulaw
allow=ilbc
allow=gsm
context=incoming1

[FFFF]
type=friend
username=FFFF
secret=FFFF
fromdomain=somedomain2.dynalias.com
host=somedomain2.dynalias.com
port=5060
outboundproxy=somedomain2.dynalias.com
canreinvite=no
nat=route
insecure=port,invite
context=incoming3
disallow=all
allow=alaw
allow=gsm

[freecall]
type=friend
username=EEEE
secret=EEEE
host=sip.voiparound.com
port=5060
outboundproxy=sip.voiparound.com
canreinvite=no
insecure=port,invite
disallow=all
allow=ulaw
allow=ilbc
allow=gsm
context=incoming1

[3000]
username=3000
type=friend
secret=123
host=dynamic
context=extended
insecure=port,invite

[3001]
username=3001
type=friend
secret=123
host=dynamic
context=extended
insecure=port,invite
language=ru
mailbox=3001

[3002]
callgroup=2
username=3002
type=friend
secret=123
host=dynamic
context=extended
insecure=port,invite
reinvite=no
disallow=all
allow=alaw
allow=ilbc
allow=gsm
language=ru
mailbox=3002

[3003]
username=3003
type=friend
secret=123
host=dynamic
context=extended
insecure=port,invite
reinvite=no
language=ru
mailbox=3003

[3004]
username=3004
type=friend
secret=123
host=dynamic
context=extended
insecure=port,invite
language=ru
mailbox=3004

[3005]
username=3005
type=friend
secret=123
host=dynamic
context=extended
insecure=port,invite
language=ru
mailbox=3004

[3007]
username=3007
type=friend
secret=123
host=dynamic
context=extended
insecure=port,invite
language=ru

[3008]
username=3008
type=friend
secret=123
host=dynamic
context=extended
insecure=port,invite
reinvite=no
disallow=all
allow=alaw
allow=ilbc
allow=gsm
language=ru
nat=yes
mailbox=3008
quality=yes

[3009]
username=3009
type=friend
secret=123
context=extended
mailbox=3402
language=ru
host=dynamic
context=extended
insecure=port,invite
reinvite=no
disallow=all
allow=g729
allow=ilbc
allow=gsm
language=ru
nat=yes
mailbox=3009

[3011]
username=3011
type=friend
secret=123
host=dynamic
context=extended
insecure=port,invite
language=ru

[3012]
username=3012
type=friend
secret=123
host=dynamic
context=extended
insecure=port,invite
language=ru

[3013]
username=3013
type=friend
secret=123
host=dynamic
context=extended
insecure=port,invite
language=ru

[3014]
username=3014
type=friend
secret=123
host=dynamic
context=extended
insecure=port,invite
language=ru

By: performer (performer) 2008-12-15 23:00:01.000-0600

Problem happens when other side uses Communigate Pro that looks to Via header when routing.

By: Digium Subversion (svnbot) 2008-12-16 09:44:24.000-0600

Repository: asterisk
Revision: 164659

U   trunk/channels/chan_sip.c

------------------------------------------------------------------------
r164659 | file | 2008-12-16 09:44:24 -0600 (Tue, 16 Dec 2008) | 4 lines

When using externhost make sure the port gets set to the bindaddr port if one was not specified in the externhost value itself.
(closes issue ASTERISK-12836)
Reported by: performer

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=164659