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 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:

    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:

    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.
    • 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:
    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

Description
No description provided
Readme 118 MiB
Languages
Hack 51.9%
PHP 45.3%
Shell 1.4%
Dockerfile 1.3%
Roff 0.1%