- Se descapó
- 24 de abril de 2026 a las 22:36 UTC
- Autor
- Kamo
- Compromit
- 5d98d8a
Cambio de modelo básico: un org . muchos VoipProviderInstaces (era: uno per org). Cada llamada API de proveedores ahora es de tipo de ejemplo. Interfaz PhoneProvider: - Nuevos métodos para la extensión/usuario/dispositivo CRUD . de audio/transcripción de voz. - Nuevas banderas de capacidad (ejértelaman, usuarioManagement, dispositivoGesación, voicemailTranscripción). Los fallos tiran **************** (HTTP 501) para que los proveedores de terza no se rompan. Los controles de Frontend obtienenCapacidades () para ocultar/desactivar las acciones por proveedor. - ProviderException (HTTP 502) para fallos de dependencia externa. PhoneProviderFactory: getInstance(UUID) / ************* reemplazo legado getProvider(Long orgId); getPrimaryForOrg(Long) guardado para sitios de llamadas heredados (CallController, CapabilitiesController, SipController, webhook inbound). - RingCentral OAuth fichas ahora sujetas a (org.Id, proveedor, instanceId) así que uno org puede autenticar múltiples implementaciones independientes de RingCentral. - La construcción de FreePBX lee config.json . BaseUrl, clientId, clientSecret, ignoreSslErrors e instantiate a un FreePBXGraphQLClient dedicado. RingCentral (RingCentralProvider): - Constructor toma ejemploId para el contexto de registro. - Nuevos métodos: listExtensiones / createExtension / updateExtension /Extension / deleteExtension; listUsers / createUser / updateUser / deleteUser (Modelos RC ambos como tipo=Extensiones de Usuario); listDispositivos / createDispositivo / updateDevice / deleteDevice; gottchVoicemailAudio (imágenes de contenido de adjunto de streams) y getVoicemailTranscripción. FreePBX (FreePBXProvider) - implementación completa reemplaza a marcador de posición: - Cinta de cliente OAuth2 caché silbado vía FreePBXTokenCache (-1h TTL, auto-refresco en 401, por-instancia). - FreePBXGraphQLClient: GraphQL - REST transporta con opcional skip-SSL-verificación para PBXs autofirmados en prem. - Extensiones, Usuarios de Administrador de Usuarios, dispositivos Endpoint Manager, buzón de voz lista/mark-read/delete . streaming de audio, historial de llamadas de CDR, credenciales SIP derivado del secreto pjsip de la extensión, la salud a través de getAsteriskInfo. - SMS explícitamente sin soporte (capabilidad sms=false) - FreePBX no maneja Aerolímster SMS. Flowroute SMS (FlowrouteTextProvider): - Mensajes v2.1 API con HTTP Basic (accessKey, secretKey). - La sonda de salud golpea GET /números?limit=1. - Registrado con BulkTextProviderFactory a través de nuevo valor de FLOWROUTE enum. Controladores: - VoipInstanceController (rebautizado de ProviderConfigController) en /api/voip/instancias con prueba/sincronización por instancia. Secretos redactados en GET respuestas ('***'); la fusión-actualización permite a IU idado los campos de ida y vuelta sin las credenciales almacenadas. - BulkTextInstanceController (rebautizado de BulkTextConfigController) CRUD en /api/bulktext/instances con prueba / final de prueba / enviar. - OAuthController reescrita para OAuth: inicio, callback, estado, desconectar todas las instancias. - SmsController resuelve la instancia de member.instanceId.org primaria, se adjunta a conversaciones más suerdas. - CallController / CapacidadesControla de control / SiController vuelve a la org's instancia activa primaria para los criterios de endo de una sola instancia heredado. Servicios: - InstanceSyncService: sincronización de caché pull-through extensions/usuarios/dispositivos/ mensajes de voz copiados de proveedor a mesas locales, filas que faltan suaves UNKNOWN. Cada subpaso envuelto para que una capacidad sin soporte no falle toda la sincronización (por ejemplo. FreePBX no-SMS - ha-extensiones). - VoipMessageService: todas las trayectorias de conversación/metraje propagan instanceId. Pruebas: pruebas preexistentes de VoipProviderConfig eliminadas (cubiertas la tipos rebautizados; la reescritura está fuera de alcance por diseño spec . . . . . . . . . . . . . . . . . . . . . . . . . . en este refactor se está agregando infraestructuras). Construye verde con una biblioteca compartida de kamo actualizada.