Develop Custom PC-to-PC Calling Application with Auto-Accept and Group Call Features

Job ID: 38414331

Budget: ₹1,500 – ₹12,500 INR

We are looking for a developer to create a custom PC-to-PC calling application with the following features:

**Main Requirements:**
1. **Auto-Accept Calls:**
- The server-side app should automatically accept incoming calls without manual intervention.
- Implement a user authentication feature on the server side. When a call is made, it should prompt the client to enter the user password to establish the connection.
- No manual acceptance is required on the server side; calls should connect automatically upon correct password entry.

2. **Client-Side Features:**
- Allow users to add server details by IP address.
- Provide an option to label servers for easy identification.
- Support multiple calls simultaneously (group calls). Users should be able to call multiple servers at once and establish a group call.
- All microphones should start muted by default. Users should have the ability to unmute their mic, which will enable the connected servers to hear them.

3. **Server-Side Features:**
- Provide options to create and manage user accounts with passwords.
- Automatically accept calls from authenticated clients without manual intervention.

### Possible Approaches:

1. **Custom Development:**
- **Programming Languages and Frameworks:**
- Use languages like C++ or C# for desktop applications.
- Utilize frameworks such as Qt (for C++) or .NET (for C#) for UI and system interactions.
- **Audio Handling:**
- Implement audio handling libraries like PortAudio or WebRTC for audio streaming.
- **Connection Management:**
- Establish socket connections using libraries like Boost.Asio for C++ or System.Net.Sockets for C#.
- **Feature Implementation:**
- Auto-accept call functionality and password protection.
- Adding servers by IP address and labeling them.
- Group calling capability.
- Mute/unmute mic functionality.

2. **Modifying Existing Solutions:**
- **WebRTC:**
- An open-source project that provides real-time communication capabilities. Modify it to handle automatic calls and default mute settings.
- **Linphone:**
- An open-source VoIP service that can be customized to fit your needs.

3. **Using Third-Party Libraries:**
- **PJSIP:**
- A free and open-source multimedia communication library. Customize it to handle your calling requirements.
- **Twilio:**
- A cloud communication platform that can be integrated to handle calls. Build a desktop application around it to meet your specific needs.

**Key Features to Implement:**
- **Automated Call Initiation:**
- Client-side should automatically initiate calls without needing acceptance from the server.
- **Password Protection:**
- Implement a password prompt for calls, ensuring secure connections.
- **Server Management:**
- Allow adding servers by IP address and labeling them for easy management.
- **Group Calls:**
- Enable group calls to multiple servers simultaneously.
- **Mic Management:**
- Start all microphones muted by default, with the option to unmute.

**Note:**
This project is for a standalone PC-to-PC calling application. Developers with experience in software development, real-time communication, and UI/UX design are encouraged to apply.
Related categories: .NET C# Programming VoIP Windows API Socket IO