Asterisk在电话应答和拨出电话上运行脚本

时间:2017-08-25 13:31:38

标签: asterisk asteriskami

我试图让我的Asterisk在某个电话(Sip Phone)接听或拨打电话以及结束该电话时运行脚本。这样做的目的是在同一房间内与电话通话时自动静音我的电视。

我尝试过使用系统命令,但是没有获得有关应答的手机的信息。由于我正在拨打多部电话,我无法区分电视机旁边的电话或完全不同的电话。我要拨打电话也有同样的问题。

对此有不同的处理方法吗?我也尝试过使用AMI,但我还没有找到一种方法来获取特定对等体的状态(离线,在线,在呼叫,滞后)。

1 个答案:

答案 0 :(得分:0)

假设你有ext sip / 111

支持扩展

[from-internal-very-special]
exten => 111,1,UserEvent(TVRingStarted)
same => n,Set(CHANNEL(hangup_handler_push)=from-internal-very-special,ends,1)
same => n,Dial(SIP/111,,U(from-internal-very-special,answer,1))

exten =>answer,1,UserEvent(TVRingAnswer)
same => n,Set(GOSUB_RESULT=);we accept call
same => n,Return;continue

exten => ends,1,Noop(end of call)
same => n,UserEvent(TVRingEnds)
same => n,Return;

之后呼叫分机为Local / 111 @ from-internal-very-special / n而不是SIP / 111

您将拥有可以通过AMI解析的用户事件。或者您可以根据需要将其替换为系统调用。