Add a readme
This commit is contained in:
parent
a53fbb2064
commit
2442fb90bf
|
|
@ -0,0 +1,60 @@
|
||||||
|
## Twilio SMS Receiver Web App ##
|
||||||
|
|
||||||
|
This app is designed to receive SMS messages from Twilio.
|
||||||
|
|
||||||
|
This app in theory will run on basically any platform that .NET 6.0 (previously known as .NET Core) will target. We can run this inside a Raspberry Pi it's accessible from the public internet.
|
||||||
|
|
||||||
|
Currently the following SMS Message handlers are implemented:
|
||||||
|
* Microsoft Teams WebHook
|
||||||
|
|
||||||
|
The following message handlers will be implemented in a later release:
|
||||||
|
* SMTP Messages
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
|
||||||
|
* A Public IP
|
||||||
|
* A Reverse HTTP Proxy to direct traffic to if you don't want the code running without a reverse proxy. Kestrel is perfectly capable on serving HTTP requests without a reverse proxy in .NET 6.0
|
||||||
|
* A TLS Certificate
|
||||||
|
|
||||||
|
## Code Implementation
|
||||||
|
* C# 6.0
|
||||||
|
* .NET 6.0
|
||||||
|
* EntityFramework Core 6.0
|
||||||
|
* EF Core SQLite DB Provider 6.0 for data processing
|
||||||
|
|
||||||
|
## API Endpoints
|
||||||
|
|
||||||
|
/api/SMSReceiver
|
||||||
|
|
||||||
|
This endpoint only takes in a POST request in Production mode. In Development mode it will also accept a GET request returning all SMS messages stored in the database
|
||||||
|
|
||||||
|
/api/MSTeamsWebHooks
|
||||||
|
|
||||||
|
This endpoint takes a GET or POST request to add or remove Microsoft Teams webhook endpoints.
|
||||||
|
|
||||||
|
## Wishlist
|
||||||
|
|
||||||
|
* MMS Message handling and storage - currently the code obtains all MMS media URL's sent from Twilio, but does not actively process them
|
||||||
|
* Migrate away from SQLite to an actual multi-user SQL database - PGSql or MySQL will work as there are supported EF Core Providers for this
|
||||||
|
* Route DID's to specific destinations
|
||||||
|
* An actual admin UI with authentication provided by Azure AD
|
||||||
|
|
||||||
|
## Building
|
||||||
|
|
||||||
|
### Development Build or Debugging
|
||||||
|
1. Ensure you have the .NET 6.0 SDK installed on your development station
|
||||||
|
2. Clone the repository
|
||||||
|
3. Navigate to the TwilioSMSReceiver directory
|
||||||
|
4. Run ``dotnet run``
|
||||||
|
|
||||||
|
### Build for Production Deployments
|
||||||
|
|
||||||
|
**Refer to the [Microsoft RID Catalog](https://docs.microsoft.com/en-us/dotnet/core/rid-catalog) for runtimes**
|
||||||
|
|
||||||
|
A generic Linux Intel 64-bit machine is being used for this example.
|
||||||
|
|
||||||
|
1. Ensure you have the .NET 6.0 SDK installed on your development station
|
||||||
|
2. Clone the repository
|
||||||
|
3. Navigate to the TwilioSMSReceiver directory
|
||||||
|
4. Run ``dotnet publish -r linux-x64 --self-contained``
|
||||||
|
5. On the output directory, copy all of the files to the target machine and deploy accordingly
|
||||||
Loading…
Reference in New Issue