рубрики

FREESWITCH ограничение количества звонков через оператора

Иногда нужно ограничить количество одновременных вызовов через оператора, например, если к freeswitch подключен GSM-шлюз с 1-й симкой и также есть городской оператор, необходимо вызовы на сотовые телефоны направить на GSM-шлюз, но если уже кто-то разговаривает через него, то остальные вызовы должны пойти через городского оператора. 

Иногда нужно ограничить количество одновременных вызовов через оператора, например, если к freeswitch подключен GSM-шлюз с 1-й симкой и также есть городской оператор, необходимо вызовы на сотовые телефоны направить на GSM-шлюз, но если уже кто-то разговаривает через него, то остальные вызовы должны пойти через городского оператора.
Во freeswitch есть приложение limit, с помощью которого можно решить эту задачу. Оно имеет следующий синтаксис

limit <backend> <realm> <resource> <max[/interval]> [<transfer_destination_number> [<dialplan> [<context>]]

Полную информацию по данному приложению можно найти здесь https://freeswitch.org/confluence/display/FREESWITCH/Limit
Пример диалплана: 


<extension name="gsm">
<condition field="destination_number" expression="^(89\d{9})$">
<action application="limit" data="hash outbound 1 to_operator"/>
<action application="bridge" data="sofia/gateway/gsm_gate/$1" />
</condition>
</extension>
<extension name="to_operator">
<condition field="destination_number" expression="^to_operator$"/>
<condition field="rdnis" expression="^(89\d{9})$">
<action application="bridge" data="sofia/gateway/operator/$1"/>
</condition>
</extension>

Здесь если через extension gsm уже осуществляется вызов, то второй вызов пойдет в extension to_operator

Эту же задачу можно решить и с помощью приложения limit_execute полный синтаксис которого выглядет так

<action application="limit_execute" data="hash <realm> <id> <max>[/<interval>] <application> <data>" />

 Диалплан будет выглятеть так:


<extension name="outbound">
<condition field="destination_number" expression="^(89\d{9})$">
<action application="limit_execute" data="hash outbound GSM 1 bridge sofia/gateway/GSM/${destination_number}" />
<action application="bridge" data="sofia/gateway/to_operator/$1" />
</extension>

 

Рубрика: VoIP | Теги: freeswitch, VOIP, ограничение вызовов
Система Orphus
-->