ham44865 wrote:

I switched from one dstar repeater to talk on another dstar repeater.
Looking at my dstar repeater log,
I started talking at: 072309 at 23:20:36

The ICOM trust server sent the dstar radio user RENEWAL 2 minutes later
to all the other dstar repeaters at 072309 at 23:22:17

That is about 2 minutes.
What happens during those 2 minutes when another ham wants to
contact me? Audio packets are going to the wrong(old) dstar repeater ?

Scott















This is a problem with the current gateway/trust server implementation and a fallout of the radios must be registered paradigm. I think a much simpler algorithm would suffice (Psuedocode follows).

   * for each (header)
         o if (local.hashtable[MYCALL] != nulll) then
               + if (localhashtable[MYCALL].gateway != this.gateway) then
                     # send trustserver[MYCALL].gateway = this.gateway
               + else
                     # if (localhashtable[MYCALL].timestamp +
timeOutInSeconds >= time.now()) then * send trustserver[MYCALL].gateway =
                             this.gateway
                           * localhashtable[MYCALL].timestamp = time.now()
         o else
               + localhashtable[MYCALL].gateway = this.gateway
               + localhashtable[MYCALL].timestamp = time.now()
               + send trustserver[MYCALL].gateway = this.gateway

       * if(localhashtable[URCALL] != null) then
             o if (localhashtable[URCALL].gateway != this.gateway then
                   + fork()
                         # PARENT :
                               * send stream to
                                 localhashtable[URCALL].gateway
                         # CHILD:
                               * request trustserver[URCALL].gateway
                               * if (trustserver[URCALL].gateway !=
                                 localhashtable[URCALL].gateway) then
                                     o localhashtable[URCALL] =
                                       trustserver[URCALL]
                                     o send stream to
                                       localhashtable[URCALL]
       * else
             o request trustserver[URCALL].gateway
             o if (trustserver[URCALL].gateway != null].gateway) then
                   + localhashtable[URCALL] = trustserver[URCALL]
                   + send stream to localhashtable[URCALL].gateway
             o else
                   + send localhost[MYCALL].message = "URCALL Unknown"

   Voila self updating tables locally with central registry in "trust
   server" - simple and elegant.

John D. Hays
Amateur Radio Station K7VE <http://k7ve.org>
PO Box 1223
Edmonds, WA 98020-1223
VOIP/SIP: [email protected] <sip:[email protected]>
Email: [email protected] <mailto:[email protected]>

Reply via email to