====== 10000777. Воспроизведени записи разговора по запросу 1С ====== [[astpanel:ats:asterisk_v6|Обратно к основной инструкции...]] **В этой статье описан алгоритм работы**. Пример реализации описан в [[http://wiki.miko.ru/astpanel:dialplan_miko_ajam | статье]] Производится в виде обратного звонка на номер пользователя. В контексте miko_ajam определяется extension с номером 10000777. [miko_ajam] exten => 10000777,1,NoOP(playrecords Asterisk) При запросе имени файла записи, “Панель телефонии Asterisk” выполняет AMI команду originate. Параметры: * channel - Local/10000777@miko_ajam * Application - NoCDR **Переменные канала** * **chan** - канал пользователя, который инициировал originate (формат "Технология/Номер") * **uniqueid1c** - уникальный идентификатор звонка В 1С следует передать имя файла записи разговора средствами UserEvent: exten => 10000777,n,UserEvent(CallRecord,chan1c: ${chan},FileName: ${recfile}) * **${recfile}** - полное имя файла записи * **${chan}** - канал пользователя, который инициировал originate Если файл не найден, то необходимо оповестить об этом: exten => 10000777,n,UserEvent(CallRecordFail,chan1c: ${chan},uniqueid1c: ${uniqueid1c}) После выполнения **UserEvent** приложение должно ответить на звонок и отбить его. exten => 10000777,n,Answer() exten => 10000777,n,Hangup() ====== Проверка ====== **Для проверки можно использовать следующий скрипт:** * Звонок с SIP/104 (Телефон должен быть подключен) на 10000777 #!/bin/sh dir_script='/tmp/'; # каталог из asterisk.conf astspooldir='/var/spool/asterisk'; # call_text="Channel: SIP/104 Context: miko_ajam Extension: 10000777 Callerid: Alexey<104> Setvar: uniqueid1c=1385413520.14 Setvar: chan=SIP/104"; echo "$call_text" > /tmp/file.call; mv '/tmp/file.call' "$astspooldir/outgoing/"; asterisk -rvvv; **Вывод в консоли Asterisk** -- Executing [10000777@miko_ajam:1] NoCDR("SIP/104-00000011", "") in new stack -- Executing [10000777@miko_ajam:2] NoOp("SIP/104-00000011", "internal calling application: 10000777 1C_Playback") in new stack -- Executing [10000777@miko_ajam:3] AGI("SIP/104-00000011", "1C_Playback.php") in new stack -- Launched AGI Script /var/lib/asterisk/agi-bin/1C_Playback.php -- 1C_Playback.php: /var/spool/asterisk/monitor/2013/11/25/exten-106-104-20131125-160520-1385413520.14.wav -- AGI Script Executing Application: (UserEvent) Options: (CallRecord,Channel:SIP/104,FileName:/var/spool/asterisk/monitor/2013/11/25/exten-106-104-20131125-160520-1385413520.14.wav) -- AGI Script 1C_Playback.php completed, returning 0 -- Executing [10000777@miko_ajam:4] Hangup("SIP/104-00000011", "") in new stack == Spawn extension (miko_ajam, 10000777, 4) exited non-zero on 'SIP/104-00000011' **Вывод в AMI** Event: UserEvent Privilege: user,all UserEvent: CallRecord Uniqueid: 1412877386.16 Channel:SIP/104 FileName:/var/spool/asterisk/monitor/2014-10/06/in_1001_2014-10-06-10-00-55.gsm [[astpanel:ats:asterisk_v6|Обратно к основной инструкции...]] ===== Комментарии ===== ~~DISQUS~~