Чтобы не запрашивать каждый раз стоит держать свою базу номеров, тогда алгоритм примерно такой:
1. Запрашиваем из базы данные по номеру, если они не старше N дней (ODBC или MYSQL)
2. Если данных в базе нет (или они старые), то делаем запрос к сайту (CURL)
3. Если данные с сайта получены, разбираем строку, заносим данные в базу с указанием времени запроса
4. Если данных нет - отрабатываем стандартный план звонка или пытаемся определить по префиксам
Дополнительно можно сделать внешний скрипт, который будет периодически небольшими порциями обновлять данные в таблице.