如何从拨号方案自动将用户添加到 confbridge asterisk?

How to automatically add users to confbridge asterisk from dialplan?

[play-context]
exten => _X.,1,Answer()
exten => _X.,n,NoOp('Exten:')
exten => _X.,n,NoOp(${EXTEN})
exten => _X.,n,ConfBridge(dconf-${EXTEN}-${STRFTIME(${EPOCH},,%d.%m.%Y-%H:%M:%S)})
exten => _X.,n,Originate(SIP/5678,exten,conferences,100,1)

[conferences]
exten => _X.,1,NoOp(${EXTEN})
exten => _X.,n,ConfBridge(dconf-${EXTEN}-${STRFTIME(${EPOCH},,%d.%m.%Y-%H:%M:%S)})

当我创建一个新的 confBridge 会议时,我想加入一些用户。我怎样才能自动做到这一点?我尝试了这个配置,但没有用。在这一行之前

exten => _X.,n,Originate(SIP/5678,exten,conferences,100,1)

就是达不到。我不明白为什么。 请帮忙

当你

 Confbridge

它现在在桥中,在您退出桥之前不会进行下一个分机。

因此您必须先执行 Originate BEFORE 或在其他线程(通过本地通道)中并行执行。

当你的拨号规则中的Confbridge语句出现时,你的频道(你拨打会议号码时的音频)将进入会议。 Confbridge 的问题在于,一旦拨号方案到达 Confbridge 语句,您将一直呆在那里,直到您退出它。如果你想在那里找到一些朋友你应该做一些以前的任务

  • 检查会议是否成立(如果已经有其他方在其中,见功能CONFBRIDGE_INFO),如果是,只需将自己加入即可
  • 如果没有,请建立会议邀请您想要的人并将您自己添加到会议中

因此,会议的拨号方案通常并不简单。假设您不想进行第一次检查。因此,您在建立会议时包括了一个人。为了简化和避免一些麻烦,我将为会议使用一个名称,该名称不依赖于读取拨号方案的第二秒(取决于您如何维护拨号方案,您的会议可能与您邀请您的伙伴),让我们假设会议的名称仅取决于所拨的 EXTEN。你应该做类似的事情:

exten => _X,1,Answer()
...
same => n,Originate(SIP/5678,app,ConfBridge,"${EXTEN},rest-of-parameters-for-5678")
... (Check ORIGINATE_STATUS if you do really need your friend)
same => n,ConfBridge(${EXTEN},rest-of-parameters-for-youself)

这里我使用了带有参数app的originate。当然,您可以按照@arheops 的提示,将 exten 与本地频道一起使用。但如果这样做,请注意秒数;)。

如果你想在asterisk启动时自动建立会议,考虑在cli.conf中包含一些originate语句。