• Модуль: voximplant
  • Путь к файлу: ~/bitrix/modules/voximplant/classes/general/vi_incoming.php
  • Класс: CVoxImplantIncoming
  • Вызов: CVoxImplantIncoming::guessPortalNumber
static function guessPortalNumber(array $config, array $sipHeaders)
{
	$destination = '';
	$diversion = '';

	$sipUserPattern = '/(?>sip|tel):(+?d+)[@>]/';

	if(isset($sipHeaders['To']) && preg_match($sipUserPattern, $sipHeaders['To'], $matches))
	{
		$destination = $matches[1];
	}
	if(isset($sipHeaders['Diversion']) && preg_match($sipUserPattern, $sipHeaders['Diversion'], $matches))
	{
		$diversion = $matches[1];
	}

	if(!$diversion && !$destination)
	{
		return $config['SEARCH_ID'];
	}

	if($config['SIP_LINE_DETECT_HEADER_ORDER'] === CVoxImplantSip::HEADER_ORDER_DIVERSION_TO)
	{
		return $diversion ?: $destination;
	}
	else
	{
		return $destination ?: $diversion;
	}
}