Hi Frank,
regarding virtual queues and endless loops - I guess it's possible, as the whole routing decision process is repeated again after RTA. The whole routing engine has been redesigned in GnuGk 2.2 to avoid such situations.
Registration search order:
1. First, an exact alias match is tried. All endpoints are checked for
a matching alias in the order they are present in the registration table.
2. If no exact match is found, then a prefix match is tried, with the longest
matching prefix rule applied.
The endpoints in the registration table are in an arbitrary order. They are just appended to the table as they get registered.
----- Original Message ----- From: "Frank Fischer" <frank.fischer@xxxxxxxxxxxxxxxx>
Sent: Thursday, October 21, 2004 12:01 PM
Hi Michal
Thanks a lot for your answer. It gives me a quite clear picture of the routing process. But still there are some questions open. Please see my inline comments in your answer below:
Thanks a lot for your help. Regards Frank
In short: 1. RasSrv::RewriteE164 2. Authentication (may also perform rewrite or route the call to a specific alias or IP address, as in case of RADIUS, for example). 3. Check if the ARQ (or Setup) message specifies destination IP address explicitly - if so, use it and go to the point 8. 4. Check if the first destination alias matches a virtual queue. Issue a RouteRequest command and wait for RTA, after RTA go to the point 1 again.
[Frank] When jumping back to point 1 after a RTA this could, under certain circumstances, generate a potentially endless loop. Imagine the Virtual Queue prefix is [0-9] and the RTA command issues a numeric alias, then we would have a loop over point 1 to point 4, right? Is the Gatekeeper aware of such loops and does it break it?
5. Try to find a destination endpoint by an alias or a prefix. If found, go to the point 8.
[Frank] - Do i get it right, that destination endpoint by alias refers to the gatekeeper's list of registred endpoints and prefix refers to GwPrefixes? - Is there any particalur order in which this lookup is done? I.e. first a lookup by the list of registered endpoints and if found none matching a lookup by the list of GWPrefixes? - And is there any particular lookup order within the list of registered endpoints and GWPrefixes (are they sorted or just read in the order of their registration or the order in the configuration file)?
6. If ParseEmailAliases is turned on, try to check if any alias is in a name@dns form. If a match is found, go to the point 8. 7. If the call is from a parent gatekeeper, perform reverse [Endpoint::RewriteE164] rewrite and try to find an endpoint by an alias or a prefix. 8. If no match is found so far, send ARQ to a parent gatekeeper (if it exists) and go to the point 10. 9. If no match is found so far, send LRQ to gatekeeper neighbors and go to the point 10. 10. That's all.
For unregistered calls (no ARQ, only Setup received), the sequencse is similar, except that no parent and neighbor gatekeepers are queried. Also, virtual queues are not used in this case.
------------------------------------------------------- This SF.net email is sponsored by: IT Product Guide on ITManagersJournal Use IT products in your business? Tell us what you think of them. Give us Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out more http://productguide.itmanagersjournal.com/guidepromo.tmpl
_______________________________________________________
List: Openh323gk-users@xxxxxxxxxxxxxxxxxxxxx Archive: http://sourceforge.net/mailarchive/forum.php?forum_id=8549 Homepage: http://www.gnugk.org/