First time here? Check out the FAQ!

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

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

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

спросил Jun 28 '11

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");

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

ответил Jul 4 '11

Alejandro Gravatar Alejandro
41 5 1 5

обновил Jul 4 '11

Comments

Не помогло. Скорее всего имя пользователя другое. starzkv (Jul 7 '11)edit
Кстати, если создавать файл сразу же в папке outgoing то он создается и сервер звонит. starzkv (Jul 8 '11)edit
перемещали с именем файла или как я с *.call? Припоминаю, у меня когда имя файла указывал явно при "mv name_file.call" - тоже не работало, а когда "mv *.call" должникам звонило. Пользователь тот что надо.Нельзя создавать прямо в outgoing Alejandro (Jul 9 '11)edit
1

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

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

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

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

ответил Jun 28 '11

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");
ссылка удалить спам редактировать

ответил Jun 28 '11

silent Gravatar silent
41 2 2 4

обновил Jun 28 '11

Comments

Так тоже пробовал. Не перемещает :(((( starzkv (Jun 28 '11)edit
ты в винде поиграй с ключами от move. Обрати внимание на путь в *NIX системах он через /, а в винде \. silent (Jun 28 '11)edit
Это знаю. файл то же создается (там тоже путь указан). Не переносится только. :( starzkv (Jun 28 '11)edit
0

У меня путь другой потому что стоит asteriskwin32 под Windows. Для дома не захотел отдельный комп под АТС выделять. Описывал здесь.

Звонки совершаются нормально если перенести файл file.call в C:\cygroot\asterisk\spool\outgoing.

Что то не дает ему перенести файл. Поэтому наверное и до команды положить трубку не добирается.

[eyeBeam]
exten
=>_7XXXXXXXXXX,1,Dial(SIP/+7${EXTEN:1}@zadarma,30,m)

Похоже я в Perl что то не так написал. Перенос файла не выполняется.

На другом языке скрипт не пишу потому что не уверен будет он работать или нет. Perl точно присутствует.

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

ответил Jun 28 '11

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

обновил Jun 28 '11

0

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

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

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

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

ответил Jul 10 '11

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 ленту новостей

Статистика

Задан: Jun 28 '11

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

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

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