频道发起,如何从本地频道拨打电话? (呼叫对讲并发送dtmf)

时间:2016-04-21 15:17:08

标签: asterisk freepbx

我的目标是: 在活动呼叫中运行由动态功能激活的后台任务,将执行拨号到另一个EXT并发送DTMF。 这意味着,当用户与某人通话时,当用户按下5555时,门将被打开。 为了今天打开门,我必须手动拨打EXT 6(门)并发送DTMF数字:00 * 当用户按下5555而不干扰当前通话时,所有这一切都必须自动发生。 我之前尝试使用拨号完成所有这些操作,但是拨号会阻止呼叫或与另一部分机建立桥接,然后我将丢失原始呼叫。 我发现我需要用ASYNC做这个,意味着我不能使用dialplan,我需要使用CLI,然后发起一些如何。

Asterisk需要创建本地会话/本地频道并建立/连接到门扩展,然后发送DTMF和挂断 所有这些 - 在背景中。

这是我到目前为止所做的事情:

features_applicationmap_custom.conf

openthedoor => 5555,呼叫者,宏,OpenIntercomCall

然后在 - >

extensions_custom.conf

[宏OpenIntercomCall] exten => s,1,系统(asterisk -rx"频道发起SIP / 6扩展@yoyo")

我不明白我如何从星号(使用本地或随机频道)呼叫SIP / 6,然后在接听时发送DTMF。

门ext是SIP / 6,00 *是打开它的dtmf。

我想要做的是,当呼叫中的用户5555时,门将被打开。 意味着我想要星号来调用对讲机并发送dtmf

1 个答案:

答案 0 :(得分:0)

星号内部没有任何星号执行星号。你可以做Originate命令。

  

美源(tech_data,类型,ARG1 [,ARG2 [,ARG3 [,超时]]])

例如,你可以做这样的事情

def find(*args)
  find_all(*args).first || raise(MissingTemplate.new(self, *args))
end

def find_all(path, prefixes = [], *args)

应该满足您的需求。