VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

настройка группы исходящих линий

Новичком считается только что прочитавший «Астериск - будущее телефонии»
http://asterisk.ru/knowledgebase/books
и пытающийся сделать большее

Модераторы: april22, Zavr2008

Аватара пользователя
bagrintsev
Сообщения: 98
Зарегистрирован: 01 дек 2015, 16:08

настройка группы исходящих линий

Сообщение bagrintsev »

Коллеги, вечер добрый.

Есть шесть входящих/исходящих номерных городских линий и кучка внутренних абонентов.
Маршрутизация входящих из города элементарна и уже настроена.
Нужно настроить исходящие, причем чтобы для исходящего звонка использовалась ЛЮБАЯ СВОБОДНАЯ линия.
Я примерно догадываюсь, что можно это сделать скриптом, проверяя каждую линию на "свободность" (какую нибудь переменную вроде dialstatus).

Где то читал, но забыл где, что линии можно объединить в группу и назначать исходящий городской звонок на эту группу, а там они в группе уже сами разберутся: кто первый свободный, тот и звонит.
Подскажите плз как это обычно делается.
ded
Сообщения: 15630
Зарегистрирован: 26 авг 2010, 19:00

Re: настройка группы исходящих линий

Сообщение ded »

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

exten => _X.,1,Dial(DAHDI/line1/${EXTEN})
exten => _X.,n,Dial(DAHDI/line2/${EXTEN})
exten => _X.,n,Dial(DAHDI/line3/${EXTEN})
exten => _X.,n,Dial(DAHDI/line4/${EXTEN})
exten => _X.,n,Dial(DAHDI/line5/${EXTEN})
exten => _X.,n,Dial(DAHDI/line6/${EXTEN})
Аватара пользователя
bagrintsev
Сообщения: 98
Зарегистрирован: 01 дек 2015, 16:08

Re: настройка группы исходящих линий

Сообщение bagrintsev »

Спасибо за ответ, ded. То что надо!

Я правильно понимаю, по умолчанию звонок ломится на 1 линию.
Если она занята, переходим ко второй линии, и так далее до последней.
В конце можно еще сообщение дать, если все линии заняты.
Аватара пользователя
Aven
Сообщения: 798
Зарегистрирован: 28 янв 2011, 16:20

Re: настройка группы исходящих линий

Сообщение Aven »

Это не совсем правильный код, нужно анализировать результат предыдущего Dial, т.к. переход на следующую строку происходит при любой ошибке дозвона, а так же по таймауту, а не только при занятости линии. Если абонент (а не линия) будет занят, то будет повторный дозвон через другую линию.
Решения телефонии на базе Asterisk || http://it-need.ru
ded
Сообщения: 15630
Зарегистрирован: 26 авг 2010, 19:00

Re: настройка группы исходящих линий

Сообщение ded »

ТС ничего не сообщил про шесть входящих/исходящих номерных городских линий - это могут быть одноканальные SIP, или аналоговые через шлюзы или карточки FXO. При которыхрезультат предыдущего Dial будет разный, в зависимости от технологии.
Поэтому ответ абстрактный, основанный на картах таро.
april22
Сообщения: 2187
Зарегистрирован: 09 июл 2012, 09:47

Re: настройка группы исходящих линий

Сообщение april22 »

Мне кажется проще один раз написать контекст, вылмзать его и использовать при любых исходящих вызовах бросая вызов просто в этот контекст .
Своими вопросами , вы загоняете меня в ГУГЛЬ.
Аватара пользователя
bagrintsev
Сообщения: 98
Зарегистрирован: 01 дек 2015, 16:08

Re: настройка группы исходящих линий

Сообщение bagrintsev »

ded
ТС ничего не сообщил про шесть входящих/исходящих номерных городских линий - это могут быть одноканальные SIP, или аналоговые через шлюзы или карточки FXO. При которыхрезультат предыдущего Dial будет разный, в зависимости от технологии.
Поэтому ответ абстрактный, основанный на картах таро.
Извините, конечно нужно было рассказать поподробнее. Cообщаю доп. инфу.

Астериск стоит 12, самый свежий, компилил из сорцов. Стоит на Ubuntu 14.04 на виртуальной машине VMware vSphere ESXi.
С помощью DAHDI от Parabel подключена железка Asteroid-1L3S на 8 входящих FXO, 22 внутренних FXS.
Входящих 5 линий номерных от Ростелекома по меди.
SIP, IAX и прочее будет настроено потом, сейчас все на голом аналоге, народ по выходу на работу не должен даже понять, что работают уже не по старой АТС-ке.

Настроил исходящие как советовал ded (удаленно, в бою пока не проверял).

Aven
Это не совсем правильный код, нужно анализировать результат предыдущего Dial, т.к. переход на следующую строку происходит при любой ошибке дозвона, а так же по таймауту, а не только при занятости линии. Если абонент (а не линия) будет занят, то будет повторный дозвон через другую линию.
Напишите плз, какие нужно делать проверки. DAHDI/8 - DAHDI/12 - это как раз телекомовские линии.

Вырезка из extensions.conf

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

;**************************
[line-analog]

ignorepat => 9

; исходящие на экстренные службы
exten => _0[1-4]!,1,Dial(DAHDI/8,3,D(${EXTEN}))
exten => _0[1-4]!,n,Dial(DAHDI/9,3,D(${EXTEN}))
exten => _0[1-4]!,n,Dial(DAHDI/10,3,D(${EXTEN}))
exten => _0[1-4]!,n,Dial(DAHDI/11,3,D(${EXTEN}))
exten => _0[1-4]!,n,Dial(DAHDI/12,3,D(${EXTEN}))
exten => _0[1-4]!,n,Congestion()
exten => _0[1-4]!,n,Hangup()

exten => _112!,1,Dial(DAHDI/8,3,D(${EXTEN}))
exten => _112!,n,Dial(DAHDI/9,3,D(${EXTEN}))
exten => _112!,n,Dial(DAHDI/10,3,D(${EXTEN}))
exten => _112!,n,Dial(DAHDI/11,3,D(${EXTEN}))
exten => _112!,n,Dial(DAHDI/12,3,D(${EXTEN}))
exten => _112!,n,Congestion()
exten => _112!,n,Hangup()

exten => _911!,1,Dial(DAHDI/8,3,D(${EXTEN}))
exten => _911!,n,Dial(DAHDI/9,3,D(${EXTEN}))
exten => _911!,n,Dial(DAHDI/10,3,D(${EXTEN}))
exten => _911!,n,Dial(DAHDI/11,3,D(${EXTEN}))
exten => _911!,n,Dial(DAHDI/12,3,D(${EXTEN}))
exten => _911!,n,Congestion()
exten => _911!,n,Hangup()

; исходящие на город (9 + шесть цифр)
exten => _9NXXXXX,1,Dial(DAHDI/8,3,D(${EXTEN:1})) ; набор городской 
exten => _9NXXXXX,n,Dial(DAHDI/9,3,D(${EXTEN:1})) ; набор городской 
exten => _9NXXXXX,n,Dial(DAHDI/10,3,D(${EXTEN:1})) ; набор городской 
exten => _9NXXXXX,n,Dial(DAHDI/11,3,D(${EXTEN:1})) ; набор городской 
exten => _9NXXXXX,n,Dial(DAHDI/12,3,D(${EXTEN:1})) ; набор городской 
exten => _9NXXXXX,n,Congestion() ; 
exten => _9NXXXXX,n,Hangup() ; 

; исходящие на сотовые 
exten => _989XXXXXXXXX,1,Dial(DAHDI/8,3,D(${EXTEN:1})) ; сотовые операторы. 92х,93х - мегафон, 91х, 98х - мтс, 96х - билайн 
exten => _989XXXXXXXXX,n,Dial(DAHDI/9,3,D(${EXTEN:1})) ; сотовые операторы. 92х,93х - мегафон, 91х, 98х - мтс, 96х - билайн 
exten => _989XXXXXXXXX,n,Dial(DAHDI/10,3,D(${EXTEN:1})) ; сотовые операторы. 92х,93х - мегафон, 91х, 98х - мтс, 96х - билайн 
exten => _989XXXXXXXXX,n,Dial(DAHDI/11,3,D(${EXTEN:1})) ; сотовые операторы. 92х,93х - мегафон, 91х, 98х - мтс, 96х - билайн 
exten => _989XXXXXXXXX,n,Dial(DAHDI/12,3,D(${EXTEN:1})) ; сотовые операторы. 92х,93х - мегафон, 91х, 98х - мтс, 96х - билайн 
exten => _989XXXXXXXXX,n,Congestion() ;  
exten => _989XXXXXXXXX,n,Hangup() ;  

; исходящие на все остальное (потом лучше наверное прикрыть от греха подальше). 
exten => _9.,1,Dial(DAHDI/8,3,D(${EXTEN:1})) 
exten => _9.,n,Dial(DAHDI/9,3,D(${EXTEN:1})) 
exten => _9.,n,Dial(DAHDI/10,3,D(${EXTEN:1})) 
exten => _9.,n,Dial(DAHDI/11,3,D(${EXTEN:1})) 
exten => _9.,n,Dial(DAHDI/12,3,D(${EXTEN:1})) 
exten => _9,n,Congestion()
exten => _9,n,Hangup()
  
; внутренние звонки между абонентами конторы
exten => 100,1,Dial(${100-DIRECTOR},20,tm(${MUSIK-MY}))  ;    опция t - безусловный перевод по #  
exten => 101,1,Dial(${101-SECRETAR},20,tm(${MUSIK-MY}))  ;   
exten => 102,1,Dial(${102-GLAVBUH},20,tm(${MUSIK-MY}))  ;   
exten => 103,1,Dial(${103-BUH},20,tm(${MUSIK-MY}))  ;   
exten => 104,1,Dial(${104-ZAVSKLAD},20,tm(${MUSIK-MY}))  ;   
exten => 105,1,Dial(${105-TEHDIR},20,tm(${MUSIK-MY}))  ;   
exten => 106,1,Dial(${106-SB},20,tm(${MUSIK-MY}))  ;   
exten => 107,1,Dial(${107-PTO},20,tm(${MUSIK-MY}))  ;   
exten => 108,1,Dial(${108-ZAMDIR},20,tm(${MUSIK-MY}))  ;   
exten => 109,1,Dial(${109-ZAMGLAVBUH},20,tm(${MUSIK-MY}))  ;   
exten => 110,1,Dial(${110-KADRY},20,tm(${MUSIK-MY}))  ;   
exten => 111,1,Dial(${111-GUARD},20,tm(${MUSIK-MY}))  ;   
exten => 112,1,Dial(${112-IT},20,tm(${MUSIK-MY}))  ;   
exten => 113,1,Dial(${113-GLAVMEH},20,tm(${MUSIK-MY}))  ;   
exten => 114,1,Dial(${114-PROMBAZA},20,tm(${MUSIK-MY}))  ;   
exten => 115,1,Dial(${115-ZNAKI},20,tm(${MUSIK-MY}))  ;   
; не подключенные пока линии
;exten => 116,1,Dial(DAHDI/25,20,tm(${MUSIK-MY}))  ;   
;exten => 117,1,Dial(DAHDI/26,20,tm(${MUSIK-MY}))  ;   
;exten => 118,1,Dial(DAHDI/27,20,tm(${MUSIK-MY}))  ;   
;exten => 119,1,Dial(DAHDI/28,20,tm(${MUSIK-MY}))  ;   
;exten => 120,1,Dial(DAHDI/29,20,tm(${MUSIK-MY}))  ;   
;exten => 121,1,Dial(DAHDI/30,20,tm(${MUSIK-MY}))  ;   
ded
Сообщения: 15630
Зарегистрирован: 26 авг 2010, 19:00

Re: настройка группы исходящих линий

Сообщение ded »

1) Не стоит использовать синтаксис

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

 exten => _0[1-4]! 
- старое наследие, использовалось в старом AsteriskNOW, хотя, конечно, работает и так.
exten => _0[1-4]XXXXX - определённой значности, лучше.
2) Проверки:
Делаете тестовый
exten => 234567,1,Dial(DAHDI/8,3,D(${EXTEN})) ; (где 2345678 - ваш домашний номер телефона)
Набираете его с работы (и смотрите в CLI)
Говорите жене - "Дорогая, повиси так на трубке, мне надо кое-что потестировать
и набираете телефон дрруга (!) с другого рабочего телефона, смотрите код отлупа (тестируем занятость гор. линии на Астероиде).
Для сравнения - потом просите жену из дома позвонить подруге, и повисеть минуты 2-3, поговорить за жизнь.
При этом набираете опять же свой дом. номер с работы и смотрите код отлупа.

При правильной постановке дела в первом тесте должен уйти на следующий шаг
exten => _0[1-4]!,n,Dial(DAHDI/9,3,D(${EXTEN}))

При неправильной постановке дела звонок уйдёт на второй-третий-четвёртый при втором тесте.
Аватара пользователя
bagrintsev
Сообщения: 98
Зарегистрирован: 01 дек 2015, 16:08

Re: настройка группы исходящих линий

Сообщение bagrintsev »

Сижу вот форум от нечего делать перечитываю.
Похоже, не я первый на эту граблю наступил.
Вот, например: Проверка доступности канала
Или вот: ChanIsAvail.
И ни одного законченного ответа.
Очень странно, тема про исходящие должны быть вроде как основной в телефонии.
Аватара пользователя
bagrintsev
Сообщения: 98
Зарегистрирован: 01 дек 2015, 16:08

Re: настройка группы исходящих линий

Сообщение bagrintsev »

спасибо, ded, попробую!

Про _0[1-4]! - дельное замечание, косяк в безопасности.
Ответить
© 2008 — 2025 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH