This project implements a high-performance VoIP (Voice over IP) signaling server using C and uWebSockets. It's designed to handle WebRTC signaling, manage user sessions, and facilitate various types of voice communications including one-to-one, group chats, and community interactions.
- High-performance WebSocket server using uWebSockets
- WebRTC signaling support
- One-to-one, group, and community chat capabilities
- Integration with Valkey for caching (alternative to Redis)
- Flexible authentication system
- Scalable and modular architecture
sando/
├── src/
│ ├── main.c
│ ├── server/
│ ├── signaling/
│ ├── auth/
│ ├── database/
│ ├── cache/
│ ├── chat/
│ ├── community/
│ └── helpers/
├── include/
├── config/
├── tests/
├── docs/
├── scripts/
├── libs/
│ └── uWebsockets/
├── Makefile
└── README.md
- C compiler (GCC or Clang)
- CMake (version 3.10 or higher)
- OpenSSL development files
- zlib development files
- Clone the repository:
git clone https://github.com/yourusername/voip_signaling_server.git
cd voip_signaling_server
- Install uWebSockets:
mkdir -p third_party
cd third_party
git clone https://github.com/uNetworking/uWebSockets.git
cd uWebSockets
git submodule update --init --recursive
make
cd ../..
- Build the project:
mkdir build
cd build
cmake ..
make
Edit the configuration files in the config/
directory to set up your server:
server.h
: Configure server port, database connection, and Valkey settings
Follow the instructions below to build the uWebSockets library:
cd sando
mkdir -p libs
cd libs
git clone https://github.com/uNetworking/uWebSockets.git
cd uWebSockets
git submodule update --init --recursive
make
After building the project, you can run the server using:
./build/voip_server
To run the tests:
cd build
make test
API documentation and additional details can be found in the docs/
directory.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- uWebSockets library
- Valkey caching system
Fredrick Femar Ochieng - isfescii@gamail.com
Project Link: https://github.com/aduki-Inc/sando