> ## Documentation Index
> Fetch the complete documentation index at: https://www.sip.tg/llms.txt
> Use this file to discover all available pages before exploring further.

# Módulos Worker y Storage

export const bot = {
  ACTIVATE_TARIFF_PLAN: "Activate subscription",
  ADDRESS: "Address",
  ADDRESS_PORT: "Address:port",
  ADMIN_ASSIGN: "Assign administrator",
  APPLY: "Apply",
  ARBITRARY_CHECK: "Messages processing",
  AUTORENEW: "Auto renewal",
  AUTOREPLY: "Autoreply",
  BACK: "Back",
  BACK_TO_PAYMENT: "Back to payment",
  BALANCE_TRANSFER: "Transfer",
  BILLING: "Billing",
  BTN_CHARGE_REDIRECT: "Confirm charge",
  BTN_EMPTY_BOT: "Inline bot",
  BTN_TARIFF_NEW: "Activate",
  CALLBACK_CHECK: "Callback",
  CALLBACK_SWITCH_OFF: "Switch off Callback mode",
  CALLBACK_SWITCH_ON: "Switch on Callback mode",
  CALLER_NAME: "Caller name",
  CALLER_PHONE: "Caller phone",
  CANCEL: "Cancel",
  COMMENT: "Comment",
  CONFIGURE_ACCOUNT_ALLOW_EVERYBODY: "Allow calls from all users",
  CONFIGURE_ACCOUNT_ALLOW_P2P: "Allow P2P calls from everybody",
  CONFIGURE_ACCOUNT_DISALLOW_GROUPS: "Disallow adding to groups",
  CONFIGURE_ACCOUNT_OFF_OTHER_SESSIONS_CALLS: "Disable calls on other devices",
  COUNTRY: "Country",
  DELETE: "Delete",
  DESCRIPTION: "Description",
  DIAL_RULES: "Dial Rules",
  DOC_BTN_PROVIDE: "Provide documentation",
  DOMAIN: "Domain",
  DTMF_METHODS: "DTMF Methods",
  FIELD_VALUE: "Field:Value",
  FORMATS: "Audio Codecs",
  FW_ADD: "Add phone number",
  FW_ADD_OTHER: "Other number",
  FW_ADD_SELF: "Telegram number",
  FW_ANTISPAM: "Anti-spam",
  FW_BACK: "Back",
  FW_BONUS_PROGRAM: "Referral program",
  FW_CANCEL: "Cancel",
  FW_DELETE: "Delete",
  FW_NAME: "Name",
  FW_NO: "No",
  FW_PHONE_FORWARDING: "Remind number",
  FW_RECORDER_CHAT: "Chat for recordings",
  FW_RECORDER_CHECKBOX: "Call recording",
  FW_SELECT_COUNTRY: "Choose country (region)",
  FW_SHARE_PHONE: "Send phone number",
  FW_TELL_FRIENDS: "Tell friends",
  FW_YES: "Yes",
  GATEWAY_IN_RESET: "Reset Password",
  GATEWAY_IN_SHOW: "Show Account",
  GATEWAY_OUT_NUMBER: "Number on PBX",
  GENERATE_NEW: "Generate new",
  GIVE_ACCESS: "Give the access",
  GIVE_PHONE_NUMBER: "Give phone number",
  HELP: "Help",
  INLINE_QUERY: "Inline query",
  INVOICE_BANK_IGNORE_CURRENT_RATE: "Ignore currency rate",
  KEYPAD_IN: "DTMF In",
  KEYPAD_OUT: "DTMF Out",
  KEYS_GET: "Get Keys",
  KEYS_RESET: "Reset Keys",
  LEARN_ABOUT: "Learn about SIP.TG",
  LINES: "Lines",
  LINES_CHECK: "Lines",
  LOGIN: "Login",
  MANUAL: "Manual",
  MODE_GATEWAY: "Gateway mode",
  MODE_SOFTPHONE: "Softphone mode",
  NAME: "Name",
  NEW: "New",
  NEW_IN: "🆕 PBX→SIP․TG",
  NEW_IP: "🆕 IP⇿IP",
  NEW_OUT: "🆕 SIP․TG→PBX",
  NO: "No",
  PARALLEL_DECLINE: "Decline",
  PARALLEL_END: "End",
  PARALLEL_SWITCH: "Switch",
  PARALLEL_TRANSFER: "Transfer",
  PASSWORD: "Password",
  PAYER: "Payer",
  PAYSYSTEM_BTN_VERIFY: "Specify country of residence",
  PAYSYSTEM_DOCS_PROVIDE: "Provide documents",
  PAYSYSTEM_METHOD: "Payment method",
  PAY_TARIFF: "Pay",
  PROLONG: "Renew",
  PROMO_BUTTON_EMPTY: "Discount code",
  RECONNECT: "🔄 Reconnect",
  RECORDER_ACTIVATE: "🔴 Start recording",
  RECORDER_ACTIVATE_FAILED: "⚠️ Start recording",
  RECORDER_CHAT: "Chat for recordings",
  RECORDER_CHECKBOX: "Call recording",
  RECORDER_DEACTIVATE: "🟥 Stop recording",
  RECORDER_DEACTIVATE_RECONNECTING: "⌛ Stop recording",
  RECORDER_LOCKED: "🔒 Recording locked",
  REDIAL: "Redial",
  REDIAL_CHECK: "Redial",
  REGISTRAR: "Proxy",
  REPEAT: "Repeat",
  SELECT_BOT: "Select bot",
  SELECT_CHANNEL: "Select channel",
  SELECT_CHAT: "Select chat",
  SELECT_USER: "Select user",
  SERVER_FROM_TEMPLATE: "Settings templates",
  SESSION_BILLER_CHECK: "Use a shared subscription",
  SESSION_CONFIGURE_ACCOUNT: "Configure Telegram account",
  SESSION_LOGIN: "Connect",
  SESSION_LOGOUT: "Disconnect",
  SETTINGS: "Settings",
  START_CALLING: "Go to calls",
  SUPPORT: "Support",
  SWITCH_OFF: "Switch off",
  SWITCH_ON: "Switch on",
  TAKE: "Take",
  TARIFF_ACTIVATE_CHANGE_USER: "Change customer",
  TARIFF_ACTIVATE_USER: "Activate for customer",
  TARIFF_ACTIVATE_YOURSELF: "Activate yourself",
  TAX_ADDRESS: "Address",
  TAX_BUSINESS: "Business",
  TAX_NAME: "Buyer",
  TAX_NUMBER: "Tax number",
  TERMINATE_SESSION: "Terminate the session",
  TERMS_AGREE: "Agree with Terms and Conditions",
  TG_STORAGE_OFFICIAL: "✅ SIP․TG Sessions Storage",
  TRANSFER: "Transfer",
  TRANSFER_BACK: "Transfer back",
  TRUSTED_IPS: "Trusted IPs",
  UNLINK: "Unlink",
  USER: "User",
  VERIFY_ROUTE_BAD: "👎 No, it's spam",
  VERIFY_ROUTE_GOOD: "👍 Yes, all good",
  VERIFY_ROUTE_RECOVER: "Recover incoming calls",
  WORKER_AUTO: "Auto",
  YES: "Yes"
};

La plataforma SIP.TG proporciona la capacidad de ejecutar **sus propios** módulos de servidor:

* **Worker** — responsable de procesar/convertir datos de voz (SIP ↔ Telegram).
* **Almacenamiento de sesiones** (Storage) — almacena claves y datos de acceso para cuentas de Telegram.

Estos módulos pueden alojarse en su propio servidor en un contenedor Docker, con una dirección IP dedicada y disponibilidad garantizada. A continuación se describe cómo funciona esto y qué pasos son necesarios para la configuración.

<a id="worker" />

## Servidores Worker

<Info>
  Worker procesa y convierte flujos de audio desde SIP al formato de Telegram y viceversa en tiempo real.
</Info>

<a id="worker-what-for" />

### Por qué son necesarios

* **Garantía de rendimiento**: usted elige el equipo, escala según la carga necesaria.
* **Retraso mínimo**: puede colocar el Worker lo más cerca posible de su PBX para reducir el RTT.
* **Confidencialidad**: los flujos de voz no se transmiten a los servidores públicos de SIP.TG — usted mismo procesa los datos de audio.
* **Acceso a redes privadas**: si lo desea, el Worker puede operar en una red local (restringida) y recibir tráfico SIP directamente desde la PBX.

<a id="worker-requirements" />

### Requisitos del sistema (Worker)

* **Docker CE** y **Docker Compose** en un servidor Linux (por ejemplo, Ubuntu 22.04).
* Dirección IP dedicada (o reenvío de puerto TCP) para la conexión desde SIP.TG.
* Rendimiento aproximado: 1 llamada ≈ 2.5% CPU en un núcleo AMD Ryzen 5 1400, \~1 MB RAM cuando se usa G.711 (A-law).

<a id="worker-setup" />

### Configuración de su propio Worker

<Steps>
  <Step title="Obtención de certificados">
    1. En el bot [@siptg\_bot](https://t.me/siptg_bot?start=utm_docs), ejecute el comando `/workers` y haga clic en **{bot.NEW}**.
    2. Se le enviarán 2 archivos: una clave privada y un certificado para conexión segura con la plataforma SIP.TG.
    3. Guárdelos y no los comparta con terceros.
  </Step>

  <Step title="Preparación del servidor">
    1. Instale actualizaciones del sistema operativo (si es necesario).
    2. Instale Docker y Docker Compose.
    3. Clone o descargue la plantilla de configuración del Worker (ver [GitHub](https://github.com/siptg/worker)).
    4. Copie los certificados obtenidos del bot al servidor y especifique las rutas a ellos en la configuración de Docker/Worker.
    5. Si es necesario, edite los parámetros en `docker-compose.yml` o en las configuraciones correspondientes (puerto SIP, rango RTP, etc.).
  </Step>

  <Step title="Inicio del Worker">
    1. Inicie el servicio Docker:

       ```bash theme={null}
       docker-compose up -d
       ```
    2. Asegúrese de que el contenedor Worker se ha iniciado correctamente y está escuchando en los puertos especificados.
    3. Compruebe los registros del contenedor (comando `docker-compose logs`) si se producen errores.
  </Step>

  <Step title="Conexión al Worker">
    1. En el bot [@siptg\_bot](https://t.me/siptg_bot?start=utm_docs), regrese a `/workers`, seleccione el Worker creado y haga clic en **{bot.ADDRESS}**.
    2. Introduzca la dirección externa y el puerto a través del cual su servidor es accesible.
    3. Haga clic en **{bot.SWITCH_ON}** para que SIP.TG compruebe la conexión. Si todo es normal, el Worker cambiará al estado "En línea".
  </Step>
</Steps>

<a id="worker-mode" />

### Modo público o personal

Después de habilitar el Worker, puede especificar:

* **Personal** (icono 🔑) — solo el propietario y las sesiones Gateway administradas pueden usar el Worker.
* **Público** (icono 🌐) — el Worker estará disponible para todos los usuarios de SIP.TG.

<a id="worker-limitations" />

### Limitaciones para Workers de usuario

* Las conexiones de tipo **PBX→SIP.TG** en un Worker de usuario están prohibidas por defecto.
* En caso de fallo/indisponibilidad del Worker durante más de 30 minutos, la plataforma puede desconectar las cuentas SIP asociadas.

<a id="storage" />

## Almacenamiento de sesiones de Telegram

<Info>
  Storage — un servidor en el que se almacenan claves y datos de inicio de sesión para cuentas de Telegram. Sin él, las sesiones de Telegram viven en la "nube" de SIP.TG, pero si lo desea, puede almacenar todo en su lado.
</Info>

<a id="storage-what-for" />

### Qué proporciona el almacenamiento de sesiones

* **Control total**: confidencialidad del acceso a las cuentas de Telegram, todas las claves se almacenan en su servidor.
* **Número ilimitado de cuentas** (sujeto a su suscripción) en un solo almacenamiento.
* **Configuración flexible**: restricción de comandos y eventos.

<a id="storage-requirements" />

### Requisitos del sistema

* Docker CE / Docker Compose (Linux).
* Dirección IP dedicada (o reenvío de puerto TCP) para conexión desde SIP.TG.
* El módulo utiliza la biblioteca TDLib, por lo que 1-2 GB de RAM es suficiente (pero depende del número de cuentas de Telegram).

<a id="storage-setup" />

### Configuración de su propio almacenamiento

<Steps>
  <Step title="Obtención de certificados">
    1. En el bot [@siptg\_bot](https://t.me/siptg_bot?start=utm_docs), ejecute el comando `/storage` y haga clic en **{bot.NEW}**.
    2. El bot enviará una clave privada y un certificado. Guárdelos en su servidor.
  </Step>

  <Step title="Preparación del servidor">
    1. Instale y configure Docker / Docker Compose.
    2. Clone la plantilla de configuración de almacenamiento (ver [GitHub](https://github.com/siptg/storage)).
    3. Coloque los certificados en los directorios apropiados (como se especifica en `docker-compose.yml`).
    4. Si es necesario, edite los archivos de configuración (puerto TCP, base de datos, etc.).
  </Step>

  <Step title="Inicio del almacenamiento">
    1. Ejecute en la carpeta con la configuración:

       ```bash theme={null}
       docker-compose up -d
       ```
    2. Compruebe los registros del contenedor (`docker-compose logs`) para detectar errores.
    3. Asegúrese de que el puerto TCP especificado sea accesible externamente.
  </Step>

  <Step title="Conexión al almacenamiento">
    1. Regrese a `/storage` en el bot [@siptg\_bot](https://t.me/siptg_bot?start=utm_docs), seleccione su almacenamiento y haga clic en **{bot.ADDRESS}**.
    2. Especifique la dirección externa y el puerto a través del cual la plataforma SIP.TG puede conectarse.
    3. Haga clic en **{bot.SWITCH_ON}** para comprobar la disponibilidad. Si todo está bien, el almacenamiento estará En línea.
  </Step>
</Steps>

<a id="storage-usage" />

### Uso del almacenamiento

* Al crear una nueva sesión de Telegram (en la sección del bot `/gateway`), elija **su** Storage.
* Es **imposible** transferir una sesión ya creada a otro almacenamiento, sin embargo, puede recrear la sesión sin eliminar las conexiones SIP.

<a id="faq" />

## Preguntas frecuentes (FAQ)

<AccordionGroup>
  <Accordion title="¿Qué sucede si mi Worker (o Storage) de repente deja de estar disponible?">
    La plataforma SIP.TG comprueba periódicamente la conexión. Si el servidor no responde durante más de 30 minutos, el Worker/Storage cambiará al estado "Desactivado". Todas las cuentas SIP que funcionan a través de este Worker se volverán inactivas. El almacenamiento dejará de atender solicitudes. Puede reanudar la operación restaurando la disponibilidad del servidor y volviendo a habilitar el módulo en el bot.
  </Accordion>

  <Accordion title="¿Puedo usar solo un Worker sin mi propio Storage (o viceversa)?">
    Sí. Estos módulos son independientes. Puede almacenar sesiones de Telegram en la nube de SIP.TG pero procesar flujos SIP en su Worker. O viceversa: usar servidores Worker públicos pero almacenar sesiones en su lado.
  </Accordion>

  <Accordion title="¿Qué tan laborioso es mantener estos módulos?">
    La tarea principal es mantener los contenedores Docker operativos, actualizar el software (imagen de Worker/Storage) a medida que se lanzan nuevas versiones y monitorear la disponibilidad de la red. Si no tiene su propio especialista en DevOps, es más fácil utilizar los recursos públicos de SIP.TG.
  </Accordion>

  <Accordion title="¿Qué hay de la seguridad y las licencias?">
    * Todas las conexiones entre la plataforma SIP.TG y sus módulos están cifradas mediante certificados.
    * Por defecto, se utilizan imágenes Docker basadas en Ubuntu. Todas las dependencias adicionales están preinstaladas.
    * Consulte la licencia y los términos de uso en los repositorios de GitHub.
  </Accordion>

  <Accordion title="¿Cómo proporciono a otros usuarios acceso a mi Worker?">
    Cambie el modo del Worker a "Público". Entonces cualquier usuario de SIP.TG podrá asignarse su Worker. También puede mantener el Worker como "Personal", pero usarlo solo con algunas de sus cuentas SIP en el [@siptg\_bot](https://t.me/siptg_bot?start=utm_docs).
  </Accordion>
</AccordionGroup>

<Warning>
  Para el funcionamiento completo de Worker y Storage, se requiere una conexión estable con la plataforma SIP.TG (Manager). Asegúrese de que su servidor pueda acceder a Internet sin bloqueos y que los puertos no estén filtrados por el firewall.
</Warning>
