Ваш вопрос весьма обширный и его одним ответом не расписать. Быстрее всего нанять кого-то.
А чтоб разобраться и понять в какую сторону копать вот информация для начала:
1) Для начала надо понять вообще как работает астериск - тут поможет книга: Asterisk: будущее телефонии(она актуальна для общего понимания и основана на версии 1.4, есть second edition этой книги, но он только на английском.) Это даст понимание работы Asterisk и VoIP а дальше уже просто будет.
2) Запись разговоров - вот, собственно, рабочий пример:
exten => _989XXXXXXXXX,1,NoOp(Recording call)
same => n,Set(CallTime=${STRFTIME(${EPOCH},,%C%y%m%d%H%M%S)})
same => n,Set(CallDate=${STRFTIME(${EPOCH},,%C%y%m%d)})
same => n,Set(CALLFILENAME=/var/spool/asterisk/monitor/${CallDate}/${CallTime}_${CALLERID(num)}_${EXTEN})
same => n,NoOp(${CALLFILENAME}.wav)
same => n,MixMonitor(${CALLFILENAME}_mixed.wav,b);вх/исх голос в один файл
same => n,Monitor(wav,${CALLFILENAME}.wav,b); вх и исходящий голос в отдельный файл
same => n,Dial(SIP/to-provider-trunk/${EXTEN:1},120,t)
same => n,Hangup()
p.s. Еще очень важный вопрос сколько будет одновременных вызовов, есть подозрение, что Pi не потянет запись нескольких одновременных вызовов.
p.p.s Есть еще и немаловажный вопрос - безопасность, т.к. не редки взломы тех, кто настроил не понимая что делает...