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

Как кикнуть назойливого абонента из конференции ?

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

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

Аватара пользователя
Reader
Сообщения: 152
Зарегистрирован: 24 апр 2013, 10:35

Как кикнуть назойливого абонента из конференции ?

Сообщение Reader »

Здравствуйте, уважаемые господа эксперты.
Имеется "Elastix 2.4.0 32bit", имеется необходимость собирать каждый день в одно и то же время телефонную конференцию из одних и тех же участников по одной и той же проблематике с автоматическим обзвоном и приглашением каждого участника (кстати, успешно реализовано). Так вот. С одним и тем же абонентом неделя за неделей стала повторяться одна и та же проблема. Абонент-участник телеконференции 1 ... 2 раза в неделю получает задание и направляется в командировку по городу. Берёт свой мобильный, а со своего служебного телефона (стационарного, который прописан в телеконференции) ставит переадресацию на мобильный и с раннего утра уезжает в командировку по городу. Так вот, перед началом конференции "Elastix" звонит в том числе этому абоненту и приглашает его в конференцию и проключает его туда. А чаще всего в это время срабатывет переадресация на мобильный,а там частенько отвечает другой автоответчик "В настоящее время абонент недоступен или находится вне зоны действия сети". Самое неприятное, что автоответчик повторяет и повторяет эту фразу. Раз за разом (каждый раз всё громче, но это имхо). И вся конференция хором слушает весь этот бред минутами !.. Я предложил абоненту не устанавливать переадресацию на мобильный - он ничего не желает слушать. Предложил каждое утро входить в конф. самостоят. - ничего не желает слушать - подавай ему приглашение и проключение каждое утро. Теперь вместо того, чтобы решать текущие задачки я вынужден каждый день по 15 мин. мониторить телеконференцию и выпинывать его их конференции командой "meetme kick 78 19" из CLI. Где "19" - это конкретный его номер (каждый день меняется) в конференции "78". Но это его текущий номер. А так его А-номер "1999". "Выдёргивается" он средствами "Elastix" в конференцию с TDM PBX по потоку E1. В нормальном состоянии качество - идеальное (работает эходав). Но вот беда - все автоответчики (а они бывают каждую неделю) также громко и чётко транслируются на всё предприятие !.. Вопрос - как бы его выпинывать (kick) из конференции средствами "Asterisk" автоматически.
Когда начал курить эту проблему - обнаружил, что он вообще никогда сам в конференции не выступает. Говорил с его начальством - оказывается он он в конференции впринципе не имеет права голоса (только право слушать - но слушать обязательно, ибо выполняет функции, тесно зависящие от решений спикеров конференции). У него даже специальный аппарат стоит с кнопочкой "Mute", которую он усердно всегда жмёт в конференции ... У меня есть крошечный опыт написания строк в Cron. Вот думаю написать бы такую строку, чтоб вычисляла его по А-номеру и кикала. А проверку учиняла только во время конференции с интервалом в 10 сек. А спустя скажем полчаса после начала конфы сама дезактивизировалась. Чтобы проверяла конфу на наличие участника по признакам "Caller Number = 1999", "Confno = 78", "talking". А как это прописать командами - пока не соображу ...
Уж лучше колымить в Гондурасе, чем гондурасить на Колыме !
awsswa
Сообщения: 2390
Зарегистрирован: 09 июн 2012, 10:52
Откуда: Россия, Пермь skype: yarick_perm

Re: Как кикнуть назойливого абонента из конференции ?

Сообщение awsswa »

конференция с помощью meetme собираете ?
в meetme можно mute сделать на абонента
платный суппорт по мере возможностей
Аватара пользователя
Reader
Сообщения: 152
Зарегистрирован: 24 апр 2013, 10:35

Re: Как кикнуть назойливого абонента из конференции ?

Сообщение Reader »

Да, собираю с помощью MeetMe:
В опред. время Cron запускает call-file, который в свою очередь ссылкается на некий контекст, в котором содержится в частности строка:
exten => 78,n,MeetMe(77,oTqsr,)
По поводу "mute" мне приходила в голову такая идея. Да, Вы правы, нужно поставить "mute" при входе только конкретному абоненту "1999" в конференцию, и дальше хоть трава не расти. Так я и сделаю.
Но мне бы всё-таки сделать ещё один вариантик более жёсткий. Чтобы "Kick". Сложно объяснить зачем ... Словом однажды (не так давно) на попытку Системы пригласить абонентика в конференцию ответила некая дама преклонных лет и понесла на всё предприятие какие-то свои эмоции. "Mute" конечно погасит эти эмоции, но дама-то будет всё слышать ... Вот от чего бы уберечься !
Понятно, что и это не панацея. Следующим номером программы буду продумывать запрашивать код подтверждения у конкретного этого абонента, чтобы почистить слушателей от всякой нечисти ... Не знаю, может это слишком ...
А "Kick"-то бы очень не помешал. Нарушил конвенцию - долой !
Уж лучше колымить в Гондурасе, чем гондурасить на Колыме !
Аватара пользователя
zzuz
Сообщения: 1658
Зарегистрирован: 21 сен 2010, 13:33
Контактная информация:

Re: Как кикнуть назойливого абонента из конференции ?

Сообщение zzuz »

И что мешает выполнять ?

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

[features-supervisor]
exten => _XX*XXXX,1,Noop()
exten => _XX*XXXX,n,MeetMeAdmin(${CUT(EXTEN,*,1)},k,${CUT(EXTEN,*,2)})
где первая часть до * это номер конференции , а вторая нужный номер
Линия24 - Системы Массового Телефонного Обслуживания
Repz
Сообщения: 169
Зарегистрирован: 04 мар 2015, 11:35

Re: Как кикнуть назойливого абонента из конференции ?

Сообщение Repz »

Прикольный костылинг задумали. ;)
Пробрасывайте своим call-file не сразу в конференцию, а в контекст где просите абонента нажать пару кнопок, если нажал - молодец, иди в конференцию и молчи там себе потихоньку)
Аватара пользователя
Reader
Сообщения: 152
Зарегистрирован: 24 апр 2013, 10:35

Re: Как кикнуть назойливого абонента из конференции ?

Сообщение Reader »

to Zzuz:
Т.е. Вы предлагаете шарахнуть автопробегом по бездорожью и разгильдяйству:
[features-supervisor]
exten => _78/1999,1,Noop()
exten => _78/1999,n,MeetMeAdmin(78,k,1999)
Кстати, правильно ли я указал формат команд ?
А то мне показалось, что А-номер "1999" в параметрах команды указывать бесполезно - ибо наверное нужно указывать № пользователя в конференции, а не А-номер. А А-номер может быть непредсказуем ... "Confno" кажется он называется ...
Просто мне в Вашем контексте непонятно - зачем набираемый номер записывать через _XX*XXXX ?
В моём конкретном случае речь идёт просто об 1м и том же из месяца в месяц абоненте ...
Но не стоит его сходу выгонять из конференции просто за то что у него А-номер "1999". Суть задачи в том, чтобы запустить его в конф. и наблюдать за его состоянием (и только за его). Если он в состоянии "not talking" - вобщем-то нехай слушает коль ему по должности положено. А вот ежели как только он "talking" - сразу "kick" ему со всего размаху ...
... Со всего размаху - это жеж как-то в Cron необходимо периодическую проверку учинять ! А я вот даже близко не представляю себе алгоритма прописки в Сron'e такого запроса на проверку "talking" - "not talking" ... Вот бы чего подсказать ... Что вообще за переменная отвечает за характеристику абонента в конференции "talking" ?
Последний раз редактировалось Reader 03 апр 2015, 12:14, всего редактировалось 1 раз.
Уж лучше колымить в Гондурасе, чем гондурасить на Колыме !
ded
Сообщения: 15631
Зарегистрирован: 26 авг 2010, 19:00

Re: Как кикнуть назойливого абонента из конференции ?

Сообщение ded »

Костылинг! Модификатор спикинг/талкинг/ноталкинг! :)
Кайф!
Аватара пользователя
zzuz
Сообщения: 1658
Зарегистрирован: 21 сен 2010, 13:33
Контактная информация:

Re: Как кикнуть назойливого абонента из конференции ?

Сообщение zzuz »

Блин , автор - слепой философ . Какая прелесть .
Линия24 - Системы Массового Телефонного Обслуживания
Аватара пользователя
zzuz
Сообщения: 1658
Зарегистрирован: 21 сен 2010, 13:33
Контактная информация:

Re: Как кикнуть назойливого абонента из конференции ?

Сообщение zzuz »

Кстати, правильно ли я указал формат команд ?
Я указал пример и разжевал его . Если хотите делать по своему - делайте , не нужно тогда спамить .
Линия24 - Системы Массового Телефонного Обслуживания
Аватара пользователя
Reader
Сообщения: 152
Зарегистрирован: 24 апр 2013, 10:35

Re: Как кикнуть назойливого абонента из конференции ?

Сообщение Reader »

Чего-т. я запутался. Хорошо было бы отысать - как вообще называется параметр абонента в конференции "talking" - "not talking". Ибо здесь это - ключевое в проверке ... Есть конечно и неудобства. Допустим если Cron'ом шарашить проверку каждые 10 сек. - проверка может показать, что аб-т "not talking", хотя он просто прервался, а на самом деле он через секунду продолжает диктовать что "Абонент возможно находится вне зоны действия сети". Но это мелочи. Вот что бы почитать, чтобы отыскать название упомянутого параметра ? Ибо
core show help MeetMe оказался через чур краток:
meetme kick Kick a conference or a user in a conference.
meetme list List all conferences or a specific conference.
meetme {lock|unlock} Lock or unlock a conference to new users.
meetme {mute|unmute} Mute or unmute a conference or a user in a conference.
Уж лучше колымить в Гондурасе, чем гондурасить на Колыме !
Ответить
© 2008 — 2025 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH