====== 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~~