Summary: | ASTERISK-12835: Asterisk won't register if SIP-port at peer differ than local (5060) | ||
Reporter: | performer (performer) | Labels: | |
Date Opened: | 2008-10-07 00:37:31 | Date Closed: | 2008-12-10 09:22:40.000-0600 |
Priority: | Major | Regression? | No |
Status: | Closed/Complete | Components: | Channels/chan_sip/Registration |
Versions: | Frequency of Occurrence | ||
Related Issues: | |||
Environment: | Attachments: | ||
Description: | The problem happens because Asterisk fills 'Contact' header in SIP-message using remote port number instead local port number. Example: REGISTER sip:sip.asterisk.xxx.com:55060 SIP/2.0 Via: SIP/2.0/UDP 83.167.107.46:0;branch=z9hG4bK47cfc028 Max-Forwards: 70 From: <sip:12345678@sip.asterisk.xxx.com>;tag=as5f389822 To: <sip:12345678@sip.asterisk.xxx.com> Call-ID: 099f43ef434287c457a3d793535e9df7@yyy.ru CSeq: 3084 REGISTER User-Agent: SweetHome Agent Expires: 120 Contact: <sip:s@83.137.137.146:55060> Event: registration Content-Length: 0 My solution: diff chan_sip.c.bak chan_sip.c 2628c2628 < p->socket.port = htons(r->portno); --- > // p->socket.port = htons(r->portno); | ||
Comments: | By: performer (performer) 2008-10-07 00:46:18 Sorry, reproducibility is always. By: Digium Subversion (svnbot) 2008-12-10 09:22:39.000-0600 Repository: asterisk Revision: 162619 U trunk/channels/chan_sip.c ------------------------------------------------------------------------ r162619 | file | 2008-12-10 09:22:38 -0600 (Wed, 10 Dec 2008) | 4 lines When transmitting a register set the socket port to the local one for the transport being used, not the port for the remote server. (closes issue ASTERISK-12835) Reported by: performer ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=162619 |