Здравствуйте.
Благодаря помощи знающих людей у меня получилось настроить сбор внутренних и внешних номеров в конференции (номера типа 7XXXX) . Теперь же меня интересует как собрать в конференцию различной длины номера.
Т.е. я набираю номер 7ХХХХ и, например, 98XXXXXXXXXX а так же 5XX.
Пока я могу собирать 7ХХХХ, остальные номера "проходят мимо" и только абоненты с пятизначными номерами могут переговариваться и ловить приходящий вызов.
Вот решение для пятизначных номеров:
[Conference]
exten => _**XXXXX!,1,Set(Numbers=${EXTEN:1})
same => n(loop),GotoIf($["${Numbers:0:1}"!="*"]?end)
same => n(orig),Originate(OOH323/${Numbers:1:5}@avaya,exten,Conference,${CALLERID(num)},1,60)
same => n,Set(Numbers=${Numbers:6})
same => n,Goto(loop)
same => n(end),ConfBridge(${CALLERID(num)},bridge,simple)
exten => _X.,1,Wait(1)
same => n,ConfBridge(${EXTEN},bridge,simple)
Так же, у меня реализовано правило, по которому вызов одного номера идет постоянно, даже если вызов сбросили. Т.е. я звоню на номер 7ХХХХ -> не взяв трубку звонок сбрасывают (или взяли и сбросили во время разговора) -> через несколько секунд астериск начинает повторную попытку дозвона и будет так делать пока вызывающий абонент не сбросит вызов.
Точно такую же схему мне нужно реализовать и для конференций. Т.е., например, конференция состоит из номеров 70000, 70001, 89141111111 и 555. Номер 70001 вылетел (или самостоятельно положил трубку). Необходимо сделать так чтобы на этот номер тут же совершился вызов и абонент с этим номером оказался в конференц-комнате из которой вышел ранее.
Вот как это реализовано для одного номера:
[autoredial]
exten => _99.,1,Dial(OOH323/${EXTEN:2}@avaya,40,g)
exten => _99.,n,Wait(5)
exten => _99.,n,Goto(${EXTEN},1)
exten => _99.,h,Goto(${EXTEN},1)
exten => _99.,h,Goto(autoredial,s,1)
(Т.е. номер 70000 набирается через 99
9970000 -> и тогда вызов идет постоянно)
Заранее спасибо.