AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

Разделить RTP-поток и отправить на другую машину

Asterisk IP PBX 10 сообщений -
#1

Коллеги, добрый день.

Прошу помощи в решении интересной задачки.
Имеется Астериск и 2 пира, которые звонят друг другу.
В исследовательских целях необходимо при поднятии трубки и начале разговора передавать звуковые данные на другой сервер, причем не миксованный поток, а голос каждого абонента отдельно. Второй сервер не Астериск, а некое самописное приложение.
Какими способами этом можно сделать?

У меня из идей были следующее.
1) Использование команды Monitor. Умеет ли она писать не в файл, а скажем передавать wav через запрос post по http? Самый идеальный вариант.
2) Использование конференции. На втором сервере использовать sip-клиент и при звонке создавать конференцию из трех абонентов. Но в этом случае будет миксованный поток. Можно ли как-то выделить в конференции потоки каждого абонента?


Последний раз редактировалось: m_aster (Чт Авг 09, 2012 16:00)
#2

может быть chanspy?
#3

Он тоже миксованный поток дает вроде как. Т.е. от конференции ничем не отличается.
Задача первоочередная в том, чтобы голоса абонентов разделить. Я не нашел пока кто умеет отдельно их записывать кроме Monitor.
#4

я так и не понял что нужно сделать.
думаю нужно записать 2 канала (вход и выход) и отправить после записи куда то?
я правильно понял? или же всё это нужно в реальном времени делать?

для записи двух абонентов в разные файлы можно использовать Monitor

Added after 2 minutes:

после записи можно запускать скриптик который будет делать с файлами что угодно. хоть почтой отправлять.
скажите конкретнее что нужно сделать с записью...
#5

m_aster @ Чт Авг 09, 2012 16:58 писал(а):
Он тоже миксованный поток дает вроде как. Т.е. от конференции ничем не отличается.
Задача первоочередная в том, чтобы голоса абонентов разделить. Я не нашел пока кто умеет отдельно их записывать кроме Monitor.
У ChanSpy есть параметр "o" который говорит что слушать нужно только один поток.
_________________
Slackware 13.37 - Asterisk 1.8
#6

Нужно отправлять выход и вход раздельно на другую машину в реальном времени.
#7

m_aster @ Чт Авг 09, 2012 21:24 писал(а):
Нужно отправлять выход и вход раздельно на другую машину в реальном времени.
А что мешает два ChanSpy поставить? Лень?
_________________
Slackware 13.37 - Asterisk 1.8
#8

Покажите пример, пожалуйста.
Как с помощью ChanSpy это сделать. Не очень понимаю.
#9

m_aster @ Чт Авг 09, 2012 22:09 писал(а):
Покажите пример, пожалуйста.
Как с помощью ChanSpy это сделать. Не очень понимаю.
После того как абонент дозвонился выуживаете имена каналов которые участвуют в соединении. Любым известным Вам способом создаете 2 канала(звонок на локальный канал либо ещё куда), один конец которых отправляет полученные аудио-данные куда Вам надо, а вторые попадаею в приблизительно в такой диалплан(два штуки что-бы слушать отдельно с двух сторон)
Код:
;
exten=>spyone,1,ChanSpy(${connectionparticipant1},o)
exten=>spytwo,1,ChanSpy(${connectionparticipant2},o)

_________________
Slackware 13.37 - Asterisk 1.8
#10

ОК. Спасибо.