如何在 Amazon Connect 上获取已拨电话的状态?
How to get status of placed call on Amazon Connect?
我正在编写一个通过 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
问题是 "send call" 是异步启动的,因此无法立即清楚调用是否成功。为了检查呼叫,我调用 "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
)
我希望它是 return "connected_at" 或类似的东西,我可以用它来识别调用的结果,但是,它只有 returns "custom" 属性自己设置的。
这是我找到的解决方案:
1) 在联系流中,我添加了 "Set Attribute" 节点,其中我在开始后立即设置了 "status=1"。基本上,如果呼叫进入联系流程(即接听电话),它会被标记为成功完成
Set Contact Sttributes
2) 在我的 Python 代码 (lambda) 中,我检查状态是否显示,如果在这么多秒内没有显示,我取消呼叫并尝试另一个号码:
attr = client.get_contact_attributes(
InstanceId=instanceid,
InitialContactId=contactid
)
stop_call=client.stop_contact(
ContactId=contactid,
InstanceId=instanceid
)
我正在编写一个通过 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
问题是 "send call" 是异步启动的,因此无法立即清楚调用是否成功。为了检查呼叫,我调用 "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
)
我希望它是 return "connected_at" 或类似的东西,我可以用它来识别调用的结果,但是,它只有 returns "custom" 属性自己设置的。
这是我找到的解决方案:
1) 在联系流中,我添加了 "Set Attribute" 节点,其中我在开始后立即设置了 "status=1"。基本上,如果呼叫进入联系流程(即接听电话),它会被标记为成功完成
Set Contact Sttributes
2) 在我的 Python 代码 (lambda) 中,我检查状态是否显示,如果在这么多秒内没有显示,我取消呼叫并尝试另一个号码:
attr = client.get_contact_attributes(
InstanceId=instanceid,
InitialContactId=contactid
)
stop_call=client.stop_contact(
ContactId=contactid,
InstanceId=instanceid
)