asterisk - как отбросить повторяющиеся вызовы?
Добавлено: 22 июл 2020, 11:48
Добрый день
подскажите на асртериск приходит большой поток трафика
и там часто по 2-9 попыток в секунду на один и тот же B номер (did)
Я хочу пропускать только первую попытку, остальные отбрасывать.
пробую навелосипедить
но оно работает криво
т.к. если они идут одна за одной эта логика не работает
Нужно я думаю подлючаться к CDR и сравнивать текущий номер с набраным и на основании этого уже режектить.
Есть ещё одно простое решение - на стадии вызова просто добавлять все номера в блек лист. При этом пропуская только первый вызов.
Только не нашёл готовых решений для фильтрации Б номеров.
ВОзможно кто-то знает готовую функцию, которая возвращает последний набранный Б номер?
Или может у кого-то есть постое решение как пропускать только одну попытку на номер?
Хочется фильтровать повторяющиеся б номера и пропускать только первую попытку на номер
это очень простое решение, но готовых блеклистов для б номеров я не нашёл(
может у кого-то есть решение или идея, как фильтровать повторяющиеся б номера?
подскажите на асртериск приходит большой поток трафика
и там часто по 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)})})
это очень простое решение, но готовых блеклистов для б номеров я не нашёл(
может у кого-то есть решение или идея, как фильтровать повторяющиеся б номера?