Сразу скажу, что с конференциями особого дела не имел. Сделано две простейших, где все могут говорить, управление не требуется.
Далее по теме. Может я что-то не уловил, но
trscod писал(а):И вдруг кто-то из слушающих хочет запросить чтобы ему предоставили слово.
и
ded писал(а):автоматическая модерация
немного разные вещи, а именно первое подразумевает получение разрешения от спикера.
А, если так, то задача делится на две:
1. Послать спикеру/модератору сигнал о желании высказаться.
2. Возможность модератора ответить на этот сигнал.
Со вторым мне кажется проблем не должно возникнуть, может не прав конечно, но тут я подразумеваю, что есть команды отключения/включения микрофона для конкретного участника(в CLI такие команды вроде точно есть).
Первое же дает волю воображению и делится на опять же на два подпункта:
а) Как участник может подать сигнал.
б) Как спикер/модератор этот сигнал получит/увидит/услышит.
Первое, что приходит в голову конечно DTMF, на нем можно и остановится. Т.е. при вызове какого-то DTMF что-то должно произойти и спикер/модератор должны получить информацию по этому "что-то". Что именно должно произойти понятно зависит от пункта "б", т.е. как это будет заметно.
Тут опять же варианты(что в голову пришло):
- Т.к. спикер один, то ему может выдаваться звуковое оповещение - такой-то желает высказаться. Не удобно, т.к. говорить и что-то слушать кривовато выглядит.
- Болле интересный на мой взгляд способ. Имеем у спикера/модератора BLF-панель и на в вносим кастомные HINT для каждого участника.
Далее работа по схеме:
1. Участник хочет слова - набирает DTMF код.
2. По этому коду asterisk выполняет смену статуса кастомного HINT для этого участника скажем на RINGING.
3. У спикера/модератора на панели начинает мигать кнопка участника.
4. Спикер/модератор решает, что нужно дать слово, наживает на панели эту кнопку.
5. Asterisk включает микрофон данному участнику и меняет статус скажем на BUSY - микрофон включается, лампочка краснеет. Тут изменение статуса даст возможность видеть у кого включен микрофон. Возможно также его выключать.
6. Участник высказывается.
7. Спикер/модератор нажимает кнопку для выключения микрофона.
8. Asterisk выключает микрофон, и меняет статус скажем на NOT_INUSE - микрофон выключается, лампочка зеленеет.
Конечно это только мысли и реализовать это я не пробовал, но теоретически это было бы удобно и должно работать. Естественно с правками, это ж только идея.