Инструменты пользователя

Инструменты сайта


astpanel:ats:asterisk:playrecords_v6

10000777. Воспроизведени записи разговора по запросу 1С

Обратно к основной инструкции...

В этой статье описан алгоритм работы. Пример реализации описан в статье

Производится в виде обратного звонка на номер пользователя.

В контексте 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)
    -- <SIP/104-00000011>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/playrecords_v6.txt · Последние изменения: 2018/06/08 09:17 — apor