SIVO
Variables de configuración

Configuración

Variables de configuración

Referencia de variables que controlan el comportamiento de SIVO en cada tenant — JWT, almacenamiento de grabaciones, proveedores STT/LLM/TTS, integraciones.

Actualizado:
configurationenvsecrets

Por dónde se configura

Casi todo se configura desde la UI:

  • Settings → General — branding, idioma por defecto, zona horaria.
  • Settings → Secrets — API keys de proveedores STT/LLM/TTS.
  • Settings → Integrations — Salesforce, webhooks.
  • Settings → Recording / Transcription policies — políticas hierárquicas.
  • Settings → SIP trunks — operadores y ACL.

Lo que aquí documentamos son las claves backend que reflejan esos valores, útiles si gestionas SIVO via API o exportas la configuración.

Identidad de tenant

ClaveTipoPor defectoDescripción
tenant.slugstring(generado)Identificador url-safe del tenant (acme, globex). Usado en subdominios SIP y dashboard.
tenant.sip_domainstring<slug>.sip.sivocenter.comDominio SIP propio. Los registros de extensiones van contra este.
tenant.dashboard_urlstring<slug>.app.sivocenter.comURL del backoffice.
tenant.default_localeenumeses | en | de | fr | it | pt.
tenant.timezoneIANAEurope/MadridPara evaluación de horarios y CDR.

Autenticación

ClaveTipoPor defectoDescripción
auth.jwt_ttl_secint86400Duración del token JWT (24h por defecto).
auth.refresh_ttl_secint2592000Duración del refresh token (30 días).
auth.password_min_lengthint8Mínimo del password de usuarios.
auth.login_max_attemptsint5Bloqueo temporal tras N fallos en 15 min.
auth.mfa_required_rolesarray['admin','superadmin']Roles con MFA obligatorio.

Grabación

ClaveTipoPor defectoDescripción
recording.default_formatenumwavwav | mp3 | ogg.
recording.default_retention_daysint(depende plan)30 (Starter) / 180 (Pro) / config (Enterprise).
recording.default_provider_iduuid(managed)Proveedor default (SIVO managed).
recording.kms_enabledbooltrueServer-side encryption obligatoria en buckets.

Transcripción

ClaveTipoPor defectoDescripción
transcription.engineenumdeepgramdeepgram | elevenlabs_scribe_v2_realtime | whisper.
transcription.languageISO 639-1esIdioma esperado por defecto. Override por DID.
transcription.speaker_separationbooltrueSi activado, captura caller+agent en forks separados.
transcription.policy_retention_daysint90Retención sellada en cada registro al crearse.
transcription.push_to_sfboolfalseActivar push a Salesforce SCRT2 (requiere integración).

AI agents

ClaveTipoPor defectoDescripción
ai.stt_providerstringdeepgramProveedor STT.
ai.stt_modelstringnova-2Modelo concreto.
ai.llm_base_urlurlhttps://api.groq.com/openai/v1Endpoint OpenAI-compatible.
ai.llm_modelstringllama-3.1-70b-versatileModelo LLM.
ai.tts_providerstringelevenlabsProveedor TTS.
ai.tts_modelstringeleven_multilingual_v2_v2 (sin audio tags) o _v3 (con audio tags).
ai.tts_voice_idstring(depende idioma)Voz por defecto.
ai.max_turnsint20Corte de seguridad por turnos.
ai.max_duration_secint600Corte por timeout.
ai.barge_in_cooldown_msint300Cooldown anti-echo tras playback.
ai.speech_min_msint400Mínimo VAD para considerar utterance.

Salesforce

ClaveTipoPor defectoDescripción
sf.connected_orgsarray[]Lista de orgs SF conectadas. Multi-org soportado.
sf.jwt_keypair_idstringglobalRS256 global compartido, o ID de keypair propio por org.
sf.scrt_base_urlurl(auto)Endpoint SCRT2 (auto-descubierto en OAuth).
sf.user_mappingsarray[]Mapeos PBX user ↔ SF user (auto-import + manual).
sf.push_transcriptsboolfalseActivar push de transcripción a Conversation/ConversationEntry.
sf.message_provider_namestringcalltreeHeader Telephony-Provider-Name. NO CAMBIAR sin coordinación con SF admin.

Webhooks

ClaveTipoPor defectoDescripción
webhooks.signing_secretstring(generado)HMAC SHA-256 secret por endpoint.
webhooks.retry_max_attemptsint6Reintentos con backoff exponencial: 5s, 30s, 2m, 10m, 1h, 6h.
webhooks.timeout_msint10000Timeout por request.
webhooks.dlq_retention_daysint30Días que el evento permanece en DLQ consultable.

Rate limiting

Configurado por endpoint, no por tenant. Valores que aplicamos:

  • POST /auth/login: 5 req / 15 min por IP.
  • POST /auth/agent: 10 req / 15 min por usuario.
  • POST /api/public/leads: 5 req / 1 h por IP.
  • Resto endpoints autenticados: 600 req / min por usuario.

Si necesitas límites custom (planes Enterprise), contacta con soporte.

Cómo ver tu configuración actual

curl -H "Authorization: Bearer $TOKEN" \
  https://api.sivocenter.com/api/config | jq

Solo devuelve las claves que tu rol puede ver. Algunas (secrets, JWT keys) están redacted en la respuesta — para verlas hace falta acceder al dashboard con rol admin.

→ Para detalles sobre rotación de claves, ver Rotación de keys JWT.