- Notifications
You must be signed in to change notification settings - Fork1
davidmerrick/partymode
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Buzzing people into your apartment building when you're having a party (Or, during COVID, getting your food delivered)?
Ain't nobody got time for that! That's why I built partymode.It's a service that:
- Auto-buzzes people into my building when enabled.
- Otherwise forwards calls to my phone.
It usesTwilio to handle calls and SMS.It integrates with Slack so I or anyone in my workspace can enable it.
Technical details:
- Written in Kotlin with the Micronaut framework.
- Has an SNS integration that downstream consumers can connect to (I use this for a Slack webhook/Alexa alert).
- Has a Google Assistant endpoint so you can be extra-lazy and just say "Hey Google, open partymode" to enable it for 3 hours.
- Get a number fromTwilio, which costs $1/month.
- Get an AWS account.
- Get admin access to your Slack workspace.
Add the following secrets to Secrets Manager:TWILIO_AUTH_TOKEN
Next, grant "Secret Manager Secret Accessor" and "Secret Manager Secret Viewer" privileges to theIAM compute account for your service.
- Create a Slack webhook and set the
SLACK_WEBHOOK_URI
env var to that uri. - Create a Slack bot and subscribe to the following bot events:
app_mention
,message.channels
, andmessage.im
. - Add oAuth scope for
chat:write
.
Set thePARTYMODE_PHONE_MY_NUMBER
env var to your phone number. Make sure the format is+19999999999
.Set thePARTYMODE_PHONE_CALLBOX_NUMBER
env var to your call box's phone number.Make sure the format is+19999999999
.The app will reject calls from any other number, in the event you inevitably get spammed with robocalls.
In your Twilio dashboard, create a TwiML app and point the endpoints to the ones provisioned in AWS.Point your Twilio number to this app.
Finally, of course, have your apartment forward your call box to your Twilio number 😎.