Страница 2 из 2
					
				Re: Проигрывание звуковых файлов во время разговора
				Добавлено: 11 авг 2011, 14:51
				 Vlad1983
				и что мешает каждому агенту выдать по своему сочетанию клавиш
он каким-то макаром находит нужный файл и активирует его для проигрывания потом просто тычит своё сочетание клавиш
по крайней мере это скорей всего работать будет, а извраты с конференциями и прочие ХЗ
			 
			
					
				Re: Проигрывание звуковых файлов во время разговора
				Добавлено: 11 авг 2011, 17:17
				 SolarW
				В Asterisk Recording Interface так сделано прослушивание своей голосовой почты - в веб-интерфейсе тыкаешь мышью в сообщение, тебе на телефон приходит звонок, поднимаешь трубку и слушаешь.
			 
			
					
				Re: Проигрывание звуковых файлов во время разговора
				Добавлено: 23 авг 2011, 16:23
				 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;
			 
			
					
				Re: Проигрывание звуковых файлов во время разговора
				Добавлено: 23 авг 2011, 16:34
				 ded
				SolarW писал(а): в веб-интерфейсе тыкаешь мышью в сообщение, тебе на телефон приходит звонок, поднимаешь трубку и слушаешь.
То есть набрать *97 и послушать все сообщения, удалить если нужно какие-то - впадлу?
 
			
					
				Re: Проигрывание звуковых файлов во время разговора
				Добавлено: 23 авг 2011, 16:40
				 olegek
				мелодий в базе 9 тыс. Перезванивать звонящему экономически не выгодно. и теряется смысл сервиса. + нужно вести статистику времени агента в системе. Веб интерфейс у агента, доступа к нему у звонящего нету. При этом агент в разговоре слушает пожелания звоняшего и включает ему мелодии.
			 
			
					
				Re: Проигрывание звуковых файлов во время разговора
				Добавлено: 24 авг 2011, 16:45
				 IgorG
				я думаю что лучше всего использовать ChanSpy для внедрения звукового файла в разговор