ВидеоКонф(ВКС)  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

CDR dst = 's'

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

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

CDR dst = 's'

Сообщение simneo » 31 авг 2017, 12:19

Добрый день!

Виду в CDR получаю строки в которых вместо номера в поле dst стоит 's' (не знаю как правильно назвать что такое 's')
Хотя в контексте я виду А и Б номер

Код: выделить все
exten => _7X,1,NoOp(To: ${EXTEN} -- From: ${CALLERID(num)} -- Content: ${CONTEXT})


Если звонок переправить в контект дефолтный FREE_PBX:

exten => s,n,Goto(from-internal,${BNUM},1)

тогда все нормально. Все поля заполнены более менее корректно.

Если только мне нужно сделать со звонком вот так:

Код: выделить все
same => n(blocked),NoOp((7${ARG1}) Посыл КПВ!)
same => n,Playback(custom/kpv)
same => n,Hangup()


получаю dst = 's' и в полях cnum и cnam пусто

Почему так происходит и как исправить?
simneo
 
Сообщений: 9
Зарегистрирован: 15 сен 2016, 10:05

Re: CDR dst = 's'

Сообщение ded » 31 авг 2017, 12:30

Если зарегистрирован номер Б у провайдера криво (нет его после slash в строке регистрации
register => number:pass@provider.org/9012345678
то исполняется дефолтная обработка 's' (start) в определённом контексте
exten => s,1,(NoOp()
exten => s,n,Goto(from-internal,${BNUM},1)
и получаете dst = 's'

Судя по Goto(from-internal, Вы там какую-то неправильную химию натворили. Не принимаются внешние звонки в контекст from-interna обычно, если только это не внутрикорпоративный маршрут.
ded
 
Сообщений: 15828
Зарегистрирован: 26 авг 2010, 19:00

Re: CDR dst = 's'

Сообщение simneo » 31 авг 2017, 12:37

Я функционал FREE PBX вообще не трогал, все контексты в оригинале. Создавал правила только исключительно из бэкофиса (вебморда)

Как раз наоборот, если я делаю
Код: выделить все
exten => s,n,Goto(from-internal,${BNUM},1)

то в поле dst все проставляется нормально

В какой контекст на ваш взгляд нужно передать звонок во FREE PBX?
Повторюсь, правила созданы в пункте исходящая маршрутизация из вебморды

P.S
Я получаю звонки из транка по IP
Указываю в транке контекст куда должен попасть звонок
В этом контексте я создаю маски по которым можно звонить и все что прошло по маскам отдаю в контекст FREE PBX - from-internal
simneo
 
Сообщений: 9
Зарегистрирован: 15 сен 2016, 10:05

Re: CDR dst = 's'

Сообщение ded » 31 авг 2017, 13:03

Принимать внешние звонки в контекст from-trunk
Повторюсь:
ded писал(а):Если зарегистрирован номер Б у провайдера криво (нет его после slash в строке регистрации
register => number:pass@provider.org/9012345678
то исполняется дефолтная обработка 's' (start) в определённом контексте.
ded
 
Сообщений: 15828
Зарегистрирован: 26 авг 2010, 19:00

Re: CDR dst = 's'

Сообщение ded » 31 авг 2017, 13:07

simneo писал(а):В какой контекст на ваш взгляд нужно передать звонок во FREE PBX?
Повторюсь, правила созданы в пункте исходящая маршрутизация из вебморды

P.S
Я получаю звонки из транка по IP
Указываю в транке контекст куда должен попасть звонок
В этом контексте я создаю маски по которым можно звонить и все что прошло по маскам отдаю в контекст FREE PBX - from-internal
Вы определитесь: получаю звонки из транка по IP - это входящая (в АТС) маршрутизация. Правила в пункте исходящая маршрутизация - это для абонентов этой АТС, а не для входящих звонков.
Может Вы пытаетесь делать транзитные соединения? Из одного транка в другой транк? Обычным образом это блокируется намеренно, чтобы не допустить взлома станции и разорения исходящими на Соломоновы острова и Зимбабве.
ded
 
Сообщений: 15828
Зарегистрирован: 26 авг 2010, 19:00

Re: CDR dst = 's'

Сообщение simneo » 31 авг 2017, 13:33

Я делаю это намеренно :)

Номеров у правайдера не зарегистрировано

Транк выглядит следующим образом:
type=peer
port=5060
insecure=port,invite
host=XX.XX.XX.XX
disallow=all
context=XXXXXXXXXX
canreinvite=no
allow=g729&g723

Мне нужно принять звонок из транка и перемаршрутизировать его в другое место
Вопрос остается открытый
Если в моем контексте то я завершаю звонко тогда не вижу destination
если в контексте FREE PBX все нормально
Почему? Ведь исходные данные в виде звонка одни и теже
simneo
 
Сообщений: 9
Зарегистрирован: 15 сен 2016, 10:05

Re: CDR dst = 's'

Сообщение ded » 31 авг 2017, 13:42

Обычно у велосипеда руль слева, а сиденье - справа. Если перевернуть - то наоборот. Соответственно, можно ехать налево, а если перевернуть - то направо.
Вы приделали второй руль и ещё одно седло, и вопрос звучит - почему нельзя ехать одновременно вправо и влево? Ведь колеса то по прежнему два? Я делаю это преднамеренно!

Автоводитель: - разве здесь нет левого поворота?
Инспектор ГИБДД: - есть, но он платный.

Ответ - платный, ОК?

exten => _Х.,1,NoOp()
exten => _Х.,n,Goto(from-internal,${BNUM},1)

успехов Вам, больших и малых! И - читать Книгу о вкусной и здоровой пище (Будущее телефонии).
ded
 
Сообщений: 15828
Зарегистрирован: 26 авг 2010, 19:00

Re: CDR dst = 's'

Сообщение simneo » 31 авг 2017, 14:42

Ну вы конечно замудрили, и руля то не два
А два велосипеда
Есть транк (вх/исх)
Есть dongle (вх/исх)
Что считать исходящая маршрутизация в контексте FREE PBX?

Звонок приходит на транк (входящий) я его принимаю в контексте который сам написал
Начало и конец удалил с контента
Код: выделить все
exten => s,n,Goto(from-internal,${BNUM},1)

Тут я передаю его в контекст from-internal
этот контекст работает с dongle и выполняет свою задачу как исходящая маршрутизация (звонит исходящий звонок)

Что я сделал не так?
В этом форуме второй раз задаю вопрос и результат один - предлагают платную
Если мы разговариваем публично, цена вопроса?

Вопрос то простой. Когда звонок завершается в моем контексте CDR формируется неполный
Когда завершается в контексте FREE PBX CDR формируется корректный
Почему? Ведь входящие данные одни и теже (сам звонок)
simneo
 
Сообщений: 9
Зарегистрирован: 15 сен 2016, 10:05

Re: CDR dst = 's'

Сообщение ded » 31 авг 2017, 15:33

ded писал(а):Что я сделал не так?
Вот что: написал контекст, не понимая до конца что пишет и зачем пишет:
в контексте который сам написал
Начало и конец удалил с контента
exten => s,n,Goto(from-internal,${BNUM},1)
Вот я вывалю Вам кусок кода, да ещё начало и конец удалю, чтобы потрудней гадать было. И скажу - а где тут я ошибся?
simneo писал(а):Мне нужно принять звонок из транка и перемаршрутизировать его в другое место
Писать надо было подробней, так как в последнем сообщении -

Мне нужно принять звонок из донгла и перемаршрутизировать его по SIP через провайдера (или другой донгл?) другому абоненту.
ded
 
Сообщений: 15828
Зарегистрирован: 26 авг 2010, 19:00

Re: CDR dst = 's'

Сообщение simneo » 01 сен 2017, 12:07

Мне нужно принять звонок из донгла и перемаршрутизировать его по SIP через провайдера (или другой донгл?) другому абоненту.

А я так и не писал

Полный код контекста:

Код: выделить все
[sub_black_list]
exten => s,1,NoOp(--- MACRO --- BLACKLIST ---)
#same => n,MYSQL(connect connid ${DBhost} ${DBuser} ${DBpass} ${DBname})
same => n,MYSQL(connect connid localhost XXX XXX asterisk_user utf8)
same => n,MYSQL(query resultid ${connid} SELECT 'Yes' as result from asterisk_user.user_blacklist a where a.callerid='7${ARG1}')
same => n,MYSQL(Fetch fetchid ${resultid} blacklistid)
same => n,NoOp(FetchID: ${fetchid} Var1: ${blacklistid} ConnID: ${connid} ResultID: ${resultid})
same => n,GotoIf($["${blacklistid}" = "Yes"]?blacklisted)
same => n,MYSQL(clear ${resultid})
same => n,MYSQL(disconnect ${connid})
same => n,Goto(end)
same => n(blacklisted),NoOp((7${ARG1}) Заблокирован!)
same => n,MYSQL(clear ${resultid})
same => n,MYSQL(disconnect ${connid})
same => n,Hangup()
same => n(end),NoOp(-- Clear --)
same => n,Return()

exten => _79XXXXXXXXX,1,NoOp(To: ${EXTEN} -- From: ${CALLERID(num)} -- Content: ${CONTEXT})
exten => _79XXXXXXXXX,n,Set(BNUM=8${EXTEN:1})
exten => _79XXXXXXXXX,n,NoOp(BNUM: ${BNUM})
exten => _79XXXXXXXXX,n,Goto(s,1)

# Проверка номера
exten => s,1,GoSub(sub_black_list,s,1(${BNUM:1}))

# Выход FREEPBX
exten => s,n,Goto(from-internal,${BNUM},1)

exten => s,n,Hangup()


Вот в такой контекст я принимаю звонок из транка
simneo
 
Сообщений: 9
Зарегистрирован: 15 сен 2016, 10:05

След.

Вернуться в Вопросы новичков

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 60

© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH