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

Помогите с Callthrough

Добавлено: 22 апр 2012, 02:52
scherkhan
Помогите пожалуйста в настройке Callthrough.

Постараюсь объяснить внятней. Звонки поступают с немецкого мобильного номера.
Имеется несколько сип-транков для разных направлений. все правила для локальных пиров прописаны уже в extensions.conf. т.е.


при наборе 0[2-8]X. набор чере trank1 (местная сип-линия)
при наборе 01X. набор через донгл
при наборе [23]XXXXXX набор через алматинского провайдера
при наборе 007[48]XXXXXXXXX набор через trank2
при наборе 79XXXXXXXXX набор через мультифон

и т.д., смотря куда звоним

т.е для локальных пиров все прописано и работает. вот теперь хочу настроить Callthrough, чтоб дозваниваться на определенный номер, вводить пин, далее номер телефона и #. но чтобы не был привязан к конкретному транку, а поддавался правилам конфига, как локальные.

благодарен за любую помощь!

Re: Помогите с Callthrough

Добавлено: 22 апр 2012, 08:07
Vlad1983

Re: Помогите с Callthrough

Добавлено: 22 апр 2012, 12:22
ded
scherkhan писал(а): вот теперь хочу настроить Callthrough, чтоб дозваниваться на определенный номер, вводить пин, далее номер телефона и #.
Это называется DISA - Dial-In System Access or Direct Inward System Access(Прямой доступ к ресурсам системы) а не Callthrough.
Функция "Прямой доступ к ресурсам системы (DISA)" позволяет внешним абонентам получать доступ к требуемым адресатам УАТС без помощи оператора. Вызывающие абоненты могут прослушать OGM DISA, информирующее о различных номерах, которые необходимо набрать для установления соединения с требуемым абонентом или отделом (Например - "Наберите PIN!". Кроме того, DISA может обеспечить доступ пользователей АТС к различным функциям УАТС, например, выполнению вызовов по внешней линии.
Входящий маршрут с номера DID доступа направляется в сценарий DISA. Это может быть как аналоговый шлюз, так и цифровая линия, или DID поданый по SIP.

Re: Помогите с Callthrough

Добавлено: 22 апр 2012, 12:42
scherkhan
Спасибо за помощь!

Я не знал, как правильно назвать эту функцию. На данный момент пользуюсь этой функцией на роутере Fritz!Box, и она в нем так называется. В боксе эта фича работает отлично, но ограничена только одной линией, а мне, как всегда мало. хочется большего и расширенного функционала.

Еще раз спасибо, буду пытаться.

Re: Помогите с Callthrough

Добавлено: 22 апр 2012, 12:46
ded
Для шлюза Callthrough название верное, входящий звонок типа насквозь пробрасывает. А функционал DISA относится к АТС (РВХ), поэтому - если пробрасываем входящий из шлюза с помощью Callthrough насквозь в Астериск, то обрабатываем его там с помощью DISA.

Re: Помогите с Callthrough

Добавлено: 22 апр 2012, 19:38
scherkhan
запустил так:

[incomig]
exten => ${SIP2},1,GotoIf($[${CALLERID(num)} = 0176344ххххх]?verno:neverno);анализ CID
exten => ${SIP2},n(verno),Answer()
exten => ${SIP2},n,DISA(1234,disa)
exten => ${SIP2},n,Hangup()
exten => ${SIP2},n(neverno),Dial(${FRITZ},30)
exten => ${SIP2},n,Hangup()

[disa]
; включил все контексты, которыми хочу пользоваться
include => internal
include => out-international
include => out-almaty
include => out-multifon

сейчас набираю на мобильном 0301111111111p1234#номер желаемого телефона. все работает.

хотел спросить, можно ли еще улучшить и/или обезопасить этот диалплан?

Re: Помогите с Callthrough

Добавлено: 22 апр 2012, 23:38
ded
[incomig]
exten => ${SIP2}/0176344ххххх,1,Answer()
exten => ${SIP2}/0176344ххххх,n,DISA(1234,disa)
exten => ${SIP2}/0176344ххххх,n,Hangup()

exten => ${SIP2},1,Dial(${FRITZ},30)
exten => ${SIP2},n,Hangup()

Re: Помогите с Callthrough

Добавлено: 23 апр 2012, 00:56
scherkhan
to ded

Спасибо большое! все отлично работает!!! данный вариант меня спас в еще в другом случае.... у меня висят несколько транков германии, на одном номер определяется в формате +49176..... , на других 0176, т.е. без знака плюса и кода страны. если использую CallerID на том, у которого местный формат:

exten => ${SIP2},1,GotoIf($[${CALLERID(num)} = 0176344ххххх]?verno:neverno)

отрабатывает нормально. Но если для другого оператора, который передает номер с плюсом и кодом страны:

exten => ${SIP2},1,GotoIf($[${CALLERID(num)} = +49176344ххххх]?verno:neverno)

то астериск жалуется на знак плюса:

WARNING[3425]: ast_expr2.fl:468 ast_yyerror: ast_yyerror(): syntax error: syntax error, unexpected '+', expecting $end; Input:
+49176344xxxxx = +49176344xxxxx

Подскажите, где копать?

Это конечно на данный момент не кретично, но в будущем обрабатывать некоторые номера придется.

Добавлю, что если я делаю сравнение хоть с плюсом или без, условие обрабатывается в обоих случаях, как 'neverno'

Re: Помогите с Callthrough

Добавлено: 23 апр 2012, 01:16
ded
Вы непоняли пример. Вам не нужен Goto.
Смотрите ещё раз:

exten => ${SIP2}/0176344ххххх,1,Answer()
exten => ${SIP2}/0176344ххххх,n,DISA(1234,disa)
exten => ${SIP2}/0176344ххххх,n,Hangup()

добавлю ещё

exten => ${SIP2}/+49176344ххххх,1,Answer()
exten => ${SIP2}/+49176344ххххх,n,DISA(1234,disa)
exten => ${SIP2}/+49176344ххххх,n,Hangup()

Re: Помогите с Callthrough

Добавлено: 23 апр 2012, 01:28
scherkhan
Еще раз спасибо, я вас понял и сделал так. все работает отлично....

сейчас меня интересует другое. если я захочу кого нибудь добавить в черный список или обработать звонок каким-либо другим способом, то надо бы использовать CallerID. Или даже тупо обрезать +49 и заменить на ноль. а то наши некоторые телефоны показываю на дисплее без плюса 49ххххххххххххх, а некоторые нормально обрабатывают, заменяя +49 на 0.