# 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