Запись разговоров.
Добавлено: 31 май 2015, 17:23
Есть такой контекст:
exten => _X.,1,NoOp(Incoming_to_test);
exten => _X.,n,Set(TIMEOUT(digit)=3);
exten => _X.,n,Set(TIMEOUT(response)=3);
exten => _X.,n,Set(CDR(accountcode)="test");
exten => _X.,n,Set(CHANNEL(language)=ivr_test);
exten => _X.,n,SetMusicOnHold(test);
exten => _X.,n,Set(dir=/mnt/nfs/);
exten => _X.,n,Set(newdir=${STRFTIME(${EPOCH},,%Y%m%d)});
exten => _X.,n,Set(savedir=${dir}${newdir});
exten => _X.,n,Set(fname=${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)}_8${CALLERID(num)});
exten => _X.,n,GotoIf($["${CALLERID(num)}" = "3822900070"]?test);
exten => _X.,n,NoOp(${dir});
exten => _X.,n,NoOp(${newdir});
exten => _X.,n,NoOp(${savedir});
exten => _X.,n,NoOp(${fname});
exten => _X.,n,NoOp(${CALLERID(num)});
exten => _X.,n,system(mkdir ${dir}${newdir});
exten => _X.,n,Answer;
exten => _X.,n,Playback(privet);
exten => _X.,n,WaitExten(0.1);
exten => _X.,n,MixMonitor(${savedir}/${fname}.wav,b);
exten => _X.,n,Dial(SIP/1001&SIP/1002&SIP/1003&SIP/1004&SIP/1005,15,tTgm);
exten => _X.,n,NoOp(Line_DIALSTATUS=${DIALSTATUS});
exten => _X.,n,GotoIf($[${DIALSTATUS}=NOANSWER]?noans);
exten => _X.,n,Hangup(16);
exten => _X.,n(noans),MixMonitor(${savedir}/${fname}.wav,b);
exten => _X.,n,Dial(SIP/1001&SIP/1002&SIP/1003&SIP/1004&SIP/1005&SIP/1006,45,tTgm);
exten => _X.,n,NoOp(Line_DIALSTATUS=${DIALSTATUS});
exten => _X.,n,Hangup(16);
Когда вызов попадает в этот контекст, происходит звонок сразу на несколько внутренних номеров и происходит запись разговоров. В имени файла в который пишется разговор нет внутреннего номера на котором ответили на звонок.
Как узнать на какой внутренний ответили, может есть какая-та переменная?
Нужно чтобы в имени файла записанного разговора был ещё и внутренний номер, переименовать файл смогу потом в exten h или как-то ещё, мне вот главное узнать, на какой внутренний ответили.
Или может запись разговоров в таком случае можно как-то через макросы сделать?
Может меня кто-то направить в правильную сторону?
exten => _X.,1,NoOp(Incoming_to_test);
exten => _X.,n,Set(TIMEOUT(digit)=3);
exten => _X.,n,Set(TIMEOUT(response)=3);
exten => _X.,n,Set(CDR(accountcode)="test");
exten => _X.,n,Set(CHANNEL(language)=ivr_test);
exten => _X.,n,SetMusicOnHold(test);
exten => _X.,n,Set(dir=/mnt/nfs/);
exten => _X.,n,Set(newdir=${STRFTIME(${EPOCH},,%Y%m%d)});
exten => _X.,n,Set(savedir=${dir}${newdir});
exten => _X.,n,Set(fname=${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)}_8${CALLERID(num)});
exten => _X.,n,GotoIf($["${CALLERID(num)}" = "3822900070"]?test);
exten => _X.,n,NoOp(${dir});
exten => _X.,n,NoOp(${newdir});
exten => _X.,n,NoOp(${savedir});
exten => _X.,n,NoOp(${fname});
exten => _X.,n,NoOp(${CALLERID(num)});
exten => _X.,n,system(mkdir ${dir}${newdir});
exten => _X.,n,Answer;
exten => _X.,n,Playback(privet);
exten => _X.,n,WaitExten(0.1);
exten => _X.,n,MixMonitor(${savedir}/${fname}.wav,b);
exten => _X.,n,Dial(SIP/1001&SIP/1002&SIP/1003&SIP/1004&SIP/1005,15,tTgm);
exten => _X.,n,NoOp(Line_DIALSTATUS=${DIALSTATUS});
exten => _X.,n,GotoIf($[${DIALSTATUS}=NOANSWER]?noans);
exten => _X.,n,Hangup(16);
exten => _X.,n(noans),MixMonitor(${savedir}/${fname}.wav,b);
exten => _X.,n,Dial(SIP/1001&SIP/1002&SIP/1003&SIP/1004&SIP/1005&SIP/1006,45,tTgm);
exten => _X.,n,NoOp(Line_DIALSTATUS=${DIALSTATUS});
exten => _X.,n,Hangup(16);
Когда вызов попадает в этот контекст, происходит звонок сразу на несколько внутренних номеров и происходит запись разговоров. В имени файла в который пишется разговор нет внутреннего номера на котором ответили на звонок.
Как узнать на какой внутренний ответили, может есть какая-та переменная?
Нужно чтобы в имени файла записанного разговора был ещё и внутренний номер, переименовать файл смогу потом в exten h или как-то ещё, мне вот главное узнать, на какой внутренний ответили.
Или может запись разговоров в таком случае можно как-то через макросы сделать?
Может меня кто-то направить в правильную сторону?