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

asterisk - как отбросить повторяющиеся вызовы?

Проблемы и их решения Asterisk как такового

Модератор: april22

asterisk - как отбросить повторяющиеся вызовы?

Сообщение audiophileeeee » 22 июл 2020, 12:48

Добрый день
подскажите на асртериск приходит большой поток трафика
и там часто по 2-9 попыток в секунду на один и тот же B номер (did)
Я хочу пропускать только первую попытку, остальные отбрасывать.

пробую навелосипедить

Код: выделить все
[from-sip-external]
exten => _X.,1,Progress
exten => _X.,2,Verbose(*** набираем - ${EXTEN} ***)
same => n,Verbose(*** кол-во одновременных вызовов -  ${GROUP_COUNT(${EXTEN})} ***)
same => n,GotoIf($[${GROUP_COUNT(long)} > 1]?over)
same => n,Dial(SIP/+${EXTEN}@1.2.3.4:5060)
same => n(over),Verbose(*** лимит превышен на - ${MATH(${GROUP_COUNT(long)}-1)} вызова ***)
same => n,Set(DIALSTATUS=CHANUNAVAIL)




но оно работает криво
т.к. если они идут одна за одной эта логика не работает
Нужно я думаю подлючаться к CDR и сравнивать текущий номер с набраным и на основании этого уже режектить.

Есть ещё одно простое решение - на стадии вызова просто добавлять все номера в блек лист. При этом пропуская только первый вызов.
Только не нашёл готовых решений для фильтрации Б номеров.

ВОзможно кто-то знает готовую функцию, которая возвращает последний набранный Б номер?
Или может у кого-то есть постое решение как пропускать только одну попытку на номер?

Хочется фильтровать повторяющиеся б номера и пропускать только первую попытку на номер

Код: выделить все
[from-sip-external]
exten => _X.,1,Progress
exten => n,GotoIf($[${DB(blockcaller/${CALLERID(num)})} = 1 ]?blocked)
exten => n(blocked),Hangup

exten => s,1,Set(DB(blacklist/${CALLERID(num)})=1)
exten => n,Set(Value=${DB(test/${CALLERID(num)})})




это очень простое решение, но готовых блеклистов для б номеров я не нашёл(
может у кого-то есть решение или идея, как фильтровать повторяющиеся б номера?
audiophileeeee
 
Сообщений: 3
Зарегистрирован: 22 июл 2020, 12:46

Re: asterisk - как отбросить повторяющиеся вызовы?

Сообщение audiophileeeee » 23 июл 2020, 10:04

нашёл чей-то велосипед по добавлению Б номеров в блект лист
но он старый и не рабочий
https://github.com/ViktorNova/asterisk-dnc

продолжаю поиски
audiophileeeee
 
Сообщений: 3
Зарегистрирован: 22 июл 2020, 12:46

Re: asterisk - как отбросить повторяющиеся вызовы?

Сообщение virus_net » 24 июл 2020, 08:42

В чем проблема сделать в базе astdb, сродни записи блеклиста, запись со счетчиком, который увеличивать при каждом вызове и затем проверять его значение. Если достиг нужного вам кол-ва, то переход на hangup.
Для сброса счётчика завести ещё одну запись - время, в unixtime. Если после последнего вызова прошло более X минут, то счётчик равен нулю.
мой SIP URI sip:virus_net@asterisk.ru
bitname.ru - Домены .bit (namecoin) .emc .coin .lib .bazar (emercoin)

ENUMER - звони бесплатно и напрямую.
virus_net
 
Сообщений: 2329
Зарегистрирован: 05 июн 2013, 08:12
Откуда: Москва

Re: asterisk - как отбросить повторяющиеся вызовы?

Сообщение audiophileeeee » 24 июл 2020, 16:15

я не находил пока рабочих примеров
audiophileeeee
 
Сообщений: 3
Зарегистрирован: 22 июл 2020, 12:46

Re: asterisk - как отбросить повторяющиеся вызовы?

Сообщение virus_net » 25 июл 2020, 09:45

Ах, вам копипаст решение нужно.
Ну тогда это в раздел "Бизнес" или продолжать искать.
Либо почитать книжку и основываясь на примере, который привели выше взять и сделать самому.
мой SIP URI sip:virus_net@asterisk.ru
bitname.ru - Домены .bit (namecoin) .emc .coin .lib .bazar (emercoin)

ENUMER - звони бесплатно и напрямую.
virus_net
 
Сообщений: 2329
Зарегистрирован: 05 июн 2013, 08:12
Откуда: Москва


Вернуться в Конфигурация и настройка Asterisk

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

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

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