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

Последовательное проигрывание файлов через AMI

0

Здравствуйте гуру!

Прошу заранее сильно не пинать, ибо с AMI только начал работать.

Суть задачи такая: звоним по номеру, после снятия трубки проигрываем последовательно звуковые файлы с заданной периодичностью. Т.е, например, есть файлы: start.wav, 1.wav, ..., end.wav.

Сценарий такой:

  1. Звонок
  2. Ожидание n-сек. Если нет ответа после n-сек, тогда сброс, и, повторный набор через n-сек
  3. Ответ
  4. start.wav
  5. Пауза n-сек
  6. 1.wav
  7. Пауза n-сек
  8. 2.wav
  9. Пауза n-сек
  10. ...
  11. end.wav
  12. Пауза n-сек
  13. start.wav
  14. ...
  15. end.wav

На текущий момент есть только это:

$response   = '';
$timeout    = 10;
$socket = fsockopen("xxx.xxx.xxx.xxx", "5038", $errno, $errstr, $timeout);

fputs($socket, "Action: Login\r\n");
fputs($socket, "UserName: <login>\r\n");
fputs($socket, "Secret: <pass>\r\n\r\n");
fputs($socket, "Events: off\r\n\r\n");
usleep(500);

fputs($socket, "Action: Originate\r\n");
fputs($socket, "Channel: SIP/<channel>\r\n");
fputs($socket, "WaitTime: 30\r\n");
fputs($socket, "Callerid: <caller ID>\r\n");
fputs($socket, "Timeout: 15000\r\n");
fputs($socket, "Context: <context>\r\n");
fputs($socket, "Exten: <phone number>\r\n");
fputs($socket, "Priority: 1\r\n\r\n");
fputs($socket, "Action: Logoff\r\n\r\n");
usleep(500);

while(!feof($socket))
{
    $response .= fread($socket, 8192) . "<br />";
}

fclose($socket);

echo $response;

Спасибо за внимание.

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

спросил 2017-08-18 14:12:07 +0400

tcolonel Gravatar tcolonel
1 1

Comments

@meral

Не совсем понимаю, при чем здесь "extensions.conf", когда данные тянутся из "sip.conf". И, речь идет именно про использование AMI и PHP, и не конфигов с диаллпланами.

Кстати, можно предложить и другое решение - главное, чтобы задачу можно было бы реализовать на PHP.

Спасибо.

tcolonel ( 2017-08-18 17:29:15 +0400 )редактировать

вам надо прочитать любую книгу по астериск. вы начали с неправильног конца. я вам предложил решение. без диалплана вообще только через статис. но это как вести автомобиль с заднего седенья, ведь пасажиром вы больше привыкли. швабрами там всякими и так далее.

meral ( 2017-08-18 18:11:25 +0400 )редактировать

fputs($socket, "Context: <context>\r\n"); - вот это - использование extensions.conf. а откуда у вас "данные тянутся" - мне неведомо.

meral ( 2017-08-18 18:12:33 +0400 )редактировать

2 Ответа

0

AMI не для этого. Для этого AGI.

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

ответил 2017-08-19 17:24:19 +0400

olegusp Gravatar olegusp
11 2

Comments

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

meral ( 2017-08-19 18:58:46 +0400 )редактировать
0

Ами интерфейс не предназначен быть заменой extensions.conf

Но вообще, если сильно хочется, то можно.

  1. ставите диалпланом в Statis
  2. по получению евента "поставлен в статис" играете первый файл
  3. по получению евента aciton compleat - второй.

Однако это очень сильно все осложняет вам жизнь и строго говоря аналогично выполнению высококвалифицрованной работы с использованием идиота- сторожа, чтоб типа сэкономить себе время.

Диалпланом это пишется вот так, в одну строчку

exten => s,1,Playback(file1&silence/9&file2&silence/8&file3)
ссылка удалить спам редактировать

ответил 2017-08-18 16:21:42 +0400

meral Gravatar meral flag of Ukraine
23347 24 20 177
http://pro-sip.net/

обновил 2017-08-18 16:22:54 +0400

Comments

B call файлом заворачиваем это в нужный контекст :-)

april22 ( 2017-08-18 16:52:03 +0400 )редактировать

Ваш ответ

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)!
[скрыть предварительный просмотр]

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

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

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

Статистика

Задан: 2017-08-18 14:12:07 +0400

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

Обновлен: Aug 19 '17

Похожие вопросы:

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