Создал скрипт callback.agi на Perl:
#!/usr/bin/perl
my $extension = file; # Where we're going to call
# write file
my $myfile = "/asterisk/tmp/".$extension.".call";
my $destfile = "/asterisk/spool/outgoing/".$extension.".call";
open(EXTEN,">$myfile");
print EXTEN "Channel: SIP/zadarma/+79012688004\n";
print EXTEN "Context: eyeBeam\n";
print EXTEN "Extension: 73425630600\n";
close(EXTEN);
# move file
system("mv $myfile $destfile");
exit 0;
В extensions.conf прописано:
exten => 800,1,AGI(callback.agi)
exten => 800,n,Hangup
В итоге file.call создается и не переносится. Asterisk не кладет трубку после дозвона. В чем моя ошибка?
когда то я создал похожее. Есть ли у пользователя от которого исполняется скрипт, право записи в директорию outgoing?. Допишите в конце то что ниже (*.call- * перемещать с любым именем и расширением .call. Подставте Ваши пути к файлам и директориям в командах)У меня так работало.
system ("chown asterisk:asterisk *.call");
system ("mv *.call /var/spool/asterisk/outgoing");
Вы с путями $destfile не ошиблись?
у меня такой путь: /var/spool/asterisk/outgoing/
Насчет трубки - покажите диалплан и лог его выполнения.
В строчке:
system("mv $myfile $destfile");
Замени mv на move должно получиться так:
system("move $myfile $destfile");
У меня путь другой потому что стоит asteriskwin32 под Windows. Для дома не захотел отдельный комп под АТС выделять. Описывал здесь.
Звонки совершаются нормально если перенести файл file.call в C:\cygroot\asterisk\spool\outgoing.
Что то не дает ему перенести файл. Поэтому наверное и до команды положить трубку не добирается.
[eyeBeam]
exten =>_7XXXXXXXXXX,1,Dial(SIP/+7${EXTEN:1}@zadarma,30,m)
Похоже я в Perl что то не так написал. Перенос файла не выполняется.
На другом языке скрипт не пишу потому что не уверен будет он работать или нет. Perl точно присутствует.
Для тех кто сюда будет заглядывать в будущем, решил сделать еще одним ответом
Такой вариант Проверил и запустил на своём Астериске - работает
Хотел выложить тут, выглядит некрасиво - ложится в одну строку, а форматировать по новой текст нет желания. Так что сразу извиняюсь за ссылку на свои заметки
Задан: 2011-06-28 14:53:30 +0400
Просмотрен: 652 раз
Обновлен: Jul 10 '11
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.