Приветствую всех присутствующих!, уважаемые форумчане!
Есть такая задача:
1. Принять входящий вызов;
2. Записывать n секунд, что говорит позвонивший;
3. Положить трубку (положить трубку может и сам звонящий, не дождавшись завершения записи);
4. Позвонить с внутренного номера на внутренний;
5. При соединении проиграть сделанную запись.
Делаю так:
[code]
exten => 7933XXXXXXX,1,Answer
exten => 7933XXXXXXX,n,Playback(01)
exten => 7933XXXXXXX,n,Set(fname=${STRFTIME(${EPOCH},,%Y%m%d%H%M)}-${CALLERID(number)}-${EXTEN})
exten => 7933XXXXXXX,n,Record(/var/spool/asterisk/monitor/${fname}.wav,3,5)
exten => 7933XXXXXXX,n,Playback(02)
exten => 7933XXXXXXX,n,Hangup
include => new_call
[/code]
В new_call создается call-файл:
[code]
[new_call]
exten => h,1,NoOp(Создание call-файла)
exten => h,n,AGI(newcallfile.php)
[/code]
[code]
#!/usr/bin/php -q
<?php
ob_implicit_flush(false);
set_time_limit(10);
error_reporting(0);
$par=$argv[1];
$channel= $par;
$uid=time();
$f1=fopen("/tmp/$uid.call","w");
fputs($f1,"Channel: SIP/000@localout\n");
fputs($f1,"MaxRetries: 0\n");
fputs($f1,"RetryTime: 600\n");
fputs($f1,"WaitTime: 30\n");
fputs($f1,"Context: localin\n");
fputs($f1,"Extension: s\n");
fputs($f1,"Priority: 1\n");
fclose($f1);
system("mv /tmp/$uid.call /var/spool/asterisk/outgoing/");
?>
[/code]
И здесь я застрял. Не разберусь с настройкой контекстов, чтобы сделать звонок с внутреннего на внутренний.
Пожалуйста, подтолкните в нужном направлении.