

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

# 了解 Amazon Chime SDK PSTN 音频服务的电话事件
<a name="pstn-invocations"></a>

当呼叫期间发生某些事件时，音频服务会调用您的 AWS AWS Lambda 函数。以下示例显示了事件，并且示例后的文本对每个事件进行了解释。

```
{ 
    "SchemaVersion": "1.0", 
    "Sequence": 3, 
    "InvocationEventType": "event-type", 
    "CallDetails": { 
        "TransactionId": "transaction-id-1", 
        "AwsAccountId": "aws-acct-id-1", 
        "AwsRegion": "us-east-1", 
        "SipMediaApplicationId": "sip-media-app-id-1", 
        "Participants": [ 
            { 
                "CallId": "call-id-1", 
                "ParticipantTag": "LEG-A", 
                "To": "e164PhoneNumber", 
                "From": "e164PhoneNumber", 
                "Direction": "Inbound/Outbound", 
                "StartTimeInMilliseconds": "1641998241509", 
                "Status": "Connected/Disconnected" 
            } 
        ] 
    } 
}
```

**SchemaVersion**  
用于创建此事件对象的架构版本。

**Sequence**  
调用您的 AWS Lambda 函数的事件序列。每次调用期间调用函数时，序列会递增。

**InvocationEventType**  
触发 AWS Lambda 调用的事件类型。有关更多信息，请参阅本主题后面的[事件类型](#pstn-event-types)。

**CallDetails**  
与调用关联的呼叫的 AWS Lambda 相关信息。

**TransactionId**  
与调用关联的呼叫的 AWS Lambda ID。

**AwsAccountId**  
与导致呼叫路由的 SIP 媒体应用程序关联的 AWS 账户 ID。

**SipMediaApplicationId**  
与调用关联的 SIP 媒体应用程序的 ID。

**Participants**  
有关调用函数的呼叫参与者的信息。 AWS AWS Lambda 

**CallId**  
分配给每个参与者的唯一 ID。

**ParticipantTag**  
每个调用参与者会获得一个标签，`LEG-A` 或 `LEG-B`。

**To**  
参与者的“收件人”电话号码，格式为 E.164。

**From**  
参与者的“发件人”电话号码，格式为 E.164。

**Direction**  
调用分支的来源方向。`Inbound` 表示对音频服务的调用。`Outbound` 表示从音频服务发起的调用。

**StartTimeInMilliseconds**  
以毫秒为单位的纪元时间，从参与者加入调用时开始。

**Status**  
参与者是 `Connected` 或 `Disconnected`

## 事件类型
<a name="pstn-event-types"></a>

音频服务使用以下这些事件类型调用 Lambda 函数：

**NEW\$1INBOUND\$1CALL**  
新调用由与您的 SIP 媒体应用程序关联的电话号码发起。

**NEW\$1OUTBOUND\$1CALL**  
已通过 [CreateSipMediaApplicationCall](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_CreateSipMediaApplicationCall.html)API 进行了新的出站呼叫。

**ACTION\$1SUCCESSFUL**  
从您的 AWS Lambda 函数返回的操作已成功。成功的操作包括与成功操作相匹配的 `ActionData`。  

```
    "ActionData": {
        // The previous successful action 
    },
```

**ACTION\$1FAILED**  
从您的 AWS Lambda 函数返回的操作未成功。不成功的操作包括与失败操作相匹配的 `ActionData`、错误类型以及描述失败的错误消息：  

```
    "ActionData": {
        // The previous unsuccessful action
        "ErrorType": "error-type",
        "ErrorMessage": "error message"
    },
```

**ACTION\$1INTERRUPTED**  
运行过程中的操作被 [ UpdateSipMediaApplicationCall](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_UpdateSipMediaApplicationCall.html)API 调用中断。`ActionData` 包括中断的操作：  

```
"ActionData": {
        // The action that was interrupted
    },
```

**HANGUP**  
用户或应用程序挂断调用分支。`ActionData` 包括有关该事件的以下详细信息：  

```
   "ActionData": {
        "Type": "Hangup",
        "Parameters": {
            "SipResponseCode": 486,
            "CallId": "c70f341a-adde-4406-9dea-1e01d34d033d",
            "ParticipantTag": "LEG-A"
        }
    },
```  
**Type**  
挂断  
**Parameters**  
有关 `HANGUP` 事件的信息。  
+ **SipResponseCode**— 与事件关联的响应代码。最常见的代码是：
  + **0** — 正常清除
  + **480** — 无应答
  + **486** — 用户占线
+ **CallId**挂断电话的参与者的 ID。
+ **ParticipantTag**挂断的参与者的标签。

**CALL\$1ANSWERED**  
音频服务已传入调用。除非呼叫已桥接，否则此事件会在拨出呼叫时返回。

**INVALID\$1LAMBDA\$1RESPONSE**  
对上次 AWS Lambda 调用的响应导致了问题。`ActionData` 包括以下附加字段：  

```
    "ErrorType": "error-type-1", 
    "ErrorMessage": "error-msg-1"
```

**DIGITS\$1RECEIVED**  
应用程序在 `ReceiveDigits` 操作完成后收到 DTMF 位数。`ActionData` 包括收到的位数。  

```
    "ActionData": {
        "ReceivedDigits": ###
        // The ReceiveDigits action data
    },
```

**CALL\$1UPDATE\$1REQUESTED**  
[UpdateSipMediaApplicationCall](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_UpdateSipMediaApplicationCall.html)API 已被调用。`ActionData` 包括有关更新请求的信息：  

```
    "ActionData": {
        "Type": "CallUpdateRequest", 
        "Parameters": {
            "Arguments": {
                "leg": "LEG-A"
                }
            }
        },
    }
```

**RINGING**  
调用分支正在响铃