[asterisk-bugs] [Asterisk 0012761]: chan_sip: build_contact() does not put alternate port setting in Contact header

noreply at bugs.digium.com noreply at bugs.digium.com
Fri May 30 03:09:44 CDT 2008


A NOTE has been added to this issue. 
====================================================================== 
http://bugs.digium.com/view.php?id=12761 
====================================================================== 
Reported By:                asbestoshead
Assigned To:                
====================================================================== 
Project:                    Asterisk
Issue ID:                   12761
Category:                   Channels/chan_sip/General
Reproducibility:            always
Severity:                   minor
Priority:                   normal
Status:                     new
Asterisk Version:           SVN 
SVN Branch (only for SVN checkouts, not tarball releases):  trunk 
SVN Revision (number only!): 118255 
Disclaimer on File?:        N/A 
Request Review:              
====================================================================== 
Date Submitted:             05-30-2008 03:04 CDT
Last Modified:              05-30-2008 03:09 CDT
====================================================================== 
Summary:                    chan_sip: build_contact() does not put alternate
port setting in Contact header
Description: 
build_contact() looks at the *other* end's port to decide whether there's a
non-standard port in use. If my end has bindport=5062 but the peer has
port=5060, when I send an invite to the peer, my Contact header doesn't
have ":5062".

initreqprep() has the same problem when setting the From: header.

chan_sip in Asterisk trunk and 1.6.0-beta8 (but not 1.4.19) have this
problem.

I have a trivial patch for this against Moy's mfcr2 branch off trunk, but
I can't find the link to sign the contributor's agreement. The patch also
applies to 1.6.0beta8, although I haven't tested it there...
====================================================================== 

---------------------------------------------------------------------- 
 asbestoshead - 05-30-08 03:09  
---------------------------------------------------------------------- 
The patch is really trivial. I can't find the license agreement so I'll
just describe it. In build_contact(), instead of using
ntohs(p->socket.port), use ntohs(p->ourip.sin_port).

Same in initreqprep().

sip_standard_port() needs to be passed our local port as a parameter.
p->socket.port is supposed to be the port the other end uses, in fact I'm
pretty sure it never even gets set. 

Issue History 
Date Modified   Username       Field                    Change               
====================================================================== 
05-30-08 03:09  asbestoshead   Note Added: 0087534                          
======================================================================




More information about the asterisk-bugs mailing list