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

Запись исходящих от конкретных пользователей

Новичком считается только что прочитавший «Астериск - будущее телефонии»
http://asterisk.ru/knowledgebase/books
и пытающийся сделать большее

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

sveloga
Сообщения: 47
Зарегистрирован: 07 янв 2014, 12:30

Запись исходящих от конкретных пользователей

Сообщение sveloga »

Никак не могу придумать как мне осуществить запись исходящих звонков с определенных врутр.номеров?
Даже вопрос вот в чем: как мне идентифицировать определенную группу номеров и перед звонком, выполнить что-либо?


Проверять каждый callerID однако коряво, громоздко и нечитабельно.

Диалплан исходящих выглядит так:
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER: extensions.conf
;=================== Правила исходящих =====================

;==== на город =====
exten => _XXXXXX,1,Dial(SIP/st718200/${EXTEN})
exten => _XXXXXX,n,HangUp()

;==== на межгород ====
exten => _8.,1,Dial(SIP/st718200/${EXTEN})

exten => _+7.,1,Dial(SIP/st718200/8${EXTEN:2:11})

;==== на мобилки ====
;==== BWC ====
exten => _890163[0-4].,1,Dial(SIP/bwcarlan/${EXTEN})
exten => _+790163[0-4].,1,Dial(SIP/bwcarlan/${EXTEN:2:11})

exten => _890164[01].,1,Dial(SIP/bwcarlan/${EXTEN})
exten => _+790164[01].,1,Dial(SIP/bwcarlan/${EXTEN:2:11})

exten => _89016[56].,1,Dial(SIP/bwcarlan/${EXTEN})
exten => _+79016[56].,1,Dial(SIP/bwcarlan/${EXTEN}:2:11)

(тут много кодов мобилок почикал)

exten => _896482[0-4].,1,Dial(SIP/bwcarlan/${EXTEN})
exten => _+796482[0-4].,1,Dial(SIP/bwcarlan/${EXTEN:2:11})

;Международные звонки фпень
exten => _810.,1,HangUp()
exten => _+710.,1,HangUp()
exten => _710.,1,HangUp()
virus_net
Сообщения: 2337
Зарегистрирован: 05 июн 2013, 08:12
Откуда: Москва

Re: Запись исходящих от конкретных пользователей

Сообщение virus_net »

Можно использовать Asterisk database
Выстави флаг в единицу для тех кого нужно записывать, а перед вызовом проверяй через macro или gosub, если флаг в единицы запускай запись
пример macro

Код: Выделить всё

[macro-record-enable]
exten => s,1,Set(USERID=${ARG1})
exten => s,n,Set(FOLDER=${ARG2}/users/${USERID}/monitor/${MINT})
exten => s,n,Set(EXISTS=${DB_EXISTS(macs/${MINT}-${USERID}/record)})
exten => s,n,GotoIf($[${EXISTS} = 0]?exit:check)
exten => s,n(check),Set(RECORD=${DB(macs/${MINT}-${USERID}/record)})
exten => s,n,GotoIf($[${RECORD} = 1]?rec:exit)
exten => s,n(exit),MacroExit()
exten => s,1+998(rec),NoOp(Start recording)
exten => s,n,Set(CALLFILENAME=${STRFTIME(${EPOCH},,%C%y-%m-%d_%H-%M-%S)}_CID${MCALLER}_CAID${MCALLED}_ID${UNIQUEID}_${MDIRECTION})
exten => s,n,MixMonitor(${FOLDER}/${CALLFILENAME}.wav)
exten => s,n,Set(AUDIOHOOK_INHERIT(MixMonitor)=yes)
exten => s,n,MacroExit()
лечше делать сразу через gosub, т.к. от macro в Asterisk отказались и оно будет деприкейтнуто в последствии
мой SIP URI sip:virus_net@asterisk.ru
bitname.ru - Домены .bit (namecoin) .emc .coin .lib .bazar (emercoin)

ENUMER - звони бесплатно и напрямую.
sveloga
Сообщения: 47
Зарегистрирован: 07 янв 2014, 12:30

Re: Запись исходящих от конкретных пользователей

Сообщение sveloga »

Как обычно: сам спросил и чуть позже, сам сделал :)

Решил вопрос так:

У нужных пользователей в users.conf задал:
context=out_record

В extension.conf

[out_record]
ТУТ ВКЛЮЧАЕМ MixMonitor
потом ГоуТу на контекст по-умолчанию.

И всего-то...
ded
Сообщения: 15628
Зарегистрирован: 26 авг 2010, 19:00

Re: Запись исходящих от конкретных пользователей

Сообщение ded »

sveloga писал(а):Проверять каждый callerID однако коряво, громоздко и нечитабельно.
Проверять можно по разному.
Можно было бы и в одном контексте всё решить.
exten => _XXXXXX/101,1,MixMonitor(bla-bla)
exten => _XXXXXX/101,n,Dial(SIP/st718200/${EXTEN})
включена запись исходящих для 101

Для современных нестарых версий можно и маску использовать в CID
exten => _XXXXXX/1XX,1,MixMonitor(bla-bla)
exten => _XXXXXX/1XX,n,Dial(SIP/st718200/${EXTEN})

а вообще всё это ручные игры с ручными конфигами. В вэб оболочеке просто выключатели стоят у каждого внутреннего номера -
писать входящие
писать исходящие
и пр.
homeless
Сообщения: 80
Зарегистрирован: 31 май 2013, 20:12

Re: Запись исходящих от конкретных пользователей

Сообщение homeless »

да, FreePBX в данном случае сильно жизнь облегчит... Там есть - писать, не писать, доверять тому кто включил запись..
tma
Сообщения: 1809
Зарегистрирован: 18 сен 2010, 20:50
Контактная информация:

Re: Запись исходящих от конкретных пользователей

Сообщение tma »

Я в нужном peer'е добавлял переменную, которую проверял в диалплане.
SkyTel OU - облачная АТС, DID, SIP-транк с посекундной тарификаицей, мобильная связь
http://skytel24.com | Эстония: +372.333.55.10 | Россия: +7(495)4019900
Аватара пользователя
zzuz
Сообщения: 1658
Зарегистрирован: 21 сен 2010, 13:33
Контактная информация:

Re: Запись исходящих от конкретных пользователей

Сообщение zzuz »

Правильней

Код: Выделить всё

exten => _XXXXXX/_1XX,1,MixMonitor(bla-bla)
exten => _XXXXXX/_1XX,n,Dial(SIP/st718200/${EXTEN})
Линия24 - Системы Массового Телефонного Обслуживания
ded
Сообщения: 15628
Зарегистрирован: 26 авг 2010, 19:00

Re: Запись исходящих от конкретных пользователей

Сообщение ded »

Это - да!
Аватара пользователя
Obi Van
Сообщения: 340
Зарегистрирован: 03 сен 2010, 11:21

Re: Запись исходящих от конкретных пользователей

Сообщение Obi Van »

Решил давно это таким образом. В Mysql есть таблица в которой устанавливаются параметры для каждого внутреннего абонента: варианты музыки ожидания, запись исходящих вызовов, запись входящих вызовов и т.д. При звонке делается запрос в базу и извлекаются все параметры, после чего включается запись разговора. Управляется всё через веб-морду.
Записи складываются в папках отдельно для входящих и исходящих звонков. Имя формируется так (в макросе обработки на внутренние имена):

Код: Выделить всё

exten => s,n,Set(__filename=Input_${STRFTIME(,,%Y-%m-%d)}_${STRFTIME(,,%H-%M-%S)}_From_${CALLERID(num)}_on_${MACRO_EXTEN})
Всё вроде славно, но возникла такая интересная задача которую хотелось бы решить. Заключается она в следующем. Имя файла формируется как надо, но это устраивает, если входящий вызов идёт непосредственно на адресата. Обработка входящих идёт так: если номер звонящего есть в базе и ему присвоен конкретный внутренний номер сотрудника (сотрудник и его клиент) - звонок идёт на сотрудника и файл записи содержит переговоры звонящего и этого сотрудника; если звонит незнакомый абонент, то вызов попадает на секретаря. Далее секретарь как правило делает перевод вызова (attended transfer) на какого-либо сотрудника. Запись продолжается. На выходе получаем имя файла состоящее из номера звонящего и номера секретаря. Задача в имени файла иметь в качестве получателя номер как раз того человека с кем именно общался звонящий (не секретаря, если не он конечный абонент). Трудности:
1) На момент формирования имени файла система ещё не знает будет ли переводиться вызов (этого может и не быть, например позвонили спросили "как проехать")
2) MixMonitor льёт запись в файл со сформированным именем даже если его уже 5 раз перевели.
3) После окончания файл конвертируется в mp3.
Какие мысли? :|
virus_net
Сообщения: 2337
Зарегистрирован: 05 июн 2013, 08:12
Откуда: Москва

Re: Запись исходящих от конкретных пользователей

Сообщение virus_net »

Obi Van писал(а):Какие мысли?
1. добавить в название файла ID вызова и потом смотреть в CDR, потом, после завершения вызова, по крону переименовывать файл
2. после перевода вызова стопать предыдущий MixMonitor и начинать новый с новым названием
мой SIP URI sip:virus_net@asterisk.ru
bitname.ru - Домены .bit (namecoin) .emc .coin .lib .bazar (emercoin)

ENUMER - звони бесплатно и напрямую.
Ответить
© 2008 — 2025 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH