Как получить статус звонка на Amazon Connect? - PullRequest
0 голосов
/ 01 января 2019

Я пишу приложение, которое отправляет автоматический звонок через Amazon Connect.Приложению необходимо повторить попытку к другому номеру назначения, если первый не удалось получить.Приложение написано на Python3 и должно быть размещено в Lambda.

Этот ресурс используется https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/connect.html#Connect.Client.get_contact_attributes https://docs.aws.amazon.com/connect/latest/APIReference/API_GetContactAttributes.html

Проблема заключается в том, что "отправить вызов"запускается асинхронно, и поэтому не сразу понятно, был ли вызов успешным или нет.Чтобы проверить вызов, я вызываю «get_contact_attributes», чтобы определить статус или любые атрибуты, которые могут указывать на статус выполненного вызова.

response=client.start_outbound_voice_contact(
    ContactFlowId='XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX',
    DestinationPhoneNumber=event["DestinationPhoneNumber"],
    SourcePhoneNumber=event["OriginationPhoneNumber"],
    InstanceId="YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY",
    Attributes={
        "message":f'{event["message"]}'
    }
)
contactid=response["ContactId"]

attr = client.get_contact_attributes(
    InstanceId='YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY',
    InitialContactId=contactid
)

Я ожидал, что он вернет «connected_at» или что-то подобное, я мог бы использоватьоднако, чтобы определить исход вызова, он возвращает только «пользовательские» атрибуты, установленные мной.

1 Ответ

0 голосов
/ 05 января 2019

это решение, которое я нашел:

1) в потоке контактов я добавил узел «Установить атрибут», где я установил «статус = 1» сразу после запуска.По сути, если вызов входит в поток контактов (т. Е. Вызов перехвачен), он помечается как успешно завершенный

Установить атрибуты контакта

2) в моем коде Python (лямбда)я проверяю статус, чтобы показать, и если это не так много секунд, я отменяю вызов и пробую другой номер:

attr = client.get_contact_attributes(
    InstanceId=instanceid,
    InitialContactId=contactid
)

stop_call=client.stop_contact(
    ContactId=contactid,
    InstanceId=instanceid
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...