zoukankan      html  css  js  c++  java
  • 如何在asterisk中限制呼叫路数

     
    在asterisk中,对于呼叫个数是可以通过call-limit进行限制的。限制办法是通过修改asterisk.conf中maxcalls参数,设置允许的最大呼叫数。这里的最大呼叫数是包括所有的呼叫数,出境、入境、分机间等呼叫。
     
     
    为了分别限制出境/入境/分机间呼叫,可以通过GROUP函数来完成。在asterisk cookbook这本书中提到了如何使用GROUP函数进行呼叫并发数限制。例如:

    点击(此处)折叠或打开

    1. exten => _1NXXNXXXXXX,1,Set(GROUP(outbound)=myprovider)
    2. same => n,Set(COUNT=${GROUP_COUNT(myprovider@outbound)})
    3. same => n,NoOp(There are ${COUNT} calls for myprovider.)
    4. same => n,GotoIf($[${COUNT} > 2]?denied:continue)
    5. same => n(denied),NoOp(There are too many calls up already. Hang up.)
    6. same => n,HangUp()
    7. same => n(continue),GoSub(callmyprovider,${EXTEN},1})
    这里,通过GROUP为每个通道设置了一个group的变量,GROUP_COUNT统计出同一个GROUPID下的通道数目,在拨号方案中通过比较COUNT进行判断进而达到限制的目的。
    为提高可用性,可以将上面的例子中的2,作为一个全局的变量预定义好,需要修改时,直接修改变量就可以了。
    对于出境和入境的呼叫分别按照group进行限制就可以了
  • 相关阅读:
    Git 的使用
    state介绍
    salt之pillar组件
    salt之grains组件
    python之commands模块
    install命令
    salt常用模块及API
    locate包的安装
    集中化管理平台Saltstack安装配置
    系统批量运维管理器pexpect的使用
  • 原文地址:https://www.cnblogs.com/noobkey/p/5009204.html
Copyright © 2011-2022 走看看