Theory - A call's Passage Plan

For each call pick the source, destination and call type. It will have a route through the network. Why not write a passage plan for this.

The source and destinations can be the phone dialling a particular phone number or maybe the phone's exchange and the terminating exchange.

We may be simulating all the phones in a country, from many exchanges.

A Passage Plan:-


  A phone at exchange A makes a call.

  Exchange A sends call on to Exchange B

  Exchange B goes to a central database to find termination exchange.

  Exchange B sends call onto exchange C

  Ecxhange C rings Phone

In the diagram below, the traffic generator clocks all the sources:

Traffic is concentrated to towards the database.

The traffic is agregated and concentrated onto 'Buss Bars'.

These are important as the bus Bar is a place to measure traffic levels.

They are also a place to apply load controls.

The buss bar in the diagram could be sub divided, as wished. A bus bar for destination number could be combined with load control.

Theory - Route choices, routings and locking, blocking and load control.

In the diagram below, there is a route with a number of choices from A to D:


Consider Node A in more detail:

Routing A1 goes to Node B, and Routing A2 goes to Node C.

There are two principle ways to search the routing choices.


  1) Work down the list and try Choice A1.
  1a)  if the block / lock A1 allows, the message is passed onto routing A1.
  1b) Destination A1 may reject the message, and returns a reject message.

  if A1 rejects then try choice A2:
  2) Work down the list and try Choice A2.
  2a)  if the block / lock A2 allows, the message is passed onto routing A2.
  2b) Destination A1 may reject the message, and returns a reject message.

  3) If no choice is available, return reject message to caller.

A way of representing this is as a recursive function.



  function tryRouting( location ){ 
    // returns true if final destination reached, false if dead end found
    var routingChoiceList = getRoutingChoices( location )
    for( routing in routingChoiceList ){

      destination = getDestination( location, routing ) 

      if ( tryRouting( destination ) ) {
        // destination reached - return
        return( true )
      } 
      // dead end found - try next routing     

    }
    // No available routing found - return false.    
    return( false )
  }
    

This is a recursive function. If combined with remote procedural calls, then this can be used to model the whole network. Using recursive remote procedural calls, the routing test can traverse many exchanges in many geographically destinct places.

An example of this is Automatic Alternative Routing(AAR)/ Automatic Rerouting (ARR) to Announcement Resource Node test tool

The switch is very important. It is located within a node, and prevents the remote procedural call.

It also represents many different functional entities.

It could represent:

To summarise. There are so many examples of this recursive / remote procedural call model in telecoms.