Как сопоставить числа в зависимости от конца числа?

Я настраиваю сервер Asterisk VoIP (используя FreePBX), и мне нужно идентифицировать все числа, которые заканчиваются определенным шаблоном.

Это необходимо для целей маршрутизации, то есть для выяснения, исходят ли они из исходящей соединительной линии или внутреннего телефона.

Например, местный номер 777777 может выглядеть как 777777, 01222777777, 441222777777, 00441222777777 или +441222777777.

Несколько поисков не помогли мне понять это. Как это можно сделать?

1 ответ

Если вы работаете с FreePBX, вам, скорее всего, придется пойти по секрету и добавить контекст, подобный приведенному ниже, в /etc/asterisk/extensions_custom.conf

[check-ending]
exten => _!,1,GotoIf($[${EXTEN:-6} = 777777]?gotcha)
exten => _!,n,Goto(inbound)
exten => _!,n,Hangup()
exten => _!,n(gotcha),Goto(inbound-from-777777)
exten => _!,n,Hangup()
exten => h,1,Hangup()

Теперь, если в конце будет 6 семерок, вызов перейдет на метку gotcha и будет перенаправлен на входящий-из-777777, в противном случае он будет проходить дальше через план набора и будет перенаправлен на входящий.

Тогда беги asterisk -x "dialplan reload" загрузить новый конфиг в звездочку. После этого в пользовательском интерфейсе вам нужно будет установить контекст завершения проверки в качестве получателя вызова для транка (как вы обычно это делаете).

Другие вопросы по тегам