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

Периодически блокируются входящие звонки.

Добавлено: 05 окт 2017, 13:58
petvv
Всем Всем хорошего настроения!
Достался мне в наследство Asterisk, всё настроено, работает и устраивает.
Бугры озадачились подтверждением "операций" через дозвон на определённый номер с сотового.
У zadarma.com арендовали виртуальный номер, посадили его на транк.
Проверили, всё работает, и наша программа отлавливает звонки.
Вот лог.

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

[2017-10-05 14:42:37] VERBOSE[13397] pbx.c: -- Executing [XXXXX@from-trunk-sip-YYYYY:1] Set("SIP/YYYYY-00001c40", "GROUP()=OUT_3") in new stack
[2017-10-05 14:42:37] VERBOSE[13397] pbx.c: -- Executing [XXXXX@from-trunk-sip-YYYYY:2] Goto("SIP/YYYYY-00001c40", "from-trunk,XXXXX,1") in new stack
[2017-10-05 14:42:37] VERBOSE[13397] pbx.c: -- Goto (from-trunk,XXXXX,1)
[2017-10-05 14:42:37] VERBOSE[13397] pbx.c: -- Executing [XXXXX@from-trunk:1] Set("SIP/YYYYY-00001c40", "__FROM_DID=XXXXX") in new stack
[2017-10-05 14:42:37] VERBOSE[13397] pbx.c: -- Executing [XXXXX@from-trunk:2] Gosub("SIP/YYYYY-00001c40", "app-blacklist-check,s,1()") in new stack
[2017-10-05 14:42:37] VERBOSE[13397] pbx.c: -- Executing [s@app-blacklist-check:1] GotoIf("SIP/YYYYY-00001c40", "0?blacklisted") in new stack
[2017-10-05 14:42:37] VERBOSE[13397] pbx.c: -- Executing [s@app-blacklist-check:2] Set("SIP/YYYYY-00001c40", "CALLED_BLACKLIST=1") in new stack
[2017-10-05 14:42:37] VERBOSE[13397] pbx.c: -- Executing [s@app-blacklist-check:3] Return("SIP/YYYYY-00001c40", "") in new stack
[2017-10-05 14:42:37] VERBOSE[13397] pbx.c: -- Executing [XXXXX@from-trunk:3] Set("SIP/YYYYY-00001c40", "CDR(did)=XXXXX") in new stack
[2017-10-05 14:42:37] VERBOSE[13397] pbx.c: -- Executing [XXXXX@from-trunk:4] ExecIf("SIP/YYYYY-00001c40", "0 ?Set(CALLERID(name)=+7YYYYYYYYYY)") in new stack
[2017-10-05 14:42:37] VERBOSE[13397] pbx.c: -- Executing [XXXXX@from-trunk:5] Set("SIP/YYYYY-00001c40", "CHANNEL(musicclass)=default") in new stack
[2017-10-05 14:42:37] VERBOSE[13397] pbx.c: -- Executing [XXXXX@from-trunk:6] Set("SIP/YYYYY-00001c40", "__MOHCLASS=default") in new stack
[2017-10-05 14:42:37] VERBOSE[13397] pbx.c: -- Executing [XXXXX@from-trunk:7] Set("SIP/YYYYY-00001c40", "__CALLINGPRES_SV=allowed_not_screened") in new stack
[2017-10-05 14:42:37] VERBOSE[13397] pbx.c: -- Executing [XXXXX@from-trunk:8] Set("SIP/YYYYY-00001c40", "CALLERPRES()=allowed_not_screened") in new stack
[2017-10-05 14:42:37] VERBOSE[13397] pbx.c: -- Executing [XXXXX@from-trunk:9] Goto("SIP/YYYYY-00001c40", "app-blackhole,hangup,1") in new stack
[2017-10-05 14:42:37] VERBOSE[13397] pbx.c: -- Goto (app-blackhole,hangup,1)
[2017-10-05 14:42:37] VERBOSE[13397] pbx.c: -- Executing [hangup@app-blackhole:1] NoOp("SIP/YYYYY-00001c40", "Blackhole Dest: Hangup") in new stack
[2017-10-05 14:42:37] VERBOSE[13397] pbx.c: -- Executing [hangup@app-blackhole:2] Hangup("SIP/YYYYY-00001c40", "") in new stack
[2017-10-05 14:42:37] VERBOSE[13397] pbx.c: == Spawn extension (app-blackhole, hangup, 2) exited non-zero on 'SIP/YYYYY-00001c40'
[2017-10-05 14:42:38] VERBOSE[1856] netsock2.c: == Using SIP RTP TOS bits 184
[2017-10-05 14:42:38] VERBOSE[1856] netsock2.c: == Using SIP RTP CoS mark 5
Но, через N-ное количество времени при дозвоне на этот номер в логах появляется следующее:

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

[2017-10-05 14:46:38]  NOTICE[1856] chan_sip.c: Failed to authenticate device "7XXXXXXXXXX" <sip:+7YYYYYYYYYY@sip.zadarma.com>;tag=as2019cebe
+7XXXXXXXXXX - наш виртуальный номер

+7YYYYYYYYYY - номер с которого дозваниваются

И соответственно наша программа не может нормально определить звонил человек или нет.
Опять же по прошествии некого времени всё начинает работать.

Я так подозреваю, что что-то (fail2ban? Не.) блокирует звонки на определённый промежуток времени.
Собственно вопрос новичка в FreePBX+Asterisk: в какую сторону рыть?

fail2ban? Не. (Какие настройки рыть)

Сильно не пинать в FreePBX+Asterisk новичек.

Re: Периодически блокируются входящие звонки.

Добавлено: 05 окт 2017, 15:45
ded
petvv писал(а):Сильно не пинать в FreePBX+Asterisk новичек.
Вообще не аргумент. Не новички как раз знают, понимают, их и не нужно пинать.

1) Читать мануал по FreePBX - всегда
2) +7XXXXXXXXXX - ваш виртуальный номер и Set("SIP/YYYYY-00001c40", "__FROM_DID=XXXXX") количество иксов различаете?
3) Согласно логу ваш звонок попадает в Астериск, так что fail2ban уже не при чём, верно? Он блокирует на уровне ИП адресов, тут же мы видим звонок поступил. Но попал в чёрную дыру - Blackhole, которая терминировала его в Hangup. Вы спросите почему? Потому что так настроено во входящей маршрутизации. Терминировать неизвестные DIDs в Blackhole = Hangup.

Чтобы не было Failed и чтобы вообще не аутентифицировался звонок как юзер, надо указать на пире Задармы insecure=invite.
Возможно также, что такой вызов прибегает с какого-то иного ИП адреса, у провайдеров это обычное дело, на оригинацию могут работать несколько серверов. Тогда просто вычислить этот ИП и сделать дубликат пира Задарма, какой нить zadarma-1, с этим адресом.