Страница 1 из 1

Диалплан - предварительный опрос состояния линии

Добавлено: 07 дек 2020, 10:17
bagrintsev
Коллеги, день добрый.

У меня в диалплане порядка сотни записей типа:

exten => 104,1,Dial(SIP/104,${RING60},t) ;
exten => 104,n,Hangup()
exten => 104,hint,SIP/104

Хочу чтобы предварительно происходил опрос линии и сообщалось голосом, если абонент недоступен. Для этого нужно первую строку сделать такой:

exten => 104,1,Gosub(sub-devstate,${EXTEN},1)
exten => 104,n,Dial(SIP/104,${RING60},t) ;
exten => 104,n,Hangup()
exten => 104,hint,SIP/104

Можно как-то сделать так, чтобы не переписывать каждую запись диалплана?

Что-нибудь вроде exten => _XXX ,1,Gosub(sub-devstate,${EXTEN},1)

Re: Диалплан - предварительный опрос состояния линии

Добавлено: 07 дек 2020, 10:33
BorisTheBlade
Диалплан конечно своеобразный у вас :D
Можно сделать подменой контекста так:

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

[context]
exten => _XXX,1,Gosub(sub-devstate,${EXTEN},1)
exten => _XXX,n,Goto(old-context,${EXTEN},1)
[old-context]
exten => 104,1,Gosub(sub-devstate,${EXTEN},1)
....

Re: Диалплан - предварительный опрос состояния линии

Добавлено: 07 дек 2020, 14:09
bagrintsev
Спасибо! Оригинально получилось.
Диалплан конечно своеобразный у вас :D
Можно узнать что не так делаю по вашему мнению?
Работаю один, покритиковать некому.

Да, и:
exten => _XXX,n,Dial(SIP/${EXTEN},${RING60},t) - для нас не вариант.
Приходится держать сотню записей потому, что не всегда номер совпадает с экстеном, а иногда звонок идет на группу, а также после неудачного Dial идет звонок уже на сотовый сотрудника.

Re: Диалплан - предварительный опрос состояния линии

Добавлено: 07 дек 2020, 14:27
BorisTheBlade
Можно номер, sip peer в astdb держать, если вызовы однотипные и через функцию DB вызвать из диалплана.
Но тут кому как удобнее.