Skip to content

Commit 5eaed45

Browse files
committed
[docs] add readme file
1 parent f67abd5 commit 5eaed45

File tree

1 file changed

+102
-0
lines changed

1 file changed

+102
-0
lines changed

README.md

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
# 📞 CallGate
2+
3+
[![Apache License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
4+
5+
**Call Management API for Android**
6+
7+
CallGate provides programmatic control of phone calls through a REST API, specifically designed for automation scenarios requiring basic call management without voice interaction.
8+
9+
> ⚠️ **No Audio Handling** - This app only manages call initiation/termination, **does NOT handle voice playback or recording**
10+
11+
## 🌟 Features
12+
13+
- 📲 Start/stop calls via HTTP requests
14+
- 🔐 Basic authentication protection
15+
- 📶 Local server operation (no internet required)
16+
- 🛠️ Simple JSON API structure
17+
18+
## 📌 Related Projects
19+
20+
**SMSGate** - Companion project for SMS management: [https://sms-gate.app/](https://sms-gate.app/)
21+
_Manage text messages through a similar API-driven approach._
22+
23+
## 🚀 Getting Started
24+
25+
### Prerequisites
26+
- Android device with SIM card
27+
- Network access to the device
28+
29+
### Setup
30+
1. Install the [APK](https://github.com/call-gate-app/android-app/releases/latest) on your Android device
31+
2. Start the server by tapping the "Offline" button
32+
3. Ensure the icon appears in the status bar
33+
4. Open Settings → Server to view default credentials
34+
35+
## 🛠️ Usage
36+
37+
### API Endpoints
38+
Base URL: `http://<device-ip>:8084/api/v1`
39+
40+
#### Start a Call
41+
```http
42+
POST /calls
43+
```
44+
**Request:**
45+
```bash
46+
curl -X POST \
47+
-H "Content-Type: application/json" \
48+
-u username:password \
49+
-d '{"call": {"phoneNumber": "123456789"}}' \
50+
http://device-ip:8084/api/v1/calls
51+
```
52+
**Response:**
53+
- `200 OK`: Call initiated successfully
54+
- `400 Bad Request`: Invalid request
55+
- `401 Unauthorized`: Invalid credentials
56+
- `500 Internal Server Error`: Call failed
57+
58+
#### End Active Call
59+
```http
60+
DELETE /calls
61+
```
62+
**Request:**
63+
```bash
64+
curl -X DELETE \
65+
-u username:password \
66+
http://device-ip:8084/api/v1/calls
67+
```
68+
**Response:**
69+
- `204 No Content`: Call terminated
70+
<!-- - `404 Not Found`: No active call -->
71+
- `500 Internal Server Error`: Termination error
72+
73+
## 🔒 Important Notes
74+
75+
- **Call Limitations**: Only manages call initiation/termination - no voice capabilities
76+
- Security Recommendations:
77+
- Rotate credentials regularly
78+
- Restrict to trusted networks
79+
- Consider encryption for remote access
80+
81+
## 📌 Project Status
82+
83+
**Active Development**
84+
85+
⚠️ **Experimental Version** - API may change without notice
86+
Current focus areas:
87+
- Improved call state management
88+
- Enhanced error handling
89+
- Enhanced Android versions compatibility
90+
91+
## 🤝 Contributing
92+
93+
We welcome contributions! Please:
94+
1. Fork the repository
95+
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
96+
3. Commit changes (`git commit -m 'Add amazing feature'`)
97+
4. Push to branch (`git push origin feature/amazing-feature`)
98+
5. Open a Pull Request
99+
100+
## 📜 License
101+
102+
Distributed under the Apache 2.0 License. See [LICENSE](LICENSE) for details.

0 commit comments

Comments
 (0)