У меня есть следующая функция с целью получить входящие звонки с моего веб-интерфейса Python с сервера Asterisk.Asterisk AMI входящие вызовы не вызывают звонки
def fetch_events(event, manager):
with app.app_context():
if event.name == 'CoreShowChannel':
id = event.message['accountcode']
data = {
'user_id': id,
'caller_id': event.message['CallerIDnum'],
'channel': event.message['Channel'],
'duration': event.message['Duration'],
'context': event.message['Context'],
'extension': event.message['Extension'],
'line': event.message['ConnectedLineNum'],
#'channel_state': event.message['ChannelState'],
'channel_state': event.message['ChannelStateDesc'],
}
user = System().getUserById(id)
if user:
profile = {
'firstname': user['firstname'],
'lastname': user['lastname']
'email': user['email']
}
else:
profile = {
'first_name': "No firstname",
'last_name': "No lastname"
}
data.update(profile)
g.channels.append(data)
if event.name == 'CoreShowChannelsComplete':
g.complete = True
if not event.name:
data = {
"connectivity":"Not connected",
"event-name":"No event name"
}
g.channels.append(data)
g.complete = True
@app.route('/incoming-calls')
def incoming_calls():
/**** I have already login and connect *****/
g.channels = []
g.complete = False
manager.register_event('*', fetch_events)
res = manager.send_action({'Action':'CoreShowChannels'})
try:
while not g.complete:
time.sleep(0.5)
manager.close()
return json.dumps(g.channels)
Но когда я пытаюсь получить события входящих вызовов после регистрации метода handle_event, я получаю пустой массив. Кажется, что что-то не так с методом handle_event, но я не могу его найти.
Пожалуйста, Милорад, не могли бы вы лучше объяснить мне код. Я до сих пор не понимаю тебя. – Oladapo
И даже CoreShowChannel, который я сейчас использую, не показывает активных вызовов. – Oladapo
Мне нужно проверить имя события как это -> if event.name == 'Newexten', зарегистрировать и отправить действие вроде этого -> manager.register_event ('*', handle_event) res = manager.send_action ({ Action ':' Newevent '}) – Oladapo