Страница 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.