asterisk/pbx
Matthew Jordan 34d3cbc7ac Fix DUNDi message routing bug when neighboring peer is unreachable
Consider a scenario where DUNDi peer PBX1 has two peers that are its neighbors,
PBX2 and PBX3, and where PBX2 and PBX3 are also neighbors.  If the connection
is temporarily broken between PBX1 and PBX3, PBX1 should not include PBX3 in
the list of peers it sends to PBX2 in a DPDISCOVER message, as it cannot send
messages to PBX3.  If it does, PBX2 will assume that PBX3 already received the
message and fail to forward the message on to PBX3 itself.  This patch fixes
this by only including peers in a DPDISCOVER message that are reachable by the
sending node.  This includes all peers with an empty address
(00:00:00:00:00:00) and that are have been reached by a qualify message.

This patch also prevents attempting to qualify a dynamic peer with an empty
address until that peer registers.

The patch uploaded by Peter was modified slightly for this commit.

(closes issue ASTERISK-19309)
Reported by: Peter Racz
patches:
  dundi_routing.patch uploaded by Peter Racz (license 6290)

........

Merged revisions 372417 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........

Merged revisions 372418 from http://svn.asterisk.org/svn/asterisk/branches/10
........

Merged revisions 372419 from http://svn.asterisk.org/svn/asterisk/branches/11


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@372420 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-09-06 02:52:37 +00:00
..
ael/ael-test Merged revisions 299449 via svnmerge from 2010-12-22 20:10:34 +00:00
Makefile Change per-file debug and verbose levels to be per-module, the way 2010-03-23 14:22:27 +00:00
dundi-parser.c Multiple revisions 369001-369002 2012-06-15 16:20:16 +00:00
dundi-parser.h Remove built-in AES code and use optional_api instead 2010-07-21 19:11:32 +00:00
pbx_ael.c Clean up and ensure proper usage of alloca() 2012-07-31 20:21:43 +00:00
pbx_config.c Fix misuses of asprintf throughout the code. 2012-08-21 21:01:11 +00:00
pbx_dundi.c Fix DUNDi message routing bug when neighboring peer is unreachable 2012-09-06 02:52:37 +00:00
pbx_loopback.c Replace GNU old-style field designator extensions to fix clang warnings 2012-04-04 18:08:28 +00:00
pbx_lua.c Clean up doxygen warnings 2012-08-30 14:23:28 +00:00
pbx_realtime.c Clean up and ensure proper usage of alloca() 2012-07-31 20:21:43 +00:00
pbx_spool.c Allow support for early media on AMI originates and call files. 2012-08-08 22:39:40 +00:00