Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

Проблема с обратным вызовом

0

Создал скрипт 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 не кладет трубку после дозвона. В чем моя ошибка?

удалить закрыть спам изменить тег редактировать

спросил 2011-06-28 14:53:30 +0400

starzkv Gravatar starzkv
373 20 6 20
http://www.compcar.ru/for...

5 Ответов

1

когда то я создал похожее. Есть ли у пользователя от которого исполняется скрипт, право записи в директорию outgoing?. Допишите в конце то что ниже (*.call- * перемещать с любым именем и расширением .call. Подставте Ваши пути к файлам и директориям в командах)У меня так работало.

system ("chown asterisk:asterisk *.call");

system ("mv *.call /var/spool/asterisk/outgoing");

ссылка удалить спам редактировать

ответил 2011-07-04 21:52:49 +0400

Alejandro Gravatar Alejandro
41 5 1 5

обновил 2011-07-04 22:00:39 +0400

Comments

Не помогло. Скорее всего имя пользователя другое. starzkv ( 2011-07-07 22:53:26 +0400 )редактировать
Кстати, если создавать файл сразу же в папке outgoing то он создается и сервер звонит. starzkv ( 2011-07-08 05:16:35 +0400 )редактировать
перемещали с именем файла или как я с *.call? Припоминаю, у меня когда имя файла указывал явно при "mv name_file.call" - тоже не работало, а когда "mv *.call" должникам звонило. Пользователь тот что надо.Нельзя создавать прямо в outgoing Alejandro ( 2011-07-09 22:26:41 +0400 )редактировать
1

Вы с путями $destfile не ошиблись?

у меня такой путь: /var/spool/asterisk/outgoing/

Насчет трубки - покажите диалплан и лог его выполнения.

ссылка удалить спам редактировать

ответил 2011-06-28 15:07:47 +0400

Aven Gravatar Aven flag of Russian Federation
343 1 13
http://it-need.ru/
0

В строчке:

system("mv $myfile $destfile");

Замени mv на move должно получиться так:

system("move $myfile $destfile");
ссылка удалить спам редактировать

ответил 2011-06-28 15:47:01 +0400

silent Gravatar silent
41 2 2 4

обновил 2011-06-28 15:48:55 +0400

Comments

Так тоже пробовал. Не перемещает :(((( starzkv ( 2011-06-28 15:52:40 +0400 )редактировать
ты в винде поиграй с ключами от move. Обрати внимание на путь в *NIX системах он через /, а в винде \. silent ( 2011-06-28 16:28:00 +0400 )редактировать
Это знаю. файл то же создается (там тоже путь указан). Не переносится только. :( starzkv ( 2011-06-28 16:34:54 +0400 )редактировать
0

У меня путь другой потому что стоит 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 15:14:29 +0400

starzkv Gravatar starzkv
373 20 6 20
http://www.compcar.ru/for...

обновил 2011-06-28 15:23:16 +0400

0

Для тех кто сюда будет заглядывать в будущем, решил сделать еще одним ответом

Такой вариант Проверил и запустил на своём Астериске - работает

Хотел выложить тут, выглядит некрасиво - ложится в одну строку, а форматировать по новой текст нет желания. Так что сразу извиняюсь за ссылку на свои заметки

ссылка удалить спам редактировать

ответил 2011-07-10 14:23:13 +0400

Alejandro Gravatar Alejandro
41 5 1 5

Ваш ответ

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку

подписаться на rss ленту новостей

Статистика

Задан: 2011-06-28 14:53:30 +0400

Просмотрен: 652 раз

Обновлен: Jul 10 '11

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.