[Dundi] [RFC] Reliability of contact information

Kevin P. Fleming kpfleming at starnetworks.us
Wed Dec 8 21:51:59 CST 2004


(skip to the summary below, if you are in a hurry <G>)

Today we had an end-user complaint about dialing a particular number and 
getting no useful result; as it turns out, our system found a route to 
this number via DUNDi in the e164 context, and attempted to connect. 
Because of some misconfiguration (as yet unresolved) on the target 
server, the call would not complete. This is fine, we understand that 
the GPA does not require us to provide 100% service, nor is there any 
warranty for service failures.

However, I felt it would be useful to contact the provider in question, 
to inform them that their system was not properly accepting calls for 
routes they were publishing.

I then did a manual lookup for the TN in question, and obtained the EID 
of the publishing peer. A query on that EID got me their contact 
information... but it was invalid. The phone number published via DUNDi 
as their "contact number" did not reach them, it reached someone who had 
no idea who they were.

I would like to propose a small change to the DUNDi protocol and peering 
procedure: when a peer wants to join the network, they must put their 
contact information into their DUNDi server prior to requesting peerage. 
They would then issue a command to their server to compute an SHA-1 hash 
of their contact information, and provide that hash to the peer they are 
requesting peerage with. That peer would add it to the peer definition 
in their dundi.conf file (or equivalent for a non-Asterisk platform <G>).

Then, periodically, that peer's DUNDi server should request the contact 
information, recompute the hash, and compare. If the contact information 
has changed and the hash has not been updated, the peer who changed 
their information would be "cut off" from the network until the 
situation is resolved.

Finally, the dundi.conf file needs to support multiple hashes for a 
peer, so that when legitimate contact information changes are in the 
works, the peer can provide a new hash (along with the new information) 
in advance, to avoid any "magic cutover" moments.

This would allow peers who are processing peering agreements from new 
members to actually verify the contact information, and be assured that 
it will not change without notice and reasonable recourse if no notice 
is given.

-- SUMMARY--

Add a field type to a peer definition in dundi.conf: contacthash. The 
value would be an SHA-1 hash of the contact information provided by the 
peer. This field can appear multiple times in a peer definition, and if 
the peer's contact information matches _any_ provided hash, they are 
considered to be acceptable.

Periodically (possibly according to a time period set in the [globals] 
section of dundi.conf), all peer contacthash values should be verified. 
Any that do not verify would generate warnings to the Asterisk logs, and 
disable that peer's connectivity (including flushing any cached routes 
for that peer's EID).

Add a new CLI command "dundi contacthash", which computes the hash of 
this node's contact information and displays it.

Comments?


More information about the Dundi mailing list