Summary: | ASTERISK-20805: SIP Notify message has incorrect IP address in FROM field | ||||
Reporter: | Bryan Hunt (brhunt) | Labels: | |||
Date Opened: | 2012-12-15 10:02:57.000-0600 | Date Closed: | 2013-01-04 15:21:45.000-0600 | ||
Priority: | Major | Regression? | Yes | ||
Status: | Closed/Complete | Components: | Channels/chan_sip/General | ||
Versions: | 1.8.11.1 11.1.0 | Frequency of Occurrence | Constant | ||
Related Issues: |
| ||||
Environment: | Centos 6.2 - 32bit PIAF Purple Freepbx 2.10.1.2 EPM Polycom IP331 | Attachments: | ( 0) asterisk-20805-notify-ip_v2.diff ( 1) full.txt | ||
Description: | When sending a SIP Notify 'check-sync' to our IP331 phones, the FROM portion of the Notify message does not contain the IPv4 address of the Asterisk server's interface (to which the phone is registered). The FROM instead contains something that looks like an IPV6 localhost address:
From: "Unknown" <sip:Unknown@[::1]>;tag=as567b56ba The phones will not reboot, as the from message is not giving the server that the phone is registered to. This can be worked-around by putting in the interface's IPV4 address in the bindaddress field. The FROM then looks like this: From: "Unknown" <sip:Unknown@172.16.99.218>;tag=as60768d2a This message does cause the phone to be rebooted. Unfortunately, setting the bindaddress will break any environment where SIP is used on two or more NIC interfaces. I believe that the Asterisk server should determine the IP address of the egress NIC interface (or the IP address that the phone is registered to) and place that in the FROM field in the SIP Notify message. http://forums.digium.com/viewtopic.php?f=1&t=85080 http://lists.digium.com/pipermail/asterisk-dev/2011-July/050271.html | ||||
Comments: | By: Bryan Hunt (brhunt) 2012-12-15 10:06:43.948-0600 Full log file with debug showing both unsuccessful (line 780) and successful (line 14404) SIP Notify messages. By: Michael L. Young (elguero) 2012-12-15 22:33:57.698-0600 Give this patch a try and please report back if it solves your issue. I am pretty sure that it should take care of this since I was able to reproduce this issue and the patch worked for me. By: Bryan Hunt (brhunt) 2012-12-16 08:38:14.991-0600 Michael, Thanks for the reply, I will try that patch. Are there instructions on the site on the procedure for applying patches like this? Also, assuming this works, will this code be incorporated into the core Asterisk build at some time? Or would I need to reapply every time we go to a newer version of asterisk? Thanks. Bryan Hunt By: Bryan Hunt (brhunt) 2012-12-16 09:33:34.381-0600 Michael, Do these look like the proper steps to apply this patch? cd /usr/src/asterisk w-g-e-t https://issues.asterisk.org/jira/secure/attachment/45744/asterisk-20805-notify-ip.diff patch -p0 < asterisk-20805-notify-ip.diff amportal stop make clean ./configure make make install amportal start Thanks. Bryan Hunt By: Bryan Hunt (brhunt) 2012-12-16 12:33:35.420-0600 Michael, I followed those steps and all seemed to go well. The patch seems to have resolved the Notify issue. I need to install on another system (dual homed) to make sure. Going back to an earlier question then, will this patch be incorporated into Asterisk baseline code? Thanks for all of your help on this. Bryan Hunt By: Michael L. Young (elguero) 2012-12-16 13:57:39.996-0600 Bryan, Glad to hear that it is working so far. Once you test on the dual homed system and confirm that it is working, I will put it through the process to get it into the code base. Thanks By: Tim Irvin (tirvin) 2012-12-29 15:15:33.097-0600 A workaround for this issue is to deactivate IPv6 on the system, notice the From address in the SIP NOTIFY header is Unknown@[::1] (IPV6 localhost address (a bug no doubt), but if IPv6 is deactivated then this address can't be used and asterisk goes back to the correct method of using the IPv4 address of the egress interface. To deactivate IPv6 add the following lines to /etc/sysctl.conf and reboot: net.ipv6.conf.default.disable_ipv6=1 net.ipv6.conf.all.disable_ipv6=1 By: Bryan Hunt (brhunt) 2012-12-29 15:37:55.433-0600 Michael and Tim, I installed the asterisk-20805-notify-ip.diff patch into a dual NIC environment today and it worked perfectly. SIP signalling worked correctly on both interfaces. From my perspective it is ready to be added to the code base. Let me know if you need anything more from me. How will I/we know that the code base has been updated? Thanks. Bryan Hunt By: Michael L. Young (elguero) 2012-12-29 20:51:45.889-0600 Bryan, I will submit this for code review. When the issue has been fixed by committing the patch to svn, this issue will be closed and you should receive an email. Also, you will notice a tab above that says "Subversion". That will show when the patch is committed along with the revision number. By: Bryan Hunt (brhunt) 2013-01-03 19:41:27.829-0600 Great Michael, thanks. By: Michael L. Young (elguero) 2013-01-04 15:11:28.314-0600 Uploading patch that will be committed to SVN. |