Вход | Регистрация
Вы здесь: Главная / Форум / Главный форум по Asterisk / Конфигурация и настройка / Проблема многоканальности в софтфонах, call-limit

Проблема многоканальности в софтфонах, call-limit

<1 2
Сообщений: 26

Re: Проблема многоканальности в софтфонах, call-limit

обнаружил что моя реализация группового вызова в корне не правильная, т.е. если у меня описаны например правила:
exten => 201,1,SetGroup(Gr${EXTEN})
exten => 201,n,GotoIf($[${GROUP_COUNT(Gr${EXTEN})}>1]?20:10)

exten => 201,10,Dial(SIP/${EXTEN},30,rTtgj)
exten => 201,n,Goto(endcall,s,1)

exten => 201,20,Playback(add-on/number-busy)
exten => 201,n,Goto(endcall,s,1)
-----------------------------------
exten => 202,1,SetGroup(Gr${EXTEN})
exten => 202,n,GotoIf($[${GROUP_COUNT(Gr${EXTEN})}>1]?20:10)

exten => 202,10,Dial(SIP/${EXTEN},30,rTtgj)
exten => 202,n,Goto(endcall,s,1)

exten => 202,20,Playback(add-on/number-busy)
exten => 202,n,Goto(endcall,s,1)

и происходит вызов например на номер **222 такого плана:
exten => **222,1,Dial(SIP/201&SIP/202,,)

то * просто направляет звонок на телефон, а описанные правила для 201 и 202 не отрабатываются, они работают только в том случае если будет сделан вызов конкретно на 201 или 202.
Как реализовать отработку описанных правил для такого вызова?
Помогите советом.
2006-07-04 11:21

Откуда: Санкт-Петербург
Сообщений: 203

Re: Проблема многоканальности в софтфонах, call-limit

1. Почему такая каша в приоритетах?
Посмотрите примеры, как использовать n(ext) приоритеты с метками для переходов:
http://voip.rus.net/tiki-index.php?page=Asterisk+Priorities


2. почему в групповом вызове вы не хотите использовать local channel?
http://voip.rus.net/tiki-index.php?page=Asterisk+Local+channels
2006-07-04 12:49

Откуда: Киев
Сообщений: 749

Re: Проблема многоканальности в софтфонах, call-limit

toda tak
dial(local/201@mycontext&local/202@mycontext&local/203@mycontext)
не устраивает - перепиши chаn_sip ;)
2006-07-04 12:56

Сообщений: 26

Re: Проблема многоканальности в софтфонах, call-limit

начало вроде получаться :)
спасибо за наводку в сторону local channel, сам не додумался что это то что и надо :)
с приоритетами разберусь, сам путаюсь :)
всем спасибо, надеюсь дальше будет все ок :)
2006-07-04 13:51

Сообщений: 26

Re: Проблема многоканальности в софтфонах, call-limit

мда...
недолго песенка играла..
по пунктам:
1. При звонке на группу телефон звонит у всех, все ок, но после поднятия трубки кемто из группы, у всех остальных телефон продолжает звонить.
2. Тот кто сделал звонок на группу - кладет у себя трубку, телефоны группы все равно продолжают звонить.
3. Так и не получилось запретить входящий звонок на члена группы если он делает исходящий звонок.
вот текущие конфиги:
звонок на группу:
exten => **222,n,Dial(LOCAL/201&LOCAL/202&LOCAL/203,,rTtgj)

сипы (все описаны одинаково):
exten => 201,1,SetGroup(Gr${EXTEN})
exten => 201,n,GotoIf($[${GROUP_COUNT(Gr${EXTEN})}>1]?endcall:mainrules)

exten => 201,n(mainrules),Goto(mainrules,${EXTEN},1)

exten => 201,n(endcall),Goto(endcall,s,1)

основной обработчик:
[mainrules]
exten => _...,1,GotoIf($["${CALLERIDNUM:0:2}" = "**]?gorod:inter)

;Номера начинаются с ** - звонок с внешней городской линии, либо на группу
exten => _...,n(gorod),Dial(SIP/${EXTEN},30,rTtg)
exten => _...,n,Goto(endcall,s,1)

;Остальные, внутренние
exten => _...,n(inter),Answer()
exten => _...,n,Dial(SIP/${EXTEN},30,rmTtg)
exten => _...,n,Goto(endcall,s,1)

вчем ошибка понять не могу :(
2006-07-05 08:54

Сообщений: 26

Re: Проблема многоканальности в софтфонах, call-limit

уточнение:
если инициатор звонка прекращает вызов группы, то вызов всетаки прекращается, но не у всех, а у одного единственного с разной вероятностью. Вероятность распределяется примерно так: 90% у того кто стоит первым в групповом Диал, 9% у второго, 0.9 у третьего и т.д.
ниче не понимаю :(
как с этим бороться?
2006-07-05 11:10

Сообщений: 26

Re: Проблема многоканальности в софтфонах, call-limit

с не правильным прекращением вызова разобрался, глючил астериск.
переустановка решила эту проблему.
зато появилась другая трабла: не обнуляется счетчик группы при групповом звонке после завершения вызова. Инструкция SetGroup(Gr${EXTEN}) каждый раз увеличивает счетчик на единицу если используется Dial(LOCAL/201&LOCAL/202&LOCAL/203.....), счетчик растет у всех, и утого кто ответил на вызов и кто не отвечал. Соответсвенно GotoIf($[${GROUP_COUNT(Gr${EXTEN})}>1?..:..] работает только до первого вызова, а потом надо ставить >2, >3 и т.д.
В чем может быть проблема?
Так и не удалось запретить входящий звонок на телефон если с него делается исходящий.
Есть идеи?

P.s. Заметил глюк * на версиях 1.2.5 и 1.2.7 (возможно и на всех более старших), на 1.2.9.1 уже исправлено.
Суть такая: команда Диал сбрасывает значения всех локальных переменных, т.е.:
exten => 1,1,NoOp(${EXTEN}) - выведет единицу
exten => 1,2,Dial(${EXTEN})
exten => 1,3,NoOp(${EXTEN}) - не выведет уже ничего, ${EXTEN} - пустой.

Попытки написать что то типа Set(old_exten=${EXTEN}) до Диал, и попробовать посмотреть значение переменной после Диал, показывают что в old_exten тоже уже пусто.
2006-07-06 08:26

Avatara of litnimax
Откуда: Москва
Сообщений: 3421

Re: Проблема многоканальности в софтфонах, call-limit

Так и не удалось запретить входящий звонок на телефон если с него делается исходящий.
Есть идеи?
Храни в DB статус телефона. Перед исходящим звонком ставь Set(DB(ontalk/${CALLERID(num)}=1)).
После звонка ставь =0. (Используй флаг g для Dial).
При входящем звонке смотри значение ontalk для EXTEN.
Все просто :cool:
http://pbxware.ru - все для Asterisk! || Switchvox - сделано на Asterisk! Подробности на http://switchvox.ru
2006-07-10 13:12

<1 2
Добавить страницу в закладки:  Delicious Google Slashdot Yahoo Yandex.ru Reddit Digg Technorati Bobrdobr.ru Newsland.ru Smi2.ru Rumarkz.ru Vaau.ru Memori.ru Rucity.com Moemesto.ru News2.ru Mister-Wong.ru Myscoop.ru 100zakladok.ru