如何在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进行限制就可以了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的Asterisk配置文件示例,用于实现自动呼叫功能: 1. 创建一个名为`extensions.conf`的文件,用于配置呼叫流程和逻辑。 ```conf [auto-dial] exten => s,1,Answer() ; 接听呼叫 same => n,Playback(welcome) ; 播放欢迎语音 same => n,Wait(1) ; 等待1秒 same => n,Dial(SIP/1001,20) ; 呼叫分机号1001,最长等待20秒 same => n,Hangup() ; 挂断呼叫 ; 添加更多自动呼叫流程 ``` 2. 创建一个名为`sip.conf`的文件,用于配置SIP用户和扩展。 ```conf [1001] type=friend context=auto-dial ; 使用自动呼叫流程的上下文 host=dynamic ; 动态IP地址 secret=password ; SIP密码 ``` 3. 保存并加载Asterisk配置文件。 以上示例,我们创建了一个名为`auto-dial`的上下文,在该上下文定义了一个名为`s`的扩展。当有呼叫进入时,Asterisk会接听呼叫,播放欢迎语音,然后呼叫分机号1001。如果分机号1001忙碌或无人接听,Asterisk会等待一段时间后挂断呼叫。 你可以根据实际需求在`extensions.conf`文件添加更多的自动呼叫流程。在`sip.conf`文件,你可以添加更多的SIP用户和扩展。 请注意,以上示例是一个简单的配置示例,实际使用时可能需要根据你的具体需求进行修改和扩展。你还可以使用更高级的Asterisk功能和特性,如呼叫排队、坐席状态管理等,来实现更复杂的自动呼叫功能。 在配置完成后,保存并加载Asterisk配置文件,然后重新启动Asterisk服务,以使配置生效。你可以使用Asterisk的命令行界面或管理界面进行配置和管理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值