Re: Routing Engine process/algorithm

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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/

[Index of Archives]     [SIP]     [Open H.323]     [Gnu Gatekeeper]     [Asterisk PBX]     [ISDN Cause Codes]     [Yosemite News]

  Powered by Linux