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

call froward на внешние и внутренние номера

подскажите в ту ли сторону я пробую это реализовать
1 2>
Сообщений: 17

call froward на внешние и внутренние номера

Добрый день!

Пробую сделать безусловную переадресацию. Возник вопрос с тем чтобы переадресовывать звонки не только на внутренние номера но и на внешние.
Пробую делать так:

exten => 1002,1,Verbose(1|Extension 1002)
exten => 1002,n,Macro(stdexten,1002)
exten => 1002,n,Hangup()

exten => _*21*X.,1,Set(DB(CFIM/${CALLERID(num)})={EXTEN:4})
exten => _*21*X.,2,Hangup
exten => #21#,1,Set(temp=${DB_DELETE(CFIM/${CALLERID(num)})})
exten => #21#,2,Hangup

[macro-stdexten]
exten => s,1,Set(temp=${DB(CFIM/${ARG1})}) ; Get CFIM key, if not existing, goto 102
exten => s,n,Set(trunkk=${IF($[${LEN(${temp})} < 5]?SIP:SIPNET)}) ;тут в зависимости от длины присваивает в переменную trunk - SIP или SIPNET
exten => s,n,Dial(${trunkk}/${temp},30,Tt)
exten => s,n,Hangup


но что то мне кажется что так неправильно если мне понадобится еще чтобы через IP телефонию пускать то условий в макросе может быть довольно много
кто нибудь делал подобное, как правильно делать форвард на разные номера в зависимости от длины и содержимого номера?
2009-04-16 08:38

Avatara of switch
Откуда: Уфа
Сообщений: 5856

Re: call froward на внешние и внутренние номера

нужно выбирать маршруты не в macro-stdexten, а сделать отдельный контекст для обработки исходящих вызовов.
или поставить триксбокс и не мучаться...
http://www.lynks.ru - Решения телефонии, мини-АТС, VoIP на основе Trixbox и Asterisk
2009-04-16 08:57

Откуда: г. Хабаровск
Сообщений: 23

Re: call froward на внешние и внутренние номера

У меня все примитивно, если номер не более 5 символов - это внутренний номер
если больше 5 цифр - звонок идет через голосовой шлюз
если в начале набирается * - звонок через сипнет.


[soit3057хх];Контекст вида soit3057хх - для каждой линии PSTN, т.е. название отдела+номер
;=================================================================
;======================= Звонки через шлюз =======================
exten => _XXXXX.,1,Dial(SIP/${EXTEN}@3057хх,60,tTW);3057хх-название транка
include => out


[out]
;=================================================================
;================ Звонки через сипнет ============================
exten => _*XXXXX.,1,Dial(SIP/${EXTEN:1}@sipnet,60,tTm)
include => internal

[internal]
;=================================================================
;================= Звонки по внутренней сети =====================
;=================================================================

exten => 000,1,Macro(ring,000,SIP/000)


2009-04-16 09:57

Сообщений: 17

Re: call froward на внешние и внутренние номера

Мужики, может я плохо вас понимаю либо плохо объяснил.
Мне нужно чтобы работал "форвардинг" звонков в зависимости от номера который пользователь забил. Как в "форвардинге" прописать чтобы он выбирал маршрут?

Отдельные контексты будут работать если просто звонят на внешний либо внутренний номер.
А как сделать чтобы когда звонили например на 1002 (а там пользователь вбил "форвард" на +79139112222) звонок пошел на внешний транк?
2009-04-16 13:51

Сообщений: 1573

Re: call froward на внешние и внутренние номера

Algor:

а там пользователь вбил "форвард" на +79139112222
Где - там?

Вообще вариантов - море ... Все ограничивается только вашими знаниями *

А для помощи просто правильно сформулируйте, что вы хотите сделать ...
2009-04-16 13:55

Сообщений: 17

Re: call froward на внешние и внутренние номера

cron333:

Где - там?
Вот тут пользователь вбивает номер на который должен идти форвард - *21*89139112222 (у меня в коде еще есть ошибки, прошу сильно не пинать, только во всем разбираюсь)
exten => _*21*X.,1,Set(DB(CFIM/${CALLERID(num)})={EXTEN})

Вот тут при звонке на 1002 идет форвард (у меня в коде еще есть ошибки, прошу сильно не пинать, только во всем разбираюсь)
[macro-stdexten]
exten => s,1,Set(temp=${DB(CFIM/${ARG1})}) ; Get CFIM key, if not existing, goto 102
exten => s,n,Set(trunkk=${IF($[${LEN(${temp})} < 5]?SIP:SIPNET)}) ;тут в зависимости от длины присваивает в переменную trunk - SIP или SIPNET
exten => s,n,Dial(${trunkk}/${temp},30,Tt)
2009-04-16 14:00

Сообщений: 1573

Re: call froward на внешние и внутренние номера

exten => _*21*X.,1,Set(DB(CFIM/${CALLERID(num)})={EXTEN:4})

пропустили :4 ...


ну так, а что пугает? Все вроде бы - правильно ... )

Единственное, что если эта переменная (в базе) будет пустая, то вызов просто не состоится ... (а то у вас написано: Get CFIM key, if not existing, goto 102) Если нужно, что бы вызов в случае пустой переменной шел на набранный екстен, то нужно добавить еще одну проверку ...
2009-04-16 14:14

Сообщений: 17

Re: call froward на внешние и внутренние номера

Да фиг с ошибками, пусть будут, потом в процессе отладки разберусь.
Меня интересует вопрос что т.к. планируется звонить по городским номерам, по межгороду, по ИП-телефонии и может быть еще как то, то чтобы делать различные пути придется вставлять кучу условий подобной этой:
exten => s,n,Set(trunkk=${IF($[${LEN(${temp})} < 5]?SIP:SIPNET)})

И может быть есть другой способ, более красивый/правильный как делать подобную маршрутизацию?
2009-04-16 14:22

Сообщений: 1573

Re: call froward на внешние и внутренние номера

ну к примеру, так:

exten => s,1,Set(temp=${DB(CFIM/${ARG1})})
exten => s,n,GotoIF($["${temp}" = ""]?102)
exten => s,n,Goto(call-out,${temp},1)
exten => s,102,Dial(SIP/${ARG1},30,tT); здесь вызов, в случае пустого значения в базе пойдет на набранный екстен (1002)

[call-out]
exten => _X....

и в этом контексте расписал бы как и на какие номера звонить ...
2009-04-16 14:30

Сообщений: 17

Re: call froward на внешние и внутренние номера

Спасибо большое всем откликнувшимся! Особенно cron333!

Сейчас прочитал на странице что означает канал Local в приложении Dial
http://voip.rus.net/tiki-index.php?page=Asterisk+Local+channels

Надо в писать Dial(Local/${temp}@context), а уже в самом context расписать что куда.
Либо как написал cron333.
2009-04-16 14:42

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