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

时间:2017-11-18 10:11:30

标签: asterisk sip conference

[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)

只是没达到。我不懂为什么。 请帮忙。

3 个答案:

答案 0 :(得分:0)

当你这样做时

 Confbridge

它现在处于桥接状态,直到您退出桥接时才进入下一个扩展。

所以你之前做过Originate或者在其他线程(通过Local channel)并行执行。

答案 1 :(得分:0)

您的频道(当您拨打会议号码时的音频)将在您的拨号方案中的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 。当然,您可以按照@arheops的提示使用扩展和本地频道。但如果你这样做,请小心秒;)。

如果您希望在星号开始时自动停止会议,请考虑在cli.conf中包含一些原始语句。

答案 2 :(得分:0)

我将 Originate 放在 ConfBridge 之前,但它没有按我的预期工作。

[CONFERENCE-ADMIN]
exten => 1111,1,Progress()
exten => 1111,2,Wait(1)
same => n,Originate(SIP/7002,app,ConfBridge,1)
same => n,Originate(SIP/7003,app,ConfBridge,1)
same => n,ConfBridge(1,default_bridge,admin_user)
I tried above things . Few things are not as per my expectation

我想开始第一个会议,然后想同时呼叫 7002 和 7003 这里是先拨7002,播放铃声,然后拨7003。这不是我需要的。