Как вариант, использовать
AMI Asterisk.
Скриптом на PHP (или другом) цепляться к интерфейсу и засылать необходимые команды на добавление, удаление номера на переадресацию вместе с настройкой записи звонка. Имя файла в этом случае давать по уникальному номеру звонка, чтобы было можно найти файл. Запись в базу истории звонков можно организовать или через встроенный механизм статистики звонков (используя бд). Или использовать
AGI Askerisk.
Смотреть документацию и строить. По ценам не скажу. Вектор возможного решения предоставил.