Страница 1 из 1

Реакция в одном канале на Hangup в другом.

Добавлено: 27 фев 2017, 20:56
shines2
Например, такая задача: есть 2 разговора (с точки зрения астериска независимых). Один из них заканчивается (Hangup) и чтобы это послужило сигналом для начала записи другого разговора.
Не могу понять, решаемо ли это в принципе. И, если решаемо, то примерно какими средствами?

Re: Реакция в одном канале на Hangup в другом.

Добавлено: 27 фев 2017, 21:15
ded
Всё решаемо, вопрос стоит только - как?
Первый разговор должен исполняться в изолированном контексте, где определён
exten => h,1,NoOp( ---------- custom execution ---------- )
exten => h,n,Set(RECORDFILENAME=...............)
exten => h,n,MixMonitor(.....................................)

Re: Реакция в одном канале на Hangup в другом.

Добавлено: 28 фев 2017, 08:36
shines2
прошу прощения, я в названии темы неверно употребил термин "канал".
Задача: 101 разговаривает с 102 (пусть в контексте К1), 103 - с 104 (контекст К2. Это для удобство идентификации, в диалплане К1 и К2 может быть и один контекст). 104 вешает трубку, попадем в К2 на экстеншен h. Что можно сделать, чтобы начать запись разговора 101-102?
В голову приходит только решение типа: писать полностью разговор 101-102, запомнить время окончания разговора 103-104, по окончании разговора 101-102 удалить из записи вычисленный лишний фрагмент. Нет решения без редактирования записи?

Re: Реакция в одном канале на Hangup в другом.

Добавлено: 28 фев 2017, 09:13
virus_net
ded писал(а):Всё решаемо
+1
По h может исполняться что угодно, в том числе и AGI скрипт, который может проверить/вычислить что угодно и запустить что угодно.
shines2 писал(а):чтобы начать запись разговора 101-102
По h выяснить существует ли вызов между 101-102 и если существует, то навесить на него chanspy с MixMonitor, т.к.:
[Syntax]
MixMonitor(filename.extension[,options[,command]])

Re: Реакция в одном канале на Hangup в другом.

Добавлено: 28 фев 2017, 12:30
shines2
Спасибо за способ с chanspy.
Не подскажете еще способ "выяснить существует ли вызов между 101-102 "?
Все, что мне приходит в голову, анализировать скриптом вывод core show channels. Но это как-то криво и есть подозрение, что инфы о вызовах между каналами там вообще нет.

Re: Реакция в одном канале на Hangup в другом.

Добавлено: 28 фев 2017, 16:17
virus_net
Что именно кривого ?
Хорошо, делайте красиво: слушайте и обрабатывайте события в AMI.

Re: Реакция в одном канале на Hangup в другом.

Добавлено: 28 фев 2017, 22:40
Repz
Ради любопытства, а как это будет применяться? идея вроде ясна, но как то непонятно.... почему нельзя сохранять записи и К1 и К2, зачем врубать запись К2 при hangup К1?