VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Проигрывание звуковых файлов во время разговора

Проблемы Asterisk без вэб-оболочек и их решения

Модераторы: april22, Zavr2008

Vlad1983
Сообщения: 4251
Зарегистрирован: 09 авг 2011, 11:51

Re: Проигрывание звуковых файлов во время разговора

Сообщение Vlad1983 »

и что мешает каждому агенту выдать по своему сочетанию клавиш
он каким-то макаром находит нужный файл и активирует его для проигрывания потом просто тычит своё сочетание клавиш

по крайней мере это скорей всего работать будет, а извраты с конференциями и прочие ХЗ
ЛС: @rostel
Аватара пользователя
SolarW
Сообщения: 1331
Зарегистрирован: 01 сен 2010, 14:21
Откуда: Днепропетровск, Украина

Re: Проигрывание звуковых файлов во время разговора

Сообщение SolarW »

В Asterisk Recording Interface так сделано прослушивание своей голосовой почты - в веб-интерфейсе тыкаешь мышью в сообщение, тебе на телефон приходит звонок, поднимаешь трубку и слушаешь.
olegek
Сообщения: 18
Зарегистрирован: 04 апр 2011, 18:09

Re: Проигрывание звуковых файлов во время разговора

Сообщение olegek »

Нужен хелп в этом же направлении (Астериск 1.6):
Есть очередь агентов, которые принимают вызовы, вызов приходит по каналам Dahdi например Dahdi/1-1 звонок уходит в очередь на агентов. Задача дать возможность агенту включать для звонящего мелодии для прослушивания через веб-интерфейс.
Пробую делать так. Приходит звонок кидается в очередь. В очереди выполняется макрос (agentmeetme), узнаю номер агента, делаю глобальную переменную (звонков аналогичных могут приходить сразу много). Далее агент просить звонящего набрать на клаве телефона 1. Выполняется макрос (muzicbg1) где канал с агентом перенаправляю для входа в конференцию, и в этуже конференцию кидаю звонящего. Теперь они в конференции. Через скрипты добавляю мелодию и проигрываю. Также останавливаю.

Проблема: Как сделать чтобы от звонящего ничего не зависило и ему неприходилось нажимать клавишу 1.
При этом ChannelRedirect - для канала агента работает, а для канала Dahdi/1-1 ошибку не выдает а ложит трубку.
также при включенной опции p агент не может выйти из конференции при нажатии # на X-lite, при этом звонящий, выходит нормально. Проблема еще в том что не получается выйти агентом из конференции, как только кикнуть его (meetme kick 10001 2) но при этом сам агент разлогинивается. Как можно обойти?

queues.conf
member => Agent/10001
member => Agent/10002

features.conf
bg-muz1 => 1,caller,Macro,muzicbg1

extensions.conf
[для каналов DAHDI]
exten => 0646,n,Set(__DYNAMIC_FEATURES=bg-muz1)
exten => 0646,n,Answer
exten => 0646,n,Wait(2)
exten => 0646,n,Set(GLOBAL(Canal${CALLERID(num)})=${CHANNEL})
exten => 0646,n,Queue(test,tTr,,,90,,agentmeetme)
exten => 0646,n,Hangup

[macro-agentmeetme]
exten => s,1,Set(GLOBAL(MYAGENT${CALLERID(num)})=${CHANNEL:-5:5})
; беру номер агента который принял в очереди звонок

[muzfon1]
switch => Realtime/muzfon1@ext_switch
; обращается в базу данных где через веб интерфейс подставляется путь к музыкальному файлу который будет проигрываться

[muzmeet]
exten => _XXXXX,1,MeetMe(${EXTEN},1dqx)
; добавление динамическую в конференцию согласно номеру агента 10001 например.

[muzmeet1]
exten => _XXXXX,1,Playback(beep)
exten => _XXXXX,n,MeetMe(${EXTEN},1dqAx)
; добавление в конференцию агента с проигрыванием ему бип перед входом.

[macro-muzicbg1]
exten => s,1,NoOp("Context = "${CONTEXT}" Ext = "${EXTEN})
exten => s,n,ChannelRedirect(AGENT/${MYAGENT${CALLERID(num)}},muzmeet1,${MYAGENT${CALLERID(num)}},1)
;exten => s,n,ChannelRedirect(${Canal${CALLERID(num)}},muzmeet,${MYAGENT${CALLERID(num)}},1)
exten => s,n,MeetMe(${MYAGENT${CALLERID(num)}},1dpx)

Скрипт для добавления на воспроизведение мелодии
на перле кусок скрипта в качестве $parametr - передается номер агента

open G, "> /tmp/muzfon$parametr.call";
print G "Channel: local/play$parametr\@muzfon1\n";
print G "WaitTime: 45\n";
print G "CallerID:9999\n";
print G "Context: muzmeet\n";
print G "Extension: $parametr\n";
print G "Priority: 1\n";
close G;
system("mv -f /tmp/muzfon$parametr.call /var/spool/asterisk/outgoing/muzfon$paramert.call");

скрипт создает файл и ложит его в астериск для воспроизведения. через реалтайм. обращается в бд где уже лежит нужный путь к файлу.

второй скрипт который останавливает воспроизведение мелодии в конференции
#!/usr/bin/perl -w
use CGI;
use POSIX qw(strftime);
use Asterisk::AMI;
use strict;
use warnings;
print "Content-type: text/html\n\n";
my $my_cgi = new CGI;
my $parametr = $my_cgi->param('par');
sleep(2);
my $astman = Asterisk::AMI->new(PeerAddr => '10.10.10.10'
PeerPort => '1111',
Username => '123',
Secret => '123'
);
die "Unable to connect to asterisk" unless ($astman);
my $action = $astman->send_action({ Action => 'Command', Command => 'meetme kick '.$parametr.' 3'}); # удаляю через команды cli> последнего вошедшего это мелодия которая воспроизводится.
my $response = $astman->get_response($action);
1;
ded
Сообщения: 15625
Зарегистрирован: 26 авг 2010, 19:00

Re: Проигрывание звуковых файлов во время разговора

Сообщение ded »

SolarW писал(а): в веб-интерфейсе тыкаешь мышью в сообщение, тебе на телефон приходит звонок, поднимаешь трубку и слушаешь.
То есть набрать *97 и послушать все сообщения, удалить если нужно какие-то - впадлу?
olegek
Сообщения: 18
Зарегистрирован: 04 апр 2011, 18:09

Re: Проигрывание звуковых файлов во время разговора

Сообщение olegek »

мелодий в базе 9 тыс. Перезванивать звонящему экономически не выгодно. и теряется смысл сервиса. + нужно вести статистику времени агента в системе. Веб интерфейс у агента, доступа к нему у звонящего нету. При этом агент в разговоре слушает пожелания звоняшего и включает ему мелодии.
Аватара пользователя
IgorG
Сообщения: 37
Зарегистрирован: 03 сен 2010, 13:08
Откуда: Омск
Контактная информация:

Re: Проигрывание звуковых файлов во время разговора

Сообщение IgorG »

я думаю что лучше всего использовать ChanSpy для внедрения звукового файла в разговор
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH