/** * Returns instance of Tinebase_Config * * @return Tinebase_Config */ public static function getInstance() { if (self::$_instance === NULL) { self::$_instance = new self(); } return self::$_instance; }
/** * normalize number * * @param $number * @return string */ public function resolveInternalNumber($number) { $number = preg_replace('/[^\\d\\+]/', '', $number); if (empty($number)) { return $number; } $config = Phone_Config::getInstance(); $localPrefix = $config->get(Phone_Config::LOCAL_PREFIX); // if the number does not start with the local prefix, its an internal number. prefix and return if (strpos($number, $localPrefix) !== 0) { //if the number is longer than 5 digits, its actually an international number with/out + *sight* if (strlen($number) > 5) { if ($number[0] !== '+') { $number = '+' . $number; } return $number; } else { return $config->get(Phone_Config::OWN_NUMBER_PREFIX) . $number; } } else { // cut local prefix $number = substr($number, strlen($localPrefix)); } // if its a local number, prefix area code and return if (preg_match($config->get(Phone_Config::LOCAL_CALL_REGEX), $number)) { return $config->get(Phone_Config::AREA_CODE) . $number; } return $number; }