Создал скрипт 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
Просмотрен: 649 раз
Обновлен: Jul 10 '11
Настройка CallBack в Asterisk средствами FreePBX. Готовое решение. Наслаждайтесь.
Запуск одного скрипта разными процессами
Определение инициатора звонка через колбек в статистике
Trixbox и callback - Не работает и все.
есть проблема travelsim и asterisk, помогите с решением.
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.