Python ARI播放状态



我在这里使用ARI代码:

http://techvoiper.blogspot.com/2015/08/asterisk-ari-interfacing-using-python.html

现在,我想知道的是,如果呼叫者在音频尚未完成时挂断,播放的状态如何?

播放开始时,会注册"PlaybackStarted"事件,完成后会注册"PlaybackFinished"。但是,当呼叫者在播放音频时挂断电话时,它仍然会返回"PlaybackFinished"。

在这种情况下,我希望将playback_status设置为如下内容:playback_status='partial'。

我怎样才能做到这一点?

我的ChannelHangupRequest给我:

{u'timestamp':u'2017-01-27T10:04:17.447+0545',u'type':u'ChannelHangupRequest',u'channel':{u'accountcode':u'',u'name':u'SIP/3002-00000012',u`语言':u`en',u`caller':{u'名称':u`,u'number':u'3002'},u'创建时间':u'12017-01-27T0:04:15.847+0545,u'state':u''Up,u'connect ed':{u'name':u'',u'number':u'},u'dialplan':{u'priority':2,u'extend':u'3001',u'ntext':u'default'},u'id':u'1485490755.36'}、u'application':u'helloworld'}

您可以在ari-py-github存储库中找到API的示例

在那里你会看到有一个ChannelHangupRequest事件,它有一个原因整数属性,然后你可以在这里找到映射定义

应该使用client.on_channel_event("ChannelHangupRequest", <callback_function>)捕获事件。

callback_function将接收一个通道对象作为第一个参数,接收一个事件字典作为第二个参数。event字典将具有对应于事件(ChannelHangupRequest)的type密钥和对应于整数值(原因的映射)的cause密钥。

通过这种方式,您将能够区分播放是否通过或通话是否挂断。

相关内容

  • 没有找到相关文章

最新更新