0

我正在编写一个通过 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”或类似的东西,我可以用它来识别调用的结果,但是,它只返回我自己设置的“自定义”属性。

4

1 回答 1

0

这是我找到的解决方案:

1)在联系流中,我添加了“设置属性”节点,我在开始后立即设置“状态=1”。基本上,如果呼叫进入联系流(即接听电话),则将其标记为成功完成

设置联系人属性

2)在我的 Python 代码(lambda)中,我检查状态是否显示,如果在这么多秒内没有显示,我取消呼叫并尝试另一个号码:

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

stop_call=client.stop_contact(
    ContactId=contactid,
    InstanceId=instanceid
)
于 2019-01-05T00:22:47.030 回答