Files
telemovris/README.md

77 lines
2.9 KiB
Markdown

# Telemovris 2.0 - Telegram TTS Call Bot
A dockerized application that converts text to audio (using Piper Neural TTS) and calls a Telegram user to play the message. Includes a modern Web Dashboard for management.
## Features
* **High Quality TTS**: Uses [Piper](https://github.com/rhasspy/piper) with `es_ES-sharvard-medium` model for human-like speech.
* **Web Dashboard**: Manage queue, view history, and test voices via browser.
* **Web-based Login**: Log in to your Telegram account directly from the UI (supports 2FA).
* **Web-based Configuration**: Set `API_ID`, `API_HASH`, and `Call Timeout` via the UI.
* **Flexible Inputs**: Auto-handles usernames with or without `@` prefix.
* **Real-time Queue**: Redis-backed queue with history and error reporting.
* **Smart Dialing**: Configurable timeout (default 15s), detects "Rejected" vs "No Answer", and watches for user hang-ups during playback.
* **Legacy API Support**: Compatible with simple GET requests.
## Prerequisites
* Docker & Docker Compose
## Installation
1. **Clone the repository**:
```bash
git clone https://gitlab.com/your/telemovris2.git
cd telemovris2
```
2. **Ensure Piper binaries are present**:
The project expects the Piper TTS binary and model in the `piper/` directory.
* `piper/piper/piper` (Executable)
* `piper/es_ES-sharvard-medium.onnx` (Model)
* `piper/es_ES-sharvard-medium.onnx.json` (Config)
3. **Start the container**:
```bash
docker compose up -d --build
```
## Configuration & Usage
### 1. Initial Setup
1. Open your browser and navigate to `http://localhost:8777`.
2. You will be prompted to enter your **Telegram API ID**, **API Hash**, **Phone Number**, and **Call Timeout**.
* Get API keys from [my.telegram.org](https://my.telegram.org).
* **Call Timeout**: Seconds to wait for the user to answer before cancelling (default 15s).
3. Click **Save Configuration**. The worker will restart.
### 2. Login
1. After configuration, the dashboard will verify calls.
2. Follow the simple 2-step process (Config -> Login) if not auto-logged in.
3. Enter the **Login Code** sent to your Telegram app.
4. If you have 2FA enabled, you will be prompted for your password.
### 3. Sending Messages
* **Via Dashboard**: Use the "Queue New Task" form.
* Username can be `@username` or just `username`.
* **Via Legacy API**:
```
GET http://localhost:8777/sendmessage?user=username&message=Hello+World&audio=yes
```
## Development
* **Reset Config**: If you need to change accounts, keys, or timeout settings, click the "Reset Config" button in the dashboard.
* **Logs**: Check worker logs for debugging:
```bash
docker logs -f telemovris_app
```
## Persistence
* **Session**: Telegram session is stored in `./data/session.madeline`.
* **Redis**: Job queue and history are persisted in `./redis_data`.
* **Config**: API credentials are stored in `./data/config.json`.
## License
MIT