Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

Ring group: if declined - decline all

0

Здраствуйте, Нужно сделать так, что бы asterisk прекращал звонить на всех номерах из ring group если хотябы один из номеров отменил звонок (Decline, то есть нажал красную кнопку).

Как это сделать?

Использую Freepbx + asterisk Спасибо

удалить закрыть спам изменить тег редактировать

спросил 2013-04-12 20:47:49 +0400

POMATu Gravatar POMATu
1 1 1 2

обновил 2013-04-12 21:32:07 +0400

Comments

Он и так должен прекратить звонить , если кто-то отвечает на вызов.

zzuz ( 2013-04-13 00:11:04 +0400 )редактировать

Так и происходит. Но если отбить вызов на одном, то надо что-бы отбивалось на всех, то есть прекращало звонить.

POMATu ( 2013-04-13 02:53:09 +0400 )редактировать

А , понял. Задача довольно нетривиальная. Требует знаний в сигнализации внутренних механизмов диаплана астериска и понимании структуирования каналов звонка. Думаю Вам стоит лучше смирится с тем, что этого не сделать. Альтруистов для этого вопроса Вы врятли встретите , это не шаблоны в исходящей маршрутизации сочинять.

zzuz ( 2013-04-13 12:43:20 +0400 )редактировать

3 Ответа

0

http://www.voip-info.org/wiki/view/Asterisk+cmd+Queue

Попробуйте параметр с аппликейшна Queue

c — continue in the dialplan if the callee hangs up (Asterisk 1.6.0 and above).
ссылка удалить спам редактировать

ответил 2013-04-13 15:27:16 +0400

mistral Gravatar mistral flag of Ukraine
370 2 5 19

Comments

это не то. это после ответа пойдет дальше. не уверены - проверьте перед тем как писать.

meral ( 2013-04-13 15:38:22 +0400 )редактировать
  • "на всех номерах из ring group" - читаем внимательно.
  • "if the callee hangs up" - и еще раз читаем внимательно и думаем , что произойдет с самим вызовом очереди , когда оператор покладет трубку.
zzuz ( 2013-04-13 15:40:11 +0400 )редактировать
0

Рингруппа таково вот вида

DIAL(SIP/100&SIP/101&SIP/102)

так и реагировала.

во freepbx специально боролися с этим еффектом. поменяли ли по запросу fonality это в текущих версиях астериска - не интересовалься. но, очевидно, в freepbx вы не сделаете так как вы хотите из веба. ибо это многим людям ненравилося и они его убрали. update: на 1.8/10.x неактуально.

можно сделать вот так.

[test]
exten => _600,1,Set(__CLEAR_THIS=${CHANNEL(name)})
exten => _600,n,DIAL(Local/2010@d-all-c&Local/2011@d-all-c)
[d-all-c]
exten => _X.,1,Dial(SIP/${EXTEN},,g)
exten => _X.,n,GotoIF($[ "${DIALSTATUS}" != "BUSY" ]?end)
exten => _X.,n,ChannelRedirect(${CLEAR_THIS},d-all-c,100,end)
exten => _X.,n(end),Hangup

проверено, прекрасно работает

ссылка удалить спам редактировать

ответил 2013-04-13 15:41:03 +0400

meral Gravatar meral flag of Ukraine
23347 24 20 177
http://pro-sip.net/

обновил 2013-04-13 16:19:13 +0400

Comments

Хм. Не думаю , что это работает. Можете проверить сами. Все таки SIP/100&SIP/101&SIP/102 делает параллельные вызовы. CANCEL одного канала не является веской причиной , чтобы класть все остальные. Каналы SIP/100&SIP/101&SIP/102-<id> и каланы SIP/100-<id> связаны , как потомки и родитель , но все таки разные.

zzuz ( 2013-04-13 15:50:00 +0400 )редактировать

это работало, точно знаю ;) работает ли щас - лень проверять. кстати CANCEL!!! канала со стороны called вообще невозможен если что. у меня просто щас тут нет тертьего телефона чтоб проверить.

meral ( 2013-04-13 15:52:26 +0400 )редактировать

Не , Александр , это и раньше работало не так , как Вы пишите)) я проверял. а CANCEL имеется ввиду того , что отбивает вызов , то есть один из "SIP/100&SIP/101&SIP/102" . Идея у автора впринципе интересная , и реализуемая , но обойтись без AMI и AGI у него врятли получится. И судя по постановке вопроса , как Вы видите , не посильна для него.

zzuz ( 2013-04-13 15:59:54 +0400 )редактировать

Сложность , как правильно замечено . именно в том, что по сути положить канал может оригинатор, который имеет к нему отношение. Конструктор класса звонка для пира не имеет доступа к деструктуру канала оригинатора вызова группы. Вот тут уже задача для программирования.

zzuz ( 2013-04-13 16:04:33 +0400 )редактировать

в 1.2-1.4 оно именно так и работало. ну блин, специально с ним боролися же. кучу девелоп-часов потратили. только что проверил на 10ке, выдает вот такое http://pastebin.com/33g940Qb и соответвенно не выключается(разные cuase ибо разные софтфоны).

meral ( 2013-04-13 16:07:28 +0400 )редактировать

Короче геммора тут многа)))

zzuz ( 2013-04-13 16:10:41 +0400 )редактировать

мало. я уже написал как ;)

meral ( 2013-04-13 16:19:29 +0400 )редактировать

Да. Впринципе для простых звонков работать должно.

zzuz ( 2013-04-13 16:25:47 +0400 )редактировать

не издевайтесь. я его проверил.оно не просто должно а даже работает на всех версиях с 1.4+

meral ( 2013-04-13 16:28:16 +0400 )редактировать
0

А вы помните, как раньше завершали неугодные вызовы?: снимали и тут же клали трубку, особенно автоматизированно это делали секретарши - не отводя взгляд от печатной машинки..

Он и так должен прекратить звонить , если кто-то отвечает на вызов. zzuz (Apr 13 '13)

Так и происходит. Но если отбить вызов на одном, то надо что-бы отбивалось на всех, то есть прекращало звонить. POMATu (Apr 13 '13)

ссылка удалить спам редактировать

ответил 2013-04-15 11:32:56 +0400

viktorkho Gravatar viktorkho flag of Kazakhstan
434 5 4 9

обновил 2013-04-15 11:37:59 +0400

Ваш ответ

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку

подписаться на rss ленту новостей

Статистика

Задан: 2013-04-12 20:47:49 +0400

Просмотрен: 407 раз

Обновлен: Apr 15 '13

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.