Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

Asterisk ограничение звонков через транки на несколько номеров

0

Ситуация следующая: есть астериск и есть сип транк, например, до сервера астериск 2. Задача: нужно подать 10 номеров через транк(можно с регистрацией всех 10 номеров), с лимитом на одновременное количество каналов 10(входящие+исходящие). Для входящих все хорошо делается через группы:

exten = 4444,n,Set(GROUP()=${EXTEN})
exten = 4444,n,Set(CALLS=${GROUP_COUNT(${GROUP()})})
exten = 4444,n,Execif($[ ${CALLS} > ${n${EXTEN}} ]?Busy)
exten = 4444,n, Dial *****

где ${n${EXTEN}}= число одновременных каналов (глобальная переменная вида n4444=10). С исходящими вызовами не могу придумать универсальное решение, т.к. у 10 номеров есть свой callerid, т.е. описывая так

exten = _2222,n,Set(GROUP()=${CALLERID(num)})
exten = _2222,n,Set(CALLS=${GROUP_COUNT(${GROUP()})})
exten = _22222,n,Execif($[ ${CALLS} > ${n${CALLERID(num)}} ]? Busy)

я могу сделать ограничение для одного номера.

удалить закрыть спам изменить тег редактировать

спросил 2013-10-28 19:04:04 +0400

kostoprav Gravatar kostoprav
45 3 5

обновил 2013-10-28 19:23:10 +0400

1 Ответ

1

для исходящих делается точно также. только имя группы поменяйте. можете выставить имя группы в номер както вот так

exten => _X.,1,Set(GROUP(out)=${CALLERID(num)})
exten => _X.,n,Set(CALL_OUT_NOW=${GROUP_COUNT(${CALLERID(num)}@out)})
ссылка удалить спам редактировать

ответил 2013-10-29 09:28:50 +0400

meral Gravatar meral flag of Ukraine
23347 24 20 177
http://pro-sip.net/

Comments

Да, так можно. В вашем примере можно ограничить исходящие для одного callerid. Но мне нужно ограничить суммарное количество каналов до сервера В(вх+исх). Хотелось чтобы имея 15 номеров на них могли дозваниваться и звонить с них, но ограничить количество одновременных разговоров в 10. У меня в sip.conf описывается к примеру так [4444] callerid=4444 [5555] calledrid=5555 и т.д. И ограничить нужно суммарное количество каналов(вх+исх) для 4444, 5555 и т.д. с учетом того, что серверов таких может быть много. Т.е. хочу создать универсальное решение в диалплане для исходящих. Может переменную ввести для каждого номера или еще как.

kostoprav ( 2013-10-29 10:54:38 +0400 )редактировать

ну так используйте что то типо GROUP(trunk)=grp1. универсальное решение делается через astdb/mysql realtime.

meral ( 2013-10-29 20:21:33 +0400 )редактировать

Спасибо, понял как делать. И еще вопрос тогда: можно ли ограничить количество регистраций для юзера. Сейчас можно регистрировать 2-3-4 телефона с одний логином/паролем, но работать будет последний зарегистрировавшийся. Как отсылать всех, если уже есть одна регистрация?

kostoprav ( 2013-10-29 20:40:58 +0400 )редактировать

хз. в астериске никак. ну развечто адрес в permit прописать. дело в том, что адрес у текущего зарегистриванного моежт же менятся. потому нет вариантов как запретит регистрироватся с другого. можно написать демон который будет запрещать(фаерволить)

meral ( 2013-10-30 01:12:17 +0400 )редактировать

Ваш ответ

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку
1 закладка

подписаться на rss ленту новостей

Статистика

Задан: 2013-10-28 19:04:04 +0400

Просмотрен: 2,911 раз

Обновлен: Oct 29 '13

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.