Francyz
@Francyz
Photographer & SysAdmin

Asterisk синтаксис исходящих, как добавить 2 и более пира?

Приветствую, Камрады!
Помогите разобраться с синтаксисом в extensions.conf. Вот есть к примеру 4 номера, как добавить перебор номеров при исходящем звонке?
Сейчас все сделано громоздко и топорно, т.е. план выглядит вот так:
;
; extensions.conf - the Asterisk dial plan
;

[general]
static=yes
writeprotect=no

[globals]
[default]

[phones]
include => local
include => outgoing

[local]
exten => 900,1,Answer()
exten => 900,n,ConfBridge(1,confer)
exten => 900,n,Hangup()
exten => _XXX,1,Dial(SIP/${EXTEN})
exten => _XXX,n,Hangup()

[outgoing]
exten => _XXX.,1,Dial(SIP/${EXTEN}@213137,45,t)
exten => _XXX.,n,Dial(SIP/${EXTEN}@213153,45,t)
exten => _XXX.,n,Dial(SIP/${EXTEN}@213157,45,t)
exten => _XXX.,n,Dial(SIP/${EXTEN}@213158,45,t)
exten => _XXX.,n,Hangup()


Как можно исправить код, чтобы не городить кучу текста, а использовать "same". Потому что если я захочу к примеру ограничить или изменить правило для какого-нибудь межгорода по типу exten => _8495**** мне снова придется лепить это кучей друг за другом. А если номера будет не 4 исходящих а 7-10, то количество строчек увеличится.
  • Вопрос задан
  • 1471 просмотр
Решения вопроса 1
Полагаю, данный перебор нужно оформить в виде макроса.
Для меньшей топорности, запрашивайте статус канала перед набором. Если канал свободен, только тогда вызывайте Dial.

Попробуйте так, к примеру:
[outcall]
exten => s,1,NoOp(Selecting channel)
same => 2,ChanIsAvail(SIP/213137&SIP/213153&SIP/213157&SIP/213158,sj)
same => 3,Dial(${AVAILCHAN}/${ARG1},45,t)
same => 4,Hangup
same => 103,Playback(all-circuits-busy-now)
same => n,Hangup

[outgoing]
exten => _XXX.,1,Gosub(outcall,s,1(${EXTEN}))
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Можно использовать штатный FollowMe
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы