2017-01-26 2 views
0

私はここからARIのコードを使用しています:PythonのARIの再生状態

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

、私は何をしたいオーディオが完了していない一方で、発信者が電話を切った場合は、再生の状況を知っているのですか?

再生開始時に 'PlaybackStarted'イベントが登録され、完了すると 'PlaybackFinished'が登録されます。しかし、オーディオが再生されている間に発信者が電話を切ると、まだ 'PlaybackFinished'が返されます。

この場合、playback_statusを playback_status = 'partial'のように設定します。

どうすればこの問題を解決できますか?

{u'timestamp ':u'2017-01-27T10:04:+ 0545 17.447'、u'type ':u'ChannelHangupRequest'、u'channel」を

私ChannelHangupRequestは私に与えます:{u'accountcode ':u' '、u'name':u'SIP/3002-00000012 '、u'language':u'en '、u'caller':{u'name ':u' '、 'u'number':u'300 ''、u'creationtime ':u'2017-01-27T10:04:15.847 + 0545'、u'state ':u'Up'、u'connected ':{u'name ':u'priority':2、u'exten ':u'3001'、u'context ':u'default'}、 'u'number':u'dialplan ' u'id ':u'1485490755.36'}、u'application ':u'hello-world'}

答えて

1

あなたのサンプルを見つけることができますari-py github repository

内の電子のAPIがありますが原因整数属性を持つChannelHangupRequestイベントがあることがわかります、あなたはその後、キャッチclient.on_channel_event("ChannelHangupRequest", <callback_function>)を使用する必要がありますマッピング定義here

イベントを見つけることができます。

callback_functionは、チャネルオブジェクトを第1引数として、イベント辞書を第2引数として受け取ります。 event辞書には、イベント(ChannelHangupRequest)に対応するtypeキーと、対応する整数値のキー(原因のマッピング)causeがあります。

このようにすると、再生が終了したか、電話が切断されたかどうかを区別できます。

関連する問題