VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Не проходит входящий

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

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

m1a0s
Сообщения: 25
Зарегистрирован: 26 фев 2014, 16:32

Не проходит входящий

Сообщение m1a0s »

Здравствуйте,

Не проходит входящий вызов. Идет несколько гудков, потом сброс астреиксом входящего вызова.
Вывод CLI в момент входящего:

Код: Выделить всё

[2014-03-06 11:22:33] WARNING[3893][C-00000011]: chan_sip.c:21937 func_header_read: This function can only be used on SIP channels.
[2014-03-06 11:22:33] WARNING[3893][C-00000011]: chan_sip.c:21937 func_header_read: This function can only be used on SIP channels.
[2014-03-06 11:22:33] WARNING[3893][C-00000011]: chan_sip.c:21937 func_header_read: This function can only be used on SIP channels.
[2014-03-06 11:22:33] WARNING[3893][C-00000011]: chan_sip.c:21937 func_header_read: This function can only be used on SIP channels.
[2014-03-06 11:22:33] WARNING[3893][C-00000011]: app_dial.c:2437 dial_exec_full: Unable to create channel of type 'SIP' (cause 20 - Subscriber absent)
Нашел подобную ошибку тут: http://forum.asterisk.ru/viewtopic.php? ... els#p22552
Но тема на этом и остановилась.

Extension(peer) при этом находится Online:

Код: Выделить всё

srv*CLI> sip show users
Username                   Secret           Accountcode      Def.Context      ACL  Forcerport
100                        ccbe32efe266d36                   from-internal    Yes  No
Конфигурация peer:

Код: Выделить всё

[100]
deny=0.0.0.0/0.0.0.0
secret=ccbe32efvberdc61df3efbaaf8d72fk6e
dtmfmode=rfc2833
canreinvite=no
context=from-internal
host=dynamic
trustrpid=yes
sendrpid=no
type=friend;(тут менял и на peer и на user - результат тот же)
nat=no
port=5060
qualify=yes
qualifyfreq=60
transport=udp
avpf=no
icesupport=no
encryption=no
callgroup=
pickupgroup=
dial=SIP/100
mailbox=100@device
permit=0.0.0.0/0.0.0.0
callerid=Ivan Fedorov <100>
callcounter=yes
faxdetect=no
cc_monitor_policy=generic
Trunk на который идет звонок - GSM-шлюз. Входящее правило работает, пробовал его менять на _. и на нечто заведомо неверное - звонки ведут себя ожидаемо правильно.
Т.е. как я вижу - идет входящий на транк, проверяется входящее правило(редиректит зовнок на экстеншен, приведенный вверху), которое проходит верно но потом звонок где-то обрывается астериксом, при этом клиентский свофтфон не звонит как буд-то вызов не идет,а в логах видно то что я тоже обозначил выше.

Контексты тут достаточно сложные, но думаю не в них проблема. Писал их не я - они были мною сгенерированы через интерфейс FreePBX-ом. Сначала думал не включать их сюда, но потом решил добавить - если кто сможет - тот посмотрит по надобности.

Нашел вот тут решение:
http://asterisk-support.ru/question/475 ... -cause-20/ но оно мне не понятно:
Добавь huntstop в первый диалпир. Иначе кошка, попытавшись в первый стукнуться и получив занятось, совершенно правильно ищет альтернативные подходящие диалпиры.
Попытался найти как можно добавить "huntstop в первый диалпир" но это меня завело в установку какого-то Addpac, в общем помогите разобраться к то может, а кто не может - посочувствуйте:)

По дебагу, обрыв происходит где-то в этом контексте(до него доходит,также внизу включен использующийся макрос):
[ext-local]
include => ext-local-custom
exten => *84100,1,Goto(app-campon-toggle,*84,1)
exten => *84100,hint,ccss:SIP/100

exten => 100,1,Set(__RINGTIMER=${IF($[${DB(AMPUSER/100/ringtimer)} > 0]?${DB(AMPUSER/100/ringtimer)}:${RINGTIMER_DEFAULT})})
exten => 100,n,Macro(exten-vm,novm,100,0,0,0)
exten => 100,n(dest),Set(__PICKUPMARK=)
exten => 100,n,Goto(${IVR_CONTEXT},return,1)
exten => 100,hint,SIP/100&Custom:DND100

exten => vmret,1,GotoIf($["${IVR_RETVM}" = "RETURN" & "${IVR_CONTEXT}" != ""]?playret)
exten => vmret,n,Hangup
exten => vmret,n(playret),Playback(exited-vm-will-be-transfered&silence/1)
exten => vmret,n,Goto(${IVR_CONTEXT},return,1)

exten => h,1,Macro(hangupcall,)

[macro-exten-vm]
include => macro-exten-vm-custom
exten => s,1,Macro(user-callerid,)
exten => s,n,Set(RingGroupMethod=none)
exten => s,n,Set(__EXTTOCALL=${ARG2})
exten => s,n,Set(__PICKUPMARK=${ARG2})
exten => s,n,Set(RT=${IF($["${ARG1}"!="novm" | "${DB(CFU/${EXTTOCALL})}"!="" | "${DB(CFB/${EXTTOCALL})}"!="" | "${ARG3}"="1" | "${ARG4}"="1" | "${ARG5}"="1"]?${RINGTIMER}:)})
exten => s,n,ExecIf($[$["${REDIRECTING(reason)}" = "send_to_vm" | "${SIP_HEADER(X-Digium-Call-Feature)}" = "feature_send_to_vm"] & "${ARG1}" != "novm"]?Macro(vm,${ARG1},DIRECTDIAL,${IVR_RETVM}))
exten => s,n,ExecIf($[$["${REDIRECTING(reason)}" = "send_to_vm" | "${SIP_HEADER(X-Digium-Call-Feature)}" = "feature_send_to_vm"] & "${ARG1}" != "novm"]?MacroExit())
exten => s,n(checkrecord),Gosub(sub-record-check,s,1(exten,${EXTTOCALL},))
exten => s,n,GotoIf($["${AMPUSER}"=""|${LEN(${FROM_DID})}|"${DB(AMPUSER/${EXTTOCALL}/answermode)}"!="intercom"|${LEN(${BLINDTRANSFER})}|"${EXTENSION_STATE(${EXTTOCALL})}"!="NOT_INUSE"|"${CC_RECALL}"!=""]?macrodial)
exten => s,n,Set(INTERCOM_EXT_DOPTIONS=${DIAL_OPTIONS})
exten => s,n,Set(INTERCOM_RETURN=TRUE)
exten => s,n,Gosub(ext-intercom,*80${EXTTOCALL},1())
exten => s,n,Set(INTERCOM_RETURN=)
exten => s,n,Set(INTERCOM_EXT_DOPTIONS=)
exten => s,n(macrodial),GosubIf($["${INTERCOM_CALL}"="TRUE" & ${LEN(${BLINDTRANSFER})}]?clrheader,1())
exten => s,n,Macro(dial-one,${RT},${DIAL_OPTIONS},${EXTTOCALL})
exten => s,n,Set(SV_DIALSTATUS=${DIALSTATUS})
exten => s,n(calldocfu),GosubIf($[("${SV_DIALSTATUS}"="NOANSWER"|"${SV_DIALSTATUS}"="CHANUNAVAIL") & "${DB(CFU/${EXTTOCALL})}"!="" & "${SCREEN}"=""]?docfu,1())
exten => s,n(calldocfb),GosubIf($["${SV_DIALSTATUS}"="BUSY" & "${DB(CFB/${EXTTOCALL})}"!="" & "${SCREEN}"=""]?docfb,1())
--
;--== end of [macro-exten-vm] ==--;
ded
Сообщения: 15628
Зарегистрирован: 26 авг 2010, 19:00

Re: Не проходит входящий

Сообщение ded »

Много букв.
Ключевое сообщение из Вашего лога -
Unable to create channel of type 'SIP'
Попробуйте сделать свой пир статическим
host=192..168.1.2

Проблема описана сумбурно, я не понял: 100 - это что за номер? Просто внутренний номер?
Если это ваш GSM транк - то в корне неправильно. Транковая часть должна быть в контексте from-trunk, и называть пиры внутренними номерами (цифрами) - неправильно.
Можно SIP/GSM-1 использовать, но не SIP/100/9012345678

Направление звонка тоже не понятно: из мира на GSM шлюз а оттуда через Астериск на внутренний номер?
Или наоборот - с внутреннего номера через Астериск в мир через GSM шлюз?
ded
Сообщения: 15628
Зарегистрирован: 26 авг 2010, 19:00

Re: Не проходит входящий

Сообщение ded »

Смотреть надо не
srv*CLI> sip show users
а
srv*CLI> sip show peers

Почитайте как решилась проблема абсента тут -
http://forum.asterisk.ru/viewtopic.php? ... ber+absent
m1a0s
Сообщения: 25
Зарегистрирован: 26 фев 2014, 16:32

Re: Не проходит входящий

Сообщение m1a0s »

Спасибо за ответ.
ded писал(а):Много букв.
Согласен, но конфигов тоже много, написал чтоб осветить больше аспектов и было меньше вопросов, но как видимо это не помогло:)
ded писал(а): Unable to create channel of type 'SIP'
Попробуйте сделать свой пир статическим
host=192..168.1.2
Ок, сделаю - отпишусь.
ded писал(а): Проблема описана сумбурно, я не понял: 100 - это что за номер? Просто внутренний номер?
100 - это внутренний номер. Все верно.
ded писал(а): Транковая часть должна быть в контексте from-trunk, и называть пиры внутренними номерами (цифрами) - неправильно.
Можно SIP/GSM-1 использовать, но не SIP/100/9012345678
Да, я читал в книге что это некорректно, но FreePBX не давал мне назвать пир по макадресу как это рекомендуется в книге.Стоит ли вообще использовать FreePBX ?К примеру конфигурацию драйвера канала dongle я все равно руками сделал. Но конечно то, сколько всего генерит FreePBX мне ни в жизнь самому не написать.
ded писал(а): Направление звонка тоже не понятно: из мира на GSM шлюз а оттуда через Астериск на внутренний номер?
Из мира на GSM шлюз идет, от туда через Астерикс на внутренний номер = 100
ded писал(а): Или наоборот - с внутреннего номера через Астериск в мир через GSM шлюз?
Эти идут нормально.

Спасибо еще раз за участие:)
ded
Сообщения: 15628
Зарегистрирован: 26 авг 2010, 19:00

Re: Не проходит входящий

Сообщение ded »

Только тут стало ясно что у вас chan_dongle.
можете набрать с внутреннего номера 100 эхо-тест?
*43 и послушайте, поговорите.
Почитайте топик
http://forum.asterisk.ru/viewtopic.php?f=3&t=4101

используйте методику выявления причин -
Изображение
m1a0s
Сообщения: 25
Зарегистрирован: 26 фев 2014, 16:32

Re: Не проходит входящий

Сообщение m1a0s »

1. Поменял идентификацию пира на AFRT, соответственно конфиг счас выглядит так(изменившиеся строки):

Код: Выделить всё

[AFRT]
......
type=peer
.....
insecure=port,invite ; из той темки что вы отправляли в предыдущем посте
....

2. Попробовал статичный хост, при type=peer выдает ошибку:

Код: Выделить всё

chan_sip.c:16911 register_verify: Peer 'AFRT' is trying to register, but not configured as host=dynamic
т.е. видимо надо установить dynamic

3. Топик что Вы говорили почитать viewtopic.php?f=3&t=4101 - я его создал, счас я пытаюсь сделать то же самое что сделал там но через интерфейс FreePBX, в этом видимо вся загвоздка.

4. Диаграмму я смотрел, пробовал еще до того как написал этот пост.

Вот вывод той команды что Вы сказали

Код: Выделить всё

srv*CLI> sip show peers
Name/username             Host                                    Dyn Forcerport ACL Port     Status      Description
AFRT/AFRT                 192.168.1.104                            D              A  63497    UNREACHABLE
1 sip peers [Monitored: 0 online, 1 offline Unmonitored: 0 online, 0 offline]
Показывается что пир вроде как оффлайн, и тогда результат закономерен. Отключил фаирвол на компе где софтфон, открыл все в iptables на сервере с Астериксом, результат такой же как на клиенте вне локальной сети так и на клиенте в локальной сети. Идеи как бы закончились, а проблема осталась та же:(
m1a0s
Сообщения: 25
Зарегистрирован: 26 фев 2014, 16:32

Re: Не проходит входящий

Сообщение m1a0s »

Кстати, то что у меня работало по топику ссылку на который Вы бросили, и который я создал ранее, счас FreePBX генерит такое для входящих вызовов:

Код: Выделить всё

[ext-did-0002]
include => ext-did-0002-custom
exten => fax,1,Goto(${CUT(FAX_DEST,^,1)},${CUT(FAX_DEST,^,2)},${CUT(FAX_DEST,^,3)})

exten => +38098XXXXXXX,1,Set(__FROM_DID=${EXTEN})
exten => +38098XXXXXXX,n,Set(__REC_POLICY_MODE=always)
exten => +38098XXXXXXX,n,Gosub(app-blacklist-check,s,1())
exten => +38098XXXXXXX,n,Set(CDR(did)=${FROM_DID})
exten => +38098XXXXXXX,n,ExecIf($[ "${CALLERID(name)}" = "" ] ?Set(CALLERID(name)=${CALLERID(num)}))
exten => +38098XXXXXXX,n,Set(CHANNEL(musicclass)=default)
exten => +38098XXXXXXX,n,Set(__MOHCLASS=default)
exten => +38098XXXXXXX,n,Ringing()
exten => +38098XXXXXXX,n,Set(__CALLINGPRES_SV=${CALLERPRES()})
exten => +38098XXXXXXX,n,Set(CALLERPRES()=allowed_not_screened)
exten => +38098XXXXXXX,n(dest-ext),Goto(from-did-direct,100,1)

;--== end of [ext-did-0002] ==--;

Вместо иксов там реальные цифры номера телефона и если ставить "_." вместо "+38098XXXXXXX" - то что мне подсказывали в предыдущем топике ссылку на который Вы дали, результат не меняется. Т.е. видимо проблема все таки в том что Астрикс не видит пира.
ded
Сообщения: 15628
Зарегистрирован: 26 авг 2010, 19:00

Re: Не проходит входящий

Сообщение ded »

Вывод

Код: Выделить всё

AFRT/AFRT                 192.168.1.104                            D              A  63497    UNREACHABLE
говорит о том, что пир зарегистрировался, но не обрабатывает пакеты OPTIONS, не отвечает на них. Можно игнорировать, они не нужны в локальной сети, надо отключить параметром
qualify=no
Далее, смотреть в консоль когда совершается входящий вызов. Там будет всё очень доступно сказано.
homeless
Сообщения: 80
Зарегистрирован: 31 май 2013, 20:12

Re: Не проходит входящий

Сообщение homeless »

Хм, уважаемый Ded - а как посмотреть на это -
[Monitored: 0 online, 1 offline
чуть ниже ? Если бы пир был с отсутствием поддержки Options - он был бы в разделе Unmonitored. Ето раз, а так - он в monitored (ну это и не сильно критично), но в offline - т.е. создан, но не работает
ded
Сообщения: 15628
Зарегистрирован: 26 авг 2010, 19:00

Re: Не проходит входящий

Сообщение ded »

Я ничего не понял (читал 3 раза).
У Вас выбор небольшой: или Вы справитесь, или не справитесь.
Столько писать на форуме по проблеме одного донгла и одного Астериска - недопустимо.
Ответить
© 2008 — 2025 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH