AWS sms-voice documentation change
Summary
Added documentation for SMS Protect event logging including new statuses, attributes, and example JSON structure
Security assessment
The changes document SMS Protect's message blocking capabilities (PROTECT_BLOCKED status) and security assessment features, but there is no evidence of addressing a specific existing vulnerability. This is preventive security documentation rather than remediation of a known issue.
Diff
diff --git a/sms-voice/latest/userguide/configuration-sets-event-format.md b/sms-voice/latest/userguide/configuration-sets-event-format.md index 57f4509a1..87a0ff8bb 100644 --- a//sms-voice/latest/userguide/configuration-sets-event-format.md +++ b//sms-voice/latest/userguide/configuration-sets-event-format.md @@ -5 +5 @@ -SMS example logVoice example event logMMS example log +SMS example logSMS Protect example logVoice example event logMMS example log @@ -10,0 +11,13 @@ AWS End User Messaging SMS can stream event data about SMS, MMS, and voice messa +###### Examples + + * SMS example log + + * SMS Protect example log + + * Voice example event log + + * MMS example log + + + + @@ -73 +86,85 @@ Attribute | Description - * **QUEUED** – The message is queued for delivery + * **QUEUED** – The message is queued for delivery. + * **PROTECT_BLOCKED** – The SMS message was blocked by SMS Protect Rules. + + +`messageStatusDescription` | A description of the message status. +`context` | Custom attributes you can specify and will be logged, when you send a message. +`totalMessageParts` | The number of message parts that AWS End User Messaging SMS created in order to send the message. Generally, SMS messages can contain only 160 GSM-7 characters or 67 non-GSM characters, although these limits can vary by country . If you send a message that exceeds these limits, AWS End User Messaging SMS automatically splits the message into smaller parts. We bill you based on the number of message parts that you send. For more information on message parts, see [What are the Message Parts per Second (MPS) limits](./sms-limitations-mps.html). +`totalMessagePrice` | The amount that we charged you to send the message. This price is shown in thousandths of a United States cent. For example, if the value of this attribute is `645`, then we charged you 0.645¢ to send the message (645 / 1000 = 0.645¢ = $0.00645). +`totalCarrierFee` | The total cost of carrier fees for a message. + +## SMS Protect example log + +The JSON object for a SMS event when using [SMS Protect](./protect.html) contains the data shown in the following example. + + + { + "eventType": "TEXT_PROTECT_BLOCKED", + "eventVersion": "1.0", + "eventTimestamp": 1686975103470, + "isFinal": true, + "originationPhoneNumber": "+12065550152", + "destinationPhoneNumber": "+14255550156", + "isoCountryCode": "US", + "mcc": "310", + "mnc": "800", + "messageId": "862a8790-60c0-4430-9b2b-658bdexample", + "messageRequestTimestamp": 1686975103170, + "messageEncoding": "GSM", + "messageType": "PROMOTIONAL", + "messageStatus": "PROTECT_BLOCKED", + "messageStatusDescription": "Message blocked by protect configuration", + "context": { + "account": "bar" + }, + "totalMessageParts": 1, + "totalMessagePrice": 0, + "totalCarrierFee": 0, + "protectConfiguration": { + "protectConfigurationId": "protect-d777777777777771bbd5d59f4d903479", + "protectStatus": "FILTER" + }, + "protectConfigurationAssessment": { + "protectRecommendation": "BLOCK" + "protectInsights": { + "blockReason": "AIT_SUSPECTED" + } + + } + } + +Attribute | Description +---|--- +`eventType` | The type of event. Values are listed in [Event types for SMS, MMS, and voice](./configuration-sets-event-types.html) +`eventVersion` | The version of the event JSON schema. +`eventTimestamp` | The time when the event was reported, shown as Unix time in milliseconds. +`isFinal` | `True` if this is the final status for the message. There are intermediate message statuses and it can take up to 72 hours for the final message status to be received. +`originationPhoneNumber` | The phone number that the message was sent from. +`destinationPhoneNumber` | The phone number that you attempted to send the message to. +`isoCountryCode` | The country that's associated with the recipient's phone number, shown in ISO 3166-1 alpha-2 format. +`mcc` | Mobile Country Codes identifies the country which a phone number belongs to. This field is optional and may not be present. +`mnc` | Mobile Network Codes identifies a mobile network operator. This field is optional and may not be present. +`messageId` | The unique ID that AWS End User Messaging SMS generates when it accepts the message. +`messageRequestTimestamp` | The time when the SMS message request was received, shown as Unix time in milliseconds. +`messageEncoding` | The encoding of the message. Possible values are **GSM** and **Unicode**. For more information on message encoding, see [SMS character limits](./sms-limitations-character.html). +`messageType` | The type of message. Possible values are **Promotional** and **Transactional**. +`messageStatus` | The status of the message. Possible values are: + + * **SUCCESSFUL** – The message has been accepted by the phone carrier. + * **DELIVERED** – The message has been accepted by the recipient's device. + * **PENDING** – The message hasn't yet been delivered to the recipient's device. + * **INVALID** – The destination phone number is invalid. + * **UNREACHABLE** – The recipient's device is currently unreachable or unavailable. For example, the device might be powered off, or might be disconnected from the network. You can try to send the message again later. + * **UNKNOWN** – An error occurred that prevented the delivery of the message. This error is usually transient, and you can attempt to send the message again later. + * **BLOCKED** – The recipient's device is blocking SMS messages from the originator phone number. + * **CARRIER_UNREACHABLE** – An issue with the mobile network of the recipient prevented the message from being delivered. This error is usually transient, and you can attempt to send the message again later. + * **SPAM** – The recipient's mobile carrier identified the contents of the message as spam and blocked delivery of the message. + * **INVALID_MESSAGE** – The body of the SMS message is invalid and can't be delivered. + * **CARRIER_BLOCKED** – The recipient's carrier has blocked delivery of this message. This often occurs when the carrier identifies the contents of the message as unsolicited or malicious. + * **TTL_EXPIRED** – The SMS message couldn't be delivered within a certain time frame. This error is usually transient, and you can attempt to send the message again later. + * **ACCEPTED** – The SMS message was accepted. + * **FAILED** – The SMS message failed to be delivered to the recipient's device. + * **SENT** – The message has been sent but not delivered to the recipient's device. + * **UNROUTABLE** – Not able to route due to a bad account configuration. + * **QUEUED** – The message is queued for delivery. + * **PROTECT_BLOCKED** – The SMS message was blocked by SMS Protect Rules. @@ -80,0 +178,2 @@ Attribute | Description +`protectConfiguration` | The Id of the protect configuration that was used when sending the message and the status the destination country was in at the time. For more information on SMS Protect, see [SMS Protect](./protect.html). +`protectConfigurationAssessment` | An assessment of whether SMS Protect thinks your message should be Allowed or Blocked from sending and the blocking reasons when available. @@ -128,0 +228 @@ Attribute | Description + * **PROTECT_BLOCKED** – The SMS message was blocked by SMS Protect Rules.