如何选择和拨打 asterisk 中可用的随机 sip peer

问题描述 投票:0回答:3

嗨,我是 asterisk 的新手,我喜欢拨号到一个随机且可用的 sip peer。在这里,我尝试了一些技术,例如使用 ChanIsAvail(SIP/user1&SIP/user2&SIP/user3,j) 从用户列表中进行选择。我想选择可用的随机用户对等体。

  exten => _XXXXXXX,1,ChanIsAvail(SIP/user1&SIP/user2&SIP/user3,j)
  exten => _XXXXXXX,n,Dial(${AVAILORIGCHAN})

sip 用户喜欢

  [user1]
  type=peer
  username=user1
  secret=user1XX
  host=dynamic
  context=from-pstn

  [user2]
  type=peer
  username=user2
  secret=user2XX
  host=dynamic
  context=from-pstn

  [user3]
  type=peer
  username=user3
  secret=user3XX
  host=dynamic
  context=from-pstn

  .
  .
  .

我如何从这些..中选择可用(不忙)用户?

asterisk sip pbx
3个回答
0
投票

没有以星号方式实现。

您已经使用了 GotoIf、Set、变量、简单循环和带有 RAND 函数的 CUT。

所以只需组织随机选择频道,保存在已测试频道的变量中。

如果未测试,请检查是否可用并致电。失败时根据 DIALSTATUS 尝试下一步。

http://www.voip-info.org/wiki/view/Asterisk+cmd+GotoIf

http://www.voip-info.org/wiki/view/Asterisk+cmd+Set

http://www.voip-info.org/wiki/view/Asterisk+variables

http://www.voip-info.org/wiki/view/Asterisk+func+cut

http://www.voip-info.org/wiki/view/Asterisk+func+rand


0
投票

好吧,你可以用编程语言做到这一点。只需获取在线 sip 用户列表并将它们设置在数组或其他集合中,然后你就可以通过调用文件来调用那个人(通过从该列表中选择随机人)或其他方式。


0
投票

最简单的方法是创建一个队列。文件 queues.conf

[users]
member=SIP/user1,0
member=SIP/user2,0
member=SIP/user3,0
strategy = random

文件扩展名.conf

exten => _XXXXXXX,1,Queue(users)

来自队列用户的随机免费(NOT_INUSE)成员将响铃

© www.soinside.com 2019 - 2024. All rights reserved.