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

Не проходят звонки между внутренними номерами

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

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

Re: Не проходят звонки между внутренними номерами

Сообщение ded » 05 апр 2018, 18:05

Не то что-то творите с хинтами. Не стого конца.
Видите - когда звонок получается - ${DSTRING} содержит что-то (SIP/30)
Когда не совершается, то в ${DSTRING} пусто, потому отрабатывает nodial.

Найдите начало цепочки: кто и как заполняет при звонке содержимое переменной ${DSTRING}?
ded
 
Сообщений: 15801
Зарегистрирован: 26 авг 2010, 19:00

Re: Не проходят звонки между внутренними номерами

Сообщение telizynav » 06 апр 2018, 00:52

Да я не трогаю хинты. Новый номер сначала работает, а потом сам перестает.
Часто используют так {DEVICE_STATE(${DSTRING})}
Но у меня этого нет и откуда берется переменная найти не могу.
telizynav
 
Сообщений: 7
Зарегистрирован: 05 апр 2018, 01:36

Re: Не проходят звонки между внутренними номерами

Сообщение telizynav » 06 апр 2018, 01:25

Не придумал ничего умнее как определить переменную вручную перед ее проверкой
exten => s,n,Set(DSTRING=SIP/${DEXTEN})
exten => s,n,GotoIf($[${LEN(${DSTRING})}=0]?nodial)

И звонки на дохлые номера пошли.

Но статус пира не меняется.
exten => s,n,NoOp( -------------------------- State is ${EXTENSION_STATE(${DEXTEN})} ------------- )
Executing [s@macro-dial-one:29] NoOp("SIP/44-0000005a", " -------------------------- State is UNAVAILABLE ------------- ") in new stack
41/41 192.168.1.100 D No No A 65392 OK (105 ms)
telizynav
 
Сообщений: 7
Зарегистрирован: 05 апр 2018, 01:36

Re: Не проходят звонки между внутренними номерами

Сообщение ded » 06 апр 2018, 11:06

Если State is UNAVAILABLE, то логика macro-dial-one говорит - туда не надо звонить, nodial. Вы уж проверьте, когда новый номер перестаёт звонить, выхлоп команды
CLI> sip show peers
покажет у этого номера UNAVAILABLE? Тогда вам надо не код FreePBX ковырять, а свою сеть, сами устройства и/или firewall.

${DSTRING} определяет какой технологией звонить на экстен - DAHDI, PJSIP или простой SIP.

Какая версия FreePBX? Не надо использовать самую-самую последнюю, будут всякие такие траблы.
У вас случайно не обе технологии используются - PJSIP и SIP? Реально, посмотреть каким способом высчитывается эта переменная - умереть не встать!

Код: выделить все
exten => dlocal,1,Set(DSTRING=${IF($["${ARG1}"=""]?${DEXTEN:0:${MATH(${LEN(${DEXTEN})}-1,int)}}:Local/${DEXTEN:0:${MATH(${LEN(${DEXTEN})}-1,int)}}@from-internal/n)})


и сама sub dstring тоже не для средних умов:
[Показать] Спойлер:
exten => dstring,1,Set(DSTRING=)
exten => dstring,n,Set(DEVICES=${DB(AMPUSER/${DEXTEN}/device)})
exten => dstring,n,ExecIf($["${DEVICES}"=""]?Return())
exten => dstring,n,ExecIf($["${DEVICES:0:1}"="&"]?Set(DEVICES=${DEVICES:1}))
exten => dstring,n,Set(LOOPCNT=${FIELDQTY(DEVICES,&)})
exten => dstring,n,Set(ITER=1)
exten => dstring,n(begin),Set(THISDIAL=${DB(DEVICE/${CUT(DEVICES,&,${ITER})}/dial)})
exten => dstring,n,GosubIf($["${ASTCHANDAHDI}" = "1"]?zap2dahdi,1())
exten => dstring,n,GotoIf($["${THISDIAL:0:5}"!="PJSIP"]?docheck)
exten => dstring,n,Noop(Debug: Found PJSIP Destination ${THISDIAL})
exten => dstring,n,GotoIf($[ ${REGEX("(/.+/|@)" ${THISDIAL})} = 1 ]?doset)
exten => dstring,n,Noop(Debug: Updating PJSIP Destination with PJSIP_DIAL_CONTACTS)
exten => dstring,n,Set(THISDIAL=${PJSIP_DIAL_CONTACTS(${THISDIAL:6})})
exten => dstring,n(docheck),GotoIf($["${THISDIAL}"=""]?skipset)
exten => dstring,n(doset),Set(DSTRING=${DSTRING}${THISDIAL}&)
exten => dstring,n(skipset),Set(ITER=$[${ITER}+1])
exten => dstring,n,GotoIf($[${ITER}<=${LOOPCNT}]?begin)
exten => dstring,n,ExecIf($["${DSTRING:-1}"!="&"]?Return())
exten => dstring,n,Set(DSTRING=${DSTRING:0:$[${LEN(${DSTRING})}-1]})
exten => dstring,n,Return()
ded
 
Сообщений: 15801
Зарегистрирован: 26 авг 2010, 19:00

Re: Не проходят звонки между внутренними номерами

Сообщение telizynav » 06 апр 2018, 12:29

CLI> sip show peers
Показывает OK,
а core show hints - UNAVAILABLE
Сетка локальная без FW, используется только SIP.
Очень похоже на глюк FreePBX - версия 13.0.193, пробовал и до последней не помогает.
Устройства тоже 3 разных - софтфон 3СХ, cisco 7960, avaya 1230
telizynav
 
Сообщений: 7
Зарегистрирован: 05 апр 2018, 01:36

Re: Не проходят звонки между внутренними номерами

Сообщение awsswa » 06 апр 2018, 13:21

Походу вам надо нанять людей для аудита. Понять что у вас там происходит.
платный суппорт по мере возможностей
awsswa
 
Сообщений: 2390
Зарегистрирован: 09 июн 2012, 10:52
Откуда: Россия, Пермь skype: yarick_perm

Пред.

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

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

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

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