Add Home
commit
d8c18df2b2
1 changed files with 82 additions and 0 deletions
82
Home.md
Normal file
82
Home.md
Normal file
|
@ -0,0 +1,82 @@
|
|||
Welcome to the Wiki.Things to consider
|
||||
Write the go service
|
||||
Turns out it’s actually a client not a server?
|
||||
Poll-based vs webhook-based behavior configurable with parameter
|
||||
Get everyone on twilio account
|
||||
Done!
|
||||
Write deployment stuff (make, docker, helm, etc.)
|
||||
Document:
|
||||
How to deploy
|
||||
How configuration details
|
||||
Special:
|
||||
Document creating compliant sms marketing campaign on twilio
|
||||
Document other twilio setup (sort of unknown complexity right now)
|
||||
jack worked for them and may have better insights, but they were mostly on the security team iirc [T]
|
||||
HIGH PRIORITY: confirm billing policies to ensure there isn’t a ~secret~ clause where they can just let us rack up a bill and invoice us later in case of some kind of catastrophic failure or spam influx
|
||||
Signal groups getting large feature updates early 2024, this may change the process dynamically
|
||||
Others: i.e. Discord, WhatsApp, Telegram APIs likely relevant
|
||||
SMS is important for non-smartphone users and less cross-platform stuff
|
||||
Can Twilio manage the queue for us?
|
||||
Get request to API url - how to edge trigger instead of purposeful Gets
|
||||
Rate limits/Verify seems to be the relevant factor here
|
||||
Possible name change?
|
||||
|
||||
|
||||
Twilio dev console:
|
||||
Pin these things:
|
||||
“Phone numbers”
|
||||
“Messaging”
|
||||
No Incoming Messages for Early Rave itself (!)
|
||||
Code Conventions
|
||||
Written in Go
|
||||
SQLite database backend - longer term goal for expansion capabilities
|
||||
JSON Blob payloads to Twillio flows for actual call and SMS process
|
||||
Go federation backend being dev’d by bspar’s company
|
||||
Binaries for ARM and X86 on windows, linux, mac
|
||||
Is queue a priority concern up front?
|
||||
bspar: yes, because it can have heavy impact on compute speed/resource weight
|
||||
If queue is easy to implement in binary or container, there is unlikely to be any practical reason to avoid
|
||||
bspar: should be super simple, simple code - maren wants to learn this
|
||||
GRPC - HTTP2 (bound to HTTP3 for speed)
|
||||
Outgoing > incoming > outgoing could lead to blocking issues
|
||||
Go piping exists - is this practical?
|
||||
Webhooks likely relevant
|
||||
Dani: Is it possible to completely circumvent HTTP?
|
||||
bspar: will require higher reliance on Twilio CRM/Flow process
|
||||
Twillio Conversations - allow for deeper customization/offloading of different request calls/responses
|
||||
maren: what is the cost overhead on this possibility?
|
||||
bspar: there is an upcharge, adds up at scale
|
||||
Inbound is same cost as outbound, bad actors could potentially hike costs
|
||||
Blocking/mitigation possibilities:
|
||||
Opt-Out data: See Link 1 in Random Links heading
|
||||
Verify Fraud Guard: Link 2 in Random Links
|
||||
Webhooks seem preferred based on the quickstart: https://www.twilio.com/docs/messaging/quickstart/go?code-sample=code-respond-to-an-incoming-text-message&code-language=Go&code-sdk-version=1.x
|
||||
Possibly do both?
|
||||
GORM + SQLite for databasing, and queue
|
||||
maren: I want to avoid pulling in unnecessary/extraneous libs as much as possible to reduce bloat - these seem functionally appropriate
|
||||
i.e. no fastHTTP for no functional reason
|
||||
Container/self-host/k8s cluster hosting considerations
|
||||
|
||||
|
||||
Assignments:
|
||||
Twilio Investigation - SMS Flow process correct, testing to confirm cost and/relevance to use case
|
||||
maren: Twilio Studio may be redundant/unnecessary, can this be API?
|
||||
bspar: would have fun putting Woman™ in Go bin (lol, but also serious)
|
||||
maren: docs indicate basic requirements for compliance under SMS regulations - 10DLC (10 Digit Long Code - full length localized phone #, faster than 800 free number)
|
||||
calls cost money - cancelled
|
||||
how to tell Twilio to talk to endpoint without flow
|
||||
ATP message service - link 3 (and sub) in Random Links
|
||||
Licensing
|
||||
(A)GPL(v3)?)
|
||||
MIT
|
||||
Apache?
|
||||
NVPL - no because it generally leads to inflammatory/reactionary responses and the goal is to have this project be used as widely as possible
|
||||
Further discussion warranted
|
||||
|
||||
Random Links:
|
||||
Store Opt-Out data on Twilio with Functions and Sync
|
||||
Verify Fraud Guard | Twilio
|
||||
Programmable Messaging | Twilio the docs for how to make twilio talk to our go service in the most basic/inexpensive way possible
|
||||
Receive and Reply to Incoming Messages - Python | Twilio - example python send+reply application (in addition to Go example)
|
||||
Receive and reply to inbound SMS messages with Go and Gin
|
||||
Fetch message resources - fetch and send messages
|
Loading…
Reference in a new issue