Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Identify options in AWS Texting SDK. #357

Open
2 of 3 tasks
Tracked by #769
JRHutson opened this issue Nov 11, 2021 · 2 comments
Open
2 of 3 tasks
Tracked by #769

Identify options in AWS Texting SDK. #357

JRHutson opened this issue Nov 11, 2021 · 2 comments
Labels
Complexity: Small Issue has detailed instructions to resolve and the task is simple. draft p-Feature: Profile Coordinator points: 1 Can be done in 4-6 hours Research Role: Back End

Comments

@JRHutson
Copy link
Member

JRHutson commented Nov 11, 2021

Overview

If we are going to leverage the AWS Texting SDK we need to understand the capabilities so that we can design an effective process.

Action Items

  • Identify differences in tiers for SDK
  • Determine what tier is needed to meet requirements below
  • Identify Design/Development tasks necessary to integrate into MVP

Requirements:

  • Coordinators need to be able to send text messages from the platform interface
  • Guests and Hosts need to be able to reply to the coordinator from the message they received.
  • Coordinators need to have new messages forwarded to their phone.
    - Ex. if a guest messages that they will miss a meeting the host needs to have the info forwarded to them in the field.
  • Coordinator Phone Number must always stay confidential.
  • Coordinators need to be able to have hours of availability and away messages when they are not available.
  • Guests/Hosts will need to be able to respond YES/NO; based on workflow, may have branching paths back to system

Resources/Instructions

Amazon Documentation

@JRHutson
Copy link
Member Author

@tylerthome, @kpoints and I discussed this with Bonnie tonight. Trying to determine what level of effort will be needed for the sms integration. She suggested it may need to be another micro-service. Does anyone from the team have a bit of time to take a look and get a feeling for the best approach?

@paulespinosa
Copy link
Member

Identify differences in tiers for SDK

SMS within AWS

AWS provides two products with Short Mesage Service (SMS)/texting capabilities:

  • Amazon Simple Notification Service (Amazon SNS):
    • A general purpose publish-subscribe messaging service.
    • Provides one-way SMS from application to person. "Amazon SNS does not currently support two-way SMS capabilities, except for opt out where required by local regulations." Q: Is two-way SMS supported?
  • Amazon Pinpoint:
    • A marketing communication service.
    • Provides two-way SMS capabilities.
    • Can utilize other AWS products (e.g. SNS or AWS Lambda) to route or process text messages outside of Amazon Pinpoint.

SMS outside of AWS

SMS APIs exist from services such as Plivo, Twilio, and TextMagic.

https://www.plivo.com/sms/
https://www.twilio.com/en-us/messaging/channels/sms
https://www.textmagic.com/business-text-messaging/

Determine what tier is needed to meet requirements below

  • Coordinators need to be able to send text messages from the platform interface
  • Guests and Hosts need to be able to reply to the coordinator from the message they received.
  • Coordinators need to have new messages forwarded to their phone.
    • Ex. if a guest messages that they will miss a meeting the host needs to have the info forwarded to them in the field.
  • Coordinator Phone Number must always stay confidential.
  • Coordinators need to be able to have hours of availability and away messages when they are not available.
  • Guests/Hosts will need to be able to respond YES/NO; based on workflow, may have branching paths back to system

The requirements above indicate the use of two-way messaging through a single HUU SMS number.
Note: TBD if it is possible for Coordinator to respond to the message through the HUU SMS number.

With an all AWS approach, the following products/services will be used:
Required

  • Amazon Pinpoint for two-way SMS capabilities
    • Request a number during Pinpoint setup. Pinpoint does not support porting a number from an external provider. The following number types are available:
      • 10 digit long code (10DLC):
        • https://docs.aws.amazon.com/pinpoint/latest/userguide/settings-sms-10dlc.html
        • This number type is unique to the USA.
        • Allows high-volume Application-to-Person (A2P) SMS messages.
        • Supports voice calls.
        • An organization and use case must be registered through the Amazon Pinpoint console so that mobile carriers will have insight about the SMS messages are being used. The information is shared with the Campaign Registry (https://www.campaignregistry.com/faq/). Cannot register directly with the Campaign Registry.
        • Phone number is purchased after campaign (use case) approval. A phone number can only be associated with a single 10DLC campaign.
        • 10DLC capabilities depend on the recipient's mobile carrier, the organization's vetting score, and the number of campaigns (use cases) the organization has registered.
        • AWS Pricing:
          • Company related fees:
          • Company registration: $4 one-time fee per company. If you resubmit your company (e.g. Company name, EIN), it will be assessed a $4 resubmission fee.
          • Company vetting fee: $40 one-time-fee per vetting request.
          • Campaign related fees:
            • 10DLC campaign registration: $50 one-time campaign activation fee required by T-Mobile. This fee will be postponed until further notice.
            • 10DLC campaign monthly: $10 per regular 10DLC campaign, $2 per low-volume 10DLC campaign.
          • Phone number related fees:
            • 10DLC phone number monthly: $1 per 10DLC phone number.
          • Outbound SMS fee: $0.00581 (base price) + $0.00266 (carrier fee)
          • Inbound SMS fee: $0.0075
          • Amazon Pinpoint fee: $0 for the first 5,000 endpoints in your MTA, and $1.20 per 1,000 endpoints after that.
      • Short Code:
        • 5-6 digits long in the USA.
        • Works only in the country that it is obtained from.
        • Supports high-volume SMS. 100 message parts per second by default.
        • No voice capability.
        • Estimated provision time: 12 weeks
        • AWS Pricing:
          • One-time setup fee: $650
          • Monthly fee: $995
          • Outbound SMS fee: $0.00581 (base price) + $0.00266 (carrier fee)
          • Inbound SMS fee: $0.0075
          • Amazon Pinpoint fee: $0 for the first 5,000 endpoints in your MTA, and $1.20 per 1,000 endpoints after that.
      • Toll-free:
        • Not applicable for this project. This type of number is for low volume transactional messages such as registration confirmation or one-time password.
      • Long Code:
  • Amazon SNS for pub-sub message passing. SMS received by Pinpoint are forwarded to an SNS topic.
  • Amazon DynamoDB, Amazon RDS, or self-hosted DB.
  • Amazon EC2 or Amazon ECS for running the MVP.

Optional

  • Amazon Connect for conversation and workflow management.

Identify Design/Development tasks necessary to integrate into MVP

  • Sign-up for Amazon Pinpoint and configure it through the online Pinpoint console (https://console.aws.amazon.com/pinpoint/). Getting Started Guide (https://docs.aws.amazon.com/pinpoint/latest/userguide/gettingstarted.html).
    • Register for a SMS number (10DLC or short code).
    • Configure Pinpoint through the console to publish messages to a SMS topic on SNS.
  • Design SMS opt-in workflow. Possibly during Host/Guest/Coordinator sign-up. Or during contact info registration.
  • Database design for SMS chat, participant mappings, opt-in/opt-out accounting, deactivated numbers.
  • Incoming SMS: HTTPS endpoint subscribed to the SMS topic on SNS. Lookup sender by number. Saves message to the appropriate chat. If applicable, forwards message to the coordinator's phone number or sends automated response.
  • Outgoing: HUU SMS uses AWS SDK (boto3) to send outgoing SMS to Pinpoint.
  • Periodic deactivated number check and mark. AWS offers an S3 bucket containing the lists of deactivated numbers (requester pays for access). The numbers in the HUU database need to be marked and previous owners need to be contacted to update their SMS number.
  • Workflow management: UIs, database design, API design.

@lola3736 lola3736 added Complexity: Small Issue has detailed instructions to resolve and the task is simple. and removed Complexity: Missing labels Oct 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Complexity: Small Issue has detailed instructions to resolve and the task is simple. draft p-Feature: Profile Coordinator points: 1 Can be done in 4-6 hours Research Role: Back End
Projects
Status: New Issue Approval
Development

No branches or pull requests

6 participants