

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用 Amazon Chime SDK PSTN 音频服务进行出站呼叫
<a name="use-create-call-api"></a>

要创建出站呼叫，您可以使用 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateSipMediaApplicationCall.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateSipMediaApplicationCall.html) API。API 调用指定 `SIP media application ID` 的终端节点。客户可以通过从端点提供不同的信令和 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_SipMediaApplication.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_SipMediaApplication.html) 操作来控制呼叫流程。

如果成功响应，API 会返回 202 http 状态码以及 transactionId，您可以将其与 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_UpdateSipMediaApplicationCall.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_UpdateSipMediaApplicationCall.html) API 一起使用来更新正在进行的呼叫。

下图显示了出站呼叫对 AWS Lambda 函数端点进行的调用。

![对 AWS Lambda 端点进行调用的编程流程示意图。](http://docs.aws.amazon.com/zh_cn/chime-sdk/latest/dg/images/sip-api-1.png)


针对出站呼叫的不同状态调用为 SIP 媒体应用程序配置的终端节点。当客户发起呼叫时，Amazon Chime SDK 会使用 `NEW_OUTBOUND_CALL` 调用事件类型调用终端节点。

此示例显示 `NEW_OUTBOUND_CALL` 的典型调用事件。

```
{
    "SchemaVersion": "1.0",
        "Sequence": 1,
        "InvocationEventType": "NEW_OUTBOUND_CALL",
        "CallDetails": {
            "TransactionId": "{{transaction-id}}",
            "AwsAccountId": "{{aws-account-id}}",
            "AwsRegion": "us-east-1",
            "SipApplicationId": "{{sip-application-id}}",
            "Participants": [
                {
                    "CallId": "{{call-id-1}}",
                    "ParticipantTag": "LEG-A",
                    "To": "+1{{xxxx}}",
                    "From": "+1{{xxxxxxx}}",
                    "Direction": "Outbound",
                    "StartTimeInMilliseconds": "{{159700958834234}}"
                }
            ]
    }
}
```

任何与事件相关的 AWS Lambda 调用的响应都将被忽略。

收到接收器的 `RINGING` 通知时，Amazon Chime SDK 会再次调用已配置的终端节点。

此示例显示 `RINGING` 的典型调用事件。

```
{
    "SchemaVersion": "1.0",
        "Sequence": 1,
        "InvocationEventType": "RINGING",
        "CallDetails": {
            "TransactionId": "{{transaction-id}}",
            "AwsAccountId": "{{aws-account-id}}",
            "AwsRegion": "us-east-1",
            "SipApplicationId": "{{sip-application-id}}",
            "Participants": [
                {
                    "CallId": "{{call-id-1}}",
                    "ParticipantTag": "LEG-A",
                    "To": "+1{{xxxx}}",
                    "From": "+1{{xxxxxxx}}",
                    "Direction": "Outbound",
                    "StartTimeInMilliseconds": "{{159700958834234}}"
                }
           ]
    }
}
```

任何与事件相关的 AWS Lambda 调用的响应都将被忽略。

如果接收器没有应答呼叫，或者由于错误导致呼叫失败，Chime 会断开呼叫并使用 `Hangup` 事件类型调用终端节点。有关 `Hangup` 事件类型的更多信息，请参阅 [使用 Amazon Chime SDK PSTN 音频服务结束呼叫](case-5.md)。

如果呼叫得到应答，Chime 会通过 `CALL_ANSWERED` 操作调用终端节点。此示例显示典型调用事件。

```
{
  "SchemaVersion": "1.0",
    "Sequence": 1,
    "InvocationEventType": "CALL_ANSWERED",
    "CallDetails": {
        ""TransactionId": "{{transaction-id}}",
            "AwsAccountId": "{{aws-account-id}}",
            "AwsRegion": "us-east-1",
            "SipApplicationId": "{{sip-application-id}}",
            "Participants": [
                {
                    "CallId": "{{call-id-1}}",
                    "ParticipantTag": "LEG-A",
                    "To": "+1{{xxxx}}",
                    "From": "+1{{xxxxxxx}}",
                    "Direction": "Outbound",
                    "StartTimeInMilliseconds": "{{159700958834234}}",
                "Status": "Connected"
            }
        ]
    }
}
```

此时，您可以通过使用操作列表响应调用来返回操作。如果不希望执行任何操作，则使用空列表来响应。对于每次调用，您最多可以使用 10 个操作进行响应，并且每次 AWS Lambda 调用可以调用 Lambda 函数 1,000 次。有关使用操作集进行响应的更多信息，请参阅 [使用 Amazon Chime SDK PSTN 音频服务通过操作列表响应调用](invoke-on-call-leg.md)。