public String generateCallIdentifier(String address){
  long random=rand.nextLong();
  int hash=(int)Math.abs(random % digesterPoolsSize);
  MessageDigest md=digesterPool[hash];
synchronized (md) {
    String date=Long.toString(System.nanoTime() + System.currentTimeMillis() + callIDCounter+++ random);
    byte cid[]=md.digest(date.getBytes());
    String cidString=Utils.toHexString(cid);
    return cidString + "@" + address;
  }
}

public String generateCallIdentifier ( String address ) { long random = rand . nextLong ( ) ; int hash = ( int ) Math . abs ( random % digesterPoolsSize ) ; MessageDigest md = digesterPool [ hash ] ; synchronized ( md ) { String date = Long . toString ( System . nanoTime ( ) + System . currentTimeMillis ( ) + callIDCounter ++ + random ) ; byte cid [ ] = md . digest ( date . getBytes ( ) ) ; String cidString = Utils . toHexString ( cid ) ; return cidString + "@" + address ; } }
generate a call identifier . this is useful when we want to generate a call identifier in advance of generating a message .
