docs: CallEvent[] makeRandomEvent() {
          long callId = ++lastCallIdUsed;
  
          // get agentid
          Integer agentId = agentsAvailable.poll();
          if (agentId == null) {
              return null;
          }
  
          // get phone number
          Long phoneNo = phoneNumbersAvailable.poll();
          assert(phoneNo != null);
  
          // voltdb timestamp type uses micros from epoch
          Date startTS = new Date(currentSystemMilliTimestamp);
  
          long durationms = -1;
          long meancalldurationms = config.meancalldurationseconds * 1000;
          long maxcalldurationms = config.maxcalldurationseconds * 1000;
          double stddev = meancalldurationms / 2.0;
  
          // repeat until in the range (0..maxcalldurationms]
          while ((durationms <= 0) || (durationms > maxcalldurationms)) {
              durationms = (long) (rand.nextGaussian() * stddev) + meancalldurationms;
          }
          Date endTS = new Date(startTS.getTime() + durationms);
  
          CallEvent[] event = new CallEvent[2];
          event[0] = new CallEvent(callId, agentId, phoneNo, startTS, null);
          event[1] = new CallEvent(callId, agentId, phoneNo, null, endTS);
  
          // some debugging code
          //System.out.println("Creating event with range:");
          //System.out.println(new Date(startTS.getTime() / 1000));
          //System.out.println(new Date(endTS.getTime() / 1000));
  
          return event;
      }