-
Notifications
You must be signed in to change notification settings - Fork 2
Home
RavenSMS is a custom-developed channel that utilizes our phones to send SMS messages without the need for buying a subscription from services like Twilio and MessageBird etc.
the idea behind RavenSMS has raised when I found that most SMS delivery channels don't offer a great testing experience. the testing budget is very low on most of the services, Twilio, for example, gives you only 15$ to be used for testing which I don't find enough. also the sending limitation, most services restrict you to sending SMS messages to only a specific test phone number.
so I thought, I have a phone subscription with unlimited SMS messages to send, so why not use my phone to send the messages? and RavenSMS has been born.
there are two main components in the RavenSMS architecture:
- Server: responsible for managing and sending messages, and broadcasting events to the clients.
- Client: the receiver of the events, which is your phone with the RavenSMS app installed on it.
when you send a message from the RavenSMS server the message will be queued for immediate delivery or after a delay. then when it is time to send the message a WebSocket command is sent to the client (your phone) using SignalR with the message details and the message will be sent.
is just an ASP core web app with the RavenSMS package installed on it, which utilizes WebSockets to communicate to connected clients. also, it provides a centralized management system, where you can manage your connected clients, see statistics, and the sending history of messages, Through a custom dashboard.
a client is the receiver of the WebSockets commands to send SMS messages. for now, we only have one type of client which is a phone with the RavenSMS app installed on it. in the future, we will try to add other types of clients like Raspberrypi, Arduino, and SMS modems, etc.
a client can be connected to multiple Servers so in order to identify each server we need to give a custom unique id and name to our server so that we can distinguish each server from the others. for more details on how to set your server ID and name check the Server page.