/// <summary> /// Method to create an extension. Try to find a unique extension within 600 tries, if an extension number is not supplied /// </summary> /// <param name="pe"></param> /// <returns></returns> private bool createExtension(string extensionNumber, out PhoneExtension pe) { pe = null; bool created = false; int extNum; try { // If extension number was not supplied, find a free extension and use it if (extensionNumber == null) { Random rn = new Random(Environment.TickCount); for (int numTries = 0; numTries < 600 && created == false; numTries++) { extNum = rn.Next(100, 799); pe = new PhoneExtension("GatewayTestExtension_" + extNum, extNum.ToString()); if (!pe.ExistsOn(serverIP)) { pe.ToServer(serverIP, Utilities.UpdateType.ADD, Utilities.ErrorHandling.HANDLE); created = true; } } } else { // If extension number was supplied, use that. If that extension already exists, fail and return pe = new PhoneExtension("GatewayTextExtension_" + extensionNumber, extensionNumber); if (pe.ExistsOn(serverIP)) { Console.WriteLine("Error: Specified extension \"{0}\" already exists on the server.", extensionNumber); } else { pe.ToServer(serverIP, Utilities.UpdateType.ADD, Utilities.ErrorHandling.HANDLE); created = true; } } } catch (Exception e) { Console.WriteLine("Exception in CDSWrapper.createExtension: " + e.Message + "\nStack Trace: " + e.StackTrace); created = false; pe = null; } if (created == false) { pe = null; } return created; }