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

Функция, возвращающая номер свободной fxo линии

Сообщений: 65

Функция, возвращающая номер свободной fxo линии

На сервере стоит Aterisk 1.6.1.6+DAHDI -2.2.0.2. Есть пять городских телефонных линий, которые входят в порты FXO на соответствующей плате. Есть 8 телефонов в организации, которые, соответственно входят в плату с FXS портами. Требуется сделать так, что бы, допустим, один человек поднял трубку и набрал номер. Система направила этот вызов в одну из свободных телефонных линий. Если следом другой человек пытается позвонить с другого телефона, а один порт уже занят, то его направляют на другой свободный порт, итд. В случае, когда все линиии заняты человеку выдается сообщение, что пока он позвонить не может, ну или просто выдаются короткие гудки. Задачу эту решил таким образом:


exten => _X.,1,Macro(calls-dahdi-outgouing, 13, ${EXTEN})
exten => _X.,n,Macro(calls-dahdi-outgouing, 14, ${EXTEN})
exten => _X.,n,Macro(calls-dahdi-outgouing, 15, ${EXTEN})
exten => _X.,n,Macro(calls-dahdi-outgouing, 16, ${EXTEN})
exten => _X.,n,Macro(calls-dahdi-outgouing, 17, ${EXTEN})
exten => _X.,n,Congestion()

13-17 - номер линии, через которую нужно позвонить

Тоесть происходит построчный перебор. Если линия занята, то осуществляется переход на следующую строку. И в конце, если все линии заняты - слышим короткие гудки.

Вопрос: нет ли в астериске функции, которая могла бы сразу выдавать номер свободной FXO линии ?
2009-10-15 16:52

Откуда: Зеленоград
Сообщений: 446

Re: Функция, возвращающая номер свободной fxo линии

Это поддерживается изначально. В chan_dahdi.conf нужно объединить каналы в группы:

context = internal
signalling = fxs_ls
channel = 13-17
group = 1

После этого звонок нужно направлять на группу:

exten => _X.,1,Dial(DAHDI/g1/${EXTEN})

В этом случае звонок пойдет на первый свободный транк из группы.
2009-10-15 19:16

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

Девочки сверху

group=.. надо писать до определения канала, командой channel!
2009-10-15 22:22

Откуда: Зеленоград
Сообщений: 446

Re: Функция, возвращающая номер свободной fxo линии

Не факт, привожу из собственного конфига:

...
context = from_nsi
signalling = pri_cpe
channel = 13-27
group = 1

context = from_nsi
signalling = pri_cpe
channel = 29-43
group = 1
2009-10-15 22:48

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

Re: Функция, возвращающая номер свободной fxo линии

А до первой строчки небось "group=1" где-то до этого тусуется незамеченным.
2009-10-15 22:52

Откуда: Зеленоград
Сообщений: 446

Re: Функция, возвращающая номер свободной fxo линии

Только что проверил, не тусуется.
upd. Проверил повнимательнее, ys прав.

Правильный пример для топикстартера:
group = 1
context = internal
signalling = fxs_ls
channel = 13-17
2009-10-15 23:25

Сообщений: 65

Re: Функция, возвращающая номер свободной fxo линии

2 Glukinho & ys ---спасибо) работает.

Сейчас ковыряем книгу asterisk: future of technology --но там не нашли ответа на наш вопрос. Где лучше смотреть подробную справочную информацию по конфигурированию *?
2009-10-16 11:54

Avatara of svoy
Откуда: Киев
Сообщений: 1096

Re: Функция, возвращающая номер свободной fxo линии

www.voip-info.org

Само название книги разве не говорит, что это попса?
2009-10-16 12:01

Добавить страницу в закладки:  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