«Яндекс» Определитель номера во FREEPBX

FreePBX CallerID Lookup или подстановка имени абонента из внешнего источника.
Функционал модуля CallerID Lookup Sources позволяет устанавливать некие источники для преобразования номерных идентификаторов входящих вызовов CID (caller ID) в имена.

А теперь самое интересное, получение информации от Yandex.

Так ваглядит страница Yandex.

Из блока Определитель номера в приложении «Яндекс» будем получать данные.

Создаем PHP скрипт на сервере FREEPBX и подключаем его согласно статье CallerID Lookup Sources

ya_callerid.php

<?php
$tel = $_GET['tel'];
$ch = curl_init('https://yandex.ru/search/?text='.$tel.'');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36');
$html = curl_exec($ch);
curl_close($ch);
if (preg_match('|<div class="fact-answer typo typo_text_l typo_line_m fact__answer"><b>*?>(.*?)</div>|sei', $html, $arr)) $CallerID = $arr[1];
else $CallerID='No CallerID#';
if (preg_match('|«(.*?)»|sei', $CallerID, $arr)) $CallerID = $arr[1];
$CallerID = mb_substr($CallerID , 0, -1);
echo $CallerID;
?>

Вызов данного скрипта 
http://ВАШ_FREEPBX/script/ya_callerid.php?tel=74953694700

Покажет название компании в данном случае Экспо-Парк
Или её отсутствие в базе Yandex - No CallerID

No CallerID так же отображаеться при частых вызовах скрипта, так как Yandex блокирует данную возможность

Или добавить в extensions_custom.conf

[from-pstn-custom]
exten => s,n,Set(CALLERID(name)=${CURL(http://ВАШ_FREEPBX/script/ya_callerid.php?tel=${CALLERID(number)})})