Страница 1 из 1
Принудительное отключение микрофона
Добавлено: 13 янв 2014, 08:31
Reader
Здравствуйте, уважаемые знатоки.
Возникла срочная тема. Начинается телефонная конференция. По плате потоков Е1 в Elastix 2.4 32bit заходят абоненты. Позвонил нач-к, потребовал, чтобы я включил нового абонента только на правах слушателя, без права голоса (сразу с отключенным микрофоном). Конференция будет начинаться ровно в 11:00. И заканчиваться примерно в 12:00. Вот бы мне написать лучше контекст в extention.conf или если не будет срабатывать - хотя бы Call-файл, который можно было бы запускать по таймеру (по Cron) и вырубать новому абоненту микрофон (скажем абонент с А-номером 1111). Понятно, что это описано в лит-те. Но уже времени нет - а нужно ! Прописать аб-та - уже прописал. Испытал. Не вопрос. Но отключить микрофон автоматически ... До этого я отключал микрофон только вручную командой Meetme mute ... Но это не то, поскольку вручную я заблаговременно перед этим смотрел - а каков порядковый номер моего подопытного участника в конференцииа только потом отключал микрофон. И каждый раз день за днём номер участника был разным. Как бы автоматич. ему отключать микрофон ?..
Re: Принудительное отключение микрофона
Добавлено: 13 янв 2014, 09:23
Aven
MeetMeAdmin()
Re: Принудительное отключение микрофона
Добавлено: 14 янв 2014, 08:36
Reader
to Aven:
Что-то запутался я с функцией MeetMeAdmin(confno,command[,user]). Как ей воспользоваться в моём случае-то ? Судя по её описанию в ней используется № конференции (это не вопрос - №78), command = mute, а точнее М - mute one user. И наконц-то наконец параметр user ... User-то у меня каждый раз разный. Сегодня абонент зашёл под одним номером, завтра - под другим. Номер участника конфеернции у моего абонента 1111 каждый день - разный. Единый у него - только А-номер "1111". Вот по нему-то и требуется сделать анализ и отключение микрофона !.. MeetMeAdmin в данном случае мне не помогает !!
Всё больше я склоняюсь к необходимости писать контекст для анализа всех попыток абонента "1111" попасть в конференцию "78". Видимо должна появиться строка где-нибудь в extention_custom.conf типа:
exten => 78/1111, ... да, а вот дальше какую функцию использовать, чтобы отключить аб-ту возможность вещать в конференцию ? Вот в чём вопрос.
Re: Принудительное отключение микрофона
Добавлено: 14 янв 2014, 09:21
Vlad1983
посмотрите на опцию "l" app_MeetMe
l - Set listen only mode (Listen only, no talking)
Re: Принудительное отключение микрофона
Добавлено: 14 янв 2014, 09:48
Reader
Всё равно не могу разобраться. Опыто-то нет вообще ...
Ну, есть у меня Application MeetMe - и как его применить-то к конкретному А-номеру, приходящему вместе с искомым участником телеконференции по DAHDI ?
El*CLI> core show application meetme
-= Info about application 'MeetMe' =-
[Synopsis]
MeetMe conference bridge.
[Description]
Enters the user into a specified MeetMe conference. If the <confno> is o
mitted, the user will be prompted to enter one. User can exit the conference
by hangup, or if the 'p' option is specified, by pressing '#'.
NOTE: The DAHDI kernel modules and a functional DAHDI timing source (see
dahdi_test) must be present for conferencing to operate properly. In addition,
the chan_dahdi channel driver must be loaded for the 'i' and 'r' options to
operate at all.
[Syntax]
MeetMe([confno][,options[,pin]])
[Arguments]
confno
The conference number
options
a: Set admin mode.
A: Set marked mode.
b: Run AGI script specified in ${MEETME_AGI_BACKGROUND} Default:
'conf-background.agi'.
NOTE: This does not work with non-DAHDI channels in the same
conference).
c: Announce user(s) count on joining a conference.
C: Continue in dialplan when kicked out of conference.
d: Dynamically add conference.
D: Dynamically add conference, prompting for a PIN.
e: Select an empty conference.
E: Select an empty pinless conference.
F: Pass DTMF through the conference.
G(x):
x - The file to playback
Play an intro announcement in conference.
i: Announce user join/leave with review.
I: Announce user join/leave without review.
l: Set listen only mode (Listen only, no talking).
m: Set initially muted.
M[(class)]: Enable music on hold when the conference has a single
caller. Optionally, specify a musiconhold class to use. If one is not
provided, it will use the channel's currently set music class, or 'de
fault'.
o: Set talker optimization - treats talkers who aren't speaking as
being muted, meaning (a) No encode is done on transmission and (b) Received
audio that is not registered as talking is omitted causing no buildup
in background noise.
p[(keys)]: Allow user to exit the conference by pressing '#' (default)
or any of the defined keys. Dial plan execution will continue at the next
priority following MeetMe. The key used is set to channel variable ${
MEETME_EXIT_KEY}.
NOTE: Option 's' has priority for '*' since it cannot change its
activation code.
P: Always prompt for the pin even if it is specified.
q: Quiet mode (don't play enter/leave sounds).
r: Record conference (records as ${MEETME_RECORDINGFILE} using format
${MEETME_RECORDINGFORMAT}. Default filename is 'meetme-conf-rec-${CON
FNO}-${UNIQUEID}' and the default format is wav.
s: Present menu (user or admin) when '*' is received (send to menu).
t: Set talk only mode. (Talk only, no listening).
T: Set talker detection (sent to manager interface and meetme list).
w[(secs)]: Wait until the marked user enters the conference.
x: Leave the conference when the last marked user leaves.
X: Allow user to exit the conference by entering a valid single digit
extension ${MEETME_EXIT_CONTEXT} or the current context if that variable
is not defined.
NOTE: Option 's' has priority for '*' since it cannot change its
activation code.
1: Do not play message when first person enters
S(x): Kick the user <x> seconds *after* he entered into the
conference.
L([x][:y[:z]]): Limit the conference to <x> ms. Play a warning when
<y> ms are left. Repeat the warning every <z> ms. The following special
variables can be used with this option:
${CONF_LIMIT_TIMEOUT_FILE}: File to play when time is up.
${CONF_LIMIT_WARNING_FILE}: File to play as warning if <y>
is defined. The default is to say the time remaining.
[See Also]
MeetMeCount(), MeetMeAdmin(), MeetMeChannelAdmin()
El*CLI>
Re: Принудительное отключение микрофона
Добавлено: 14 янв 2014, 11:20
Aven
В интернете миллион примеров, даже веб-интерфейс есть. Лень посмотреть? Я перешел на ConfBridge, так что по MeetMe искать инфу не хочу.
Re: Принудительное отключение микрофона
Добавлено: 14 янв 2014, 13:31
Reader
Ну, попробовал я в файле extension_custom.conf прописать строку
exten => 79/1111,1,MeetMe(79,M)
Ну, вошёл проверить с А-номером "1111". Сработало. Но на вырубило микрофон (mute), а почему-то сняла участника с мониторения - он получил статус Unmonitored). Что за бред ?.. Ну, полез я штудировать набор опций у команды MeetMe. Ничего более полезного не нашёл. Понравилась мне однако опция N - Mute all non-admin users in the conference. Попробовал я её внедрить - наивно посчитал, раз первой опцией Elastix отключает моего абонента из мониторинга, то следом наверное Elastix выключит ему микрофон. Для этого прописал вслед за первой командой
exten => 79/1111,1,MeetMe(79,M)
вторую команду
exten => 79/1111,1,MeetMe(79,N)
Сохранить -> Рестарт Астериск.
И запустил звонок и параллельно CLI. CLI написал, чта анмониторенье происходит, а вот мьютинг не получается. Проверил ещё раз сам себя - действительно с этого телефон "1111" всё вещается, т.е. микрофон ему Elastix не отключил. А надо бы !!! Вычеркнул первую строку из упомянутых 2х. Оставил вживых только 2ю. Запустил тест. CLI пишет, что опция N запущена. Но абонента "1111" по-прежнему слышно в конференции.
Что делать ?
Re: Принудительное отключение микрофона
Добавлено: 14 янв 2014, 15:27
Aven
Если Asterisk 10+ то используй ConfBridge
Re: Принудительное отключение микрофона
Добавлено: 14 янв 2014, 16:34
Reader
У меня Эластикс 2.4 на базе Астериск 1.8. Хорошая идея. Попробую.
Re: Принудительное отключение микрофона
Добавлено: 14 янв 2014, 17:57
SolarW
Насколько я помню в эластике 2.4 обычной командой
yum update
можно было безболезненно перейти с астериска 1.8.х до 11.х