# # Call Gap Simulation using Asychronous Elastic sampled Catch Up Call Generator - AESCUCG # # Use View source to see the JavaScript used. # Do a save of the source and edit the # parameters and run the page locally on your PC. # # You can edit the call rate, the number of SSP and the number of call gappers configured. # # In the telephony books, calls are said to be spaced by an interArrivalTime # # The interArrivalTime is often modelled based on a negative exponetial. # interArrivalTime = -log(1-rand( )) / CallsPerSecond # # The negative exponetial distribution has the properties that when a call starts does not depend on history. # # The CallsPerSecond is the mean call rate. # # A simple call generator can be built that makes a call and waits for the interArrivalTime, # # Most real time systems allow timer interupts. # # These can be either regular ticks or started for the wanted duration. # This AWK script models what happens if the interArrivalTime required is less that the # smallest timer tick. # # It is possible to model the simple call generator in non real time by looping the simple # call generator, and incrementing the simulatedTime by adding interArrivalTime to simulatedTime. # # This script combines the simulation and a constant time time method and uses a catch up while loop # to catch up the simulatedTime each timerTick. # # This script also models a Call Gapping loosely based on ITU INAP Call Gapping. # NOTE: However, instead of storing the gapInterval in each call gapper it is global # NOTE: CallGap Messages are not sent to the simulated , # call gapping is applied to all simulated ssp and numbers. # # Time is stored in a variable called simulatedTime and realTime # # simulatedTime is incremented by the interArrivalTimes once per simulated call # tickedTime is incremented by the timerticks once per timer tick or interupt # # # Every time the tickTimer ticks I would normally call a function called timerTickTimeSliceCode() # Every time a simulated call is required I call a function called nextCallOpportunityTimeSlice( simulatedTime ) # # # The Timer ticks are at a constant interval. This script uses a loop, and does not wait for real time. #