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

Иногда нужно ограничить количество одновременных вызовов через оператора, например, если к 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>
Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Adblock detector