Skip to content

BotServices API

Información General

BotServices es una aplicación .NET Framework diseñada para proporcionar servicios automatizados a través de bots para ETB. El proyecto sigue las mejores prácticas de la industria y está estructurado para máxima mantenibilidad y seguridad.

Descripción General

BotServices actúa como API Gateway centralizado que orquesta y gestiona las comunicaciones entre aplicaciones de negocio, sistemas de soporte y servicios externos de ETB. Proporciona una capa de abstracción para la integración de operaciones, facturación, soporte, inventario, referidos y más, permitiendo la automatización y trazabilidad de procesos clave.

Propósito Principal

  • Gestión de Operaciones: Centraliza la gestión de órdenes, incidentes y procesos operativos.
  • Integración Multisistema: Orquesta la comunicación con sistemas como MongoDB, Oracle, IVR, Service-PAPI, Billing, MDM, entre otros.
  • Automatización y Trazabilidad: Facilita la automatización de flujos y el registro de logs y auditorías.
  • Gestión de Clientes y Referidos: Administra información de clientes, contactos y referidos.
  • Soporte y Facturación: Integra servicios de soporte, facturación y tramitaciones.

Arquitectura del Sistema

La arquitectura de BotServices está compuesta por varias capas bien definidas, cada una con responsabilidades claras:

  • API Gateway: Recepción y enrutamiento de requests HTTP a través de ASP.NET Web API.
  • Controller Layer: Validación y preparación de requests para cada recurso.
  • Business Layer: Lógica de negocio y orquestación de procesos.
  • Data Access Layer: Comunicación con servicios y sistemas externos.
  • External Services: Sistemas backend especializados (MongoDB, Oracle, IVR, Billing, etc).

Consulta el diagrama Mermaid de arquitectura para una visualización detallada.

mermaid
graph TD
    A[Cliente/API Consumer] --> B[BotServices API Gateway]
    B --> C[ASP.NET Web API]
    C --> D[Controllers]
    D --> E[Business Layer]
    E --> F[Data Access Layer]
    F -->|REST/SOAP| G[MongoDB Service]
    F -->|REST/SOAP| H[Oracle Service]
    F -->|REST/SOAP| I[IVR Service]
    F -->|REST/SOAP| J[Service-PAPI]
    F -->|REST/SOAP| K[Audits Service]
    F -->|REST/SOAP| L[Billing Service]
    F -->|REST/SOAP| M[ETB MDM]
    F -->|REST/SOAP| N[Support Service]
    F -->|REST/SOAP| O[Remedy SAPI]
    F -->|REST/SOAP| P[SAP SAPI]
    F -->|REST/SOAP| Q[Common SAPI]
    F -->|REST/SOAP| R[Salesforce Service]
    F -->|REST/SOAP| S[LISIM Service]
    F -->|REST/SOAP| T[DirectTV Service]
    F -->|REST/SOAP| U[PayU Service]
    F -->|REST/SOAP| V[Wompi Service]
    B --> W[Error Handler]
    B --> X[Logging System]
    B --> Y[JWT Authentication]
    classDef api fill:#e3f2fd,stroke:#1565c0,stroke-width:2px
    classDef controller fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px
    classDef business fill:#fffde7,stroke:#fbc02d,stroke-width:2px
    classDef data fill:#f3e5f5,stroke:#6a1b9a,stroke-width:2px
    classDef ext fill:#fce4ec,stroke:#ad1457,stroke-width:2px
    class B,C api
    class D controller
    class E business
    class F data
    class G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V ext
    class W,X,Y api

Capas del Sistema

CapaComponenteResponsabilidad
API GatewayASP.NET Web APIRecepción y enrutamiento de requests
Controller LayerAPI ControllersValidación y preparación de requests
Business LayerBusiness ControllersLógica de negocio y orquestación
Data Access LayerData Access ClassesComunicación con servicios externos
External ServicesMongoDB, Oracle, IVR, Billing, etcServicios backend especializados

Clasificación de Servicios por Categorías

🔐 AUTENTICACIÓN Y SEGURIDAD

  • MiETBApiController - Autenticación y gestión de usuarios MiETB
  • SecurityController - Gestión de seguridad y tokens
  • ValidationCodeController - Validación de códigos de seguridad

👥 GESTIÓN DE CLIENTES

  • CustomersController - Operaciones CRUD de clientes
  • MiETBController - Gestión específica de usuarios MiETB
  • MultiUserController - Gestión de múltiples usuarios

📋 GESTIÓN DE ÓRDENES Y PROCESOS

  • OrdersController - Gestión general de órdenes
  • SaleOrderController - Órdenes de venta
  • PRCHController - Procesos de portabilidad (PRCH)
  • ASERController - Agenda de servicios (ASER)
  • SVAController - Servicios de valor agregado

⚙️ GESTIÓN DE SERVICIOS

  • ServicesController - Operaciones de servicios móviles/fijos
  • Soporte1NController - Soporte técnico 1N
  • HelpCenterController - Centro de ayuda y soporte

💰 FACTURACIÓN Y PAGOS

  • BillController - Gestión de facturas
  • PaymentGatewayController - Gateway de pagos
  • PayUController - Integración PayU
  • BancolombiaController - Integración bancaria
  • ScheduledPaymentsController - Pagos programados

📞 ATENCIÓN Y SOPORTE

  • PQRController - Gestión de PQRs (Peticiones, Quejas, Reclamos)
  • SupportController - Soporte general
  • IVRController - Integración con IVR
  • WhatsAppController - Integración WhatsApp
  • MaxController - Integración con Max
  • CommercialCatalogController - Catálogo comercial
  • ProductCatalogController - Catálogo de productos
  • KioskosController - Gestión de kioskos
  • KioscosController - Operaciones de kioscos

🔗 INTEGRACIONES EXTERNAS

  • SalesForceController - Integración Salesforce
  • ScrapingController - Web scraping
  • ApiGatewayController - Gateway de APIs externas

📊 REPORTES Y DOCUMENTOS

  • PdfGeneratorController - Generación de PDFs
  • DocumentManagerController - Gestión de documentos
  • CarruselController - Gestión de carruseles

⚙️ UTILIDADES Y CONFIGURACIÓN

  • ParametersController - Gestión de parámetros
  • NotificationsController - Sistema de notificaciones
  • MailboxController - Gestión de buzones
  • RetentionsController - Gestión de retenciones

📱 SERVICIOS ESPECIALIZADOS

  • FamilyAndFriendsController - Familia y amigos
  • SpendResourcesController - Gestión de recursos
  • BSEController - Servicios BSE

📈 ANÁLISIS Y MONITOREO

  • HomeController - Dashboard y monitoreo
  • DocsController - Documentación
  • SwaggerController - Documentación API

Sistemas Integrados

SistemaPropósitoTipoDescripción
MongoDB ServiceGestión de datos operativosNegocioAlmacenamiento y consulta de datos
Oracle ServiceProcesos de negocio y soporteNegocioProcesamiento de órdenes y operaciones
IVR ServiceIntegración de voz y telefoníaExperienciaPlataforma de atención telefónica
Service-PAPIServicios de negocio internosNegocioProcesos internos de ETB
Billing ServiceFacturación y pagosNegocioProcesamiento de facturación y cobros
ETB MDMGestión de datos maestrosDatosCentralización de información clave
Support ServiceSoporte y atenciónSoporteGestión de tickets y soporte técnico
Remedy SAPIIntegración RemedySoporteSistema de gestión de incidencias
SAP SAPIIntegración SAPNegocioProcesos de negocio SAP
Common SAPIServicios comunesUtilidadUtilidades y servicios compartidos
Salesforce ServiceCRM y gestión de clientesNegocioGestión de relaciones con clientes
LISIM ServiceValidación de identidadSeguridadValidación de códigos y autenticación
DirectTV ServiceServicios de televisiónEntretenimientoGestión de servicios de TV
PayU ServiceProcesamiento de pagosFinancieroGateway de pagos online
Wompi ServicePagos digitalesFinancieroProcesamiento de transacciones digitales

Flujos de Datos

BotServices interactúa con múltiples sistemas externos para cumplir sus funciones. Consulta el diagrama Mermaid de flujos de datos para visualizar las dependencias y relaciones.

mermaid
graph LR
    A[BotServices API] --> B[MongoDB Service]
    A --> C[Oracle Service]
    A --> D[IVR Service]
    A --> E[Service-PAPI]
    A --> F[Audits Service]
    A --> G[Billing Service]
    A --> H[ETB MDM]
    A --> I[Support Service]
    A --> J[Remedy SAPI]
    A --> K[SAP SAPI]
    A --> L[Common SAPI]
    A --> M[Salesforce Service]
    A --> N[LISIM Service]
    A --> O[DirectTV Service]
    A --> P[PayU Service]
    A --> Q[Wompi Service]
    B --> R[(MongoDB)]
    C --> S[(OracleDB)]
    D --> T[(IVR DB)]
    E --> U[(Service DB)]
    F --> V[(Audits DB)]
    G --> W[(Billing DB)]
    H --> X[(MDM DB)]
    I --> Y[(Support DB)]
    J --> Z[(Remedy DB)]
    K --> AA[(SAP DB)]
    L --> BB[(Common DB)]
    M --> CC[(Salesforce)]
    N --> DD[(LISIM DB)]
    O --> EE[(DirectTV DB)]
    P --> FF[(PayU DB)]
    Q --> GG[(Wompi DB)]
    classDef main fill:#e3f2fd,stroke:#1565c0,stroke-width:3px
    classDef ext fill:#fce4ec,stroke:#ad1457,stroke-width:2px
    classDef db fill:#f1f8e9,stroke:#33691e,stroke-width:2px
    class A main
    class B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q ext
    class R,S,T,U,V,W,X,Y,Z,AA,BB,CC,DD,EE,FF,GG db

Endpoints por Categorías

🔐 Autenticación y Seguridad

http
POST   /api/mietb-api/v1/authenticate
POST   /api/mietb-api/v1/authenticatenetwork
POST   /api/mietb-api/v1/register
POST   /api/mietb-api/v1/registernetwork
POST   /api/mietb-api/v1/update
POST   /api/mietb-api/v1/updatepassword
POST   /api/mietb-api/v1/updateusername
POST   /api/mietb-api/v1/delete
POST   /api/mietb-api/v1/logout
POST   /api/mietb-api/v1/linkchangepassword

👥 Gestión de Clientes

http
POST   /api/customers/v1/get
POST   /api/customers/v1/createcontactphone
POST   /api/customers/v1/enrollvalidationcode
POST   /api/customers/v1/getformconfronta
POST   /api/customers/v1/getpendinginvoices
POST   /api/customers/v1/habeasdata
POST   /api/customers/v1/identityvalidation
POST   /api/customers/v1/mecna
POST   /api/customers/v1/replyformconfronta
POST   /api/customers/v1/setcontact
POST   /api/customers/v1/settyc
POST   /api/customers/v1/update
POST   /api/customers/v1/validatecodelsim
GET    /api/mietb-api/v1/get
POST   /api/mietb-api/v1/multiuser/create

📋 Gestión de Órdenes

http
POST   /api/orders/v1/agendaavailable
POST   /api/orders/v1/cancelorder
POST   /api/orders/v1/createchangenumber
POST   /api/orders/v1/executechangenumber
POST   /api/orders/v1/get
POST   /api/orders/v1/relocate
POST   /api/orders/v1/rescheduleorder
POST   /api/orders/v1/updatedate
POST   /api/orders/v1/updateschedule
GET    /api/mietb-api/v1/orders

⚙️ Gestión de Servicios

http
POST   /api/services/v1/activesimcard
POST   /api/services/v1/balancetransfer
POST   /api/services/v1/buylego
POST   /api/services/v1/changeplan
POST   /api/services/v1/getcontract
POST   /api/services/v1/getbalance
POST   /api/services/v1/getexpense
POST   /api/services/v1/getinvoices
POST   /api/services/v1/getrecharges
POST   /api/services/v1/recharge
POST   /api/services/v1/reconexion
POST   /api/services/v1/registerdevice
POST   /api/services/v1/requestinvoice
POST   /api/services/v1/suspendbytheft
POST   /api/services/v1/suspendvoluntarily
POST   /api/services/v1/sva
POST   /api/services/v1/update
POST   /api/services/v1/validateimei
GET    /api/mietb-api/v1/services

💰 Facturación y Pagos

http
POST   /api/bill/v1/get
POST   /api/mietb-api/v1/paymentgateway/create
POST   /api/mietb-api/v1/paymentgateway/get
POST   /api/mietb-api/v1/paymentgateway/getbillpayment
POST   /api/mietb-api/v1/scheduledpayments/get
POST   /api/mietb-api/v1/scheduledpayments/inactive
POST   /api/mietb-api/v1/scheduledpayments/insert
GET    /api/mietb-api/v1/invoices/pending

📞 Atención y Soporte

http
POST   /api/pqr/v1/agenda
POST   /api/pqr/v1/agendaavailable
POST   /api/pqr/v1/create
POST   /api/pqr/v1/get
POST   /api/pqr/v1/reagenda
POST   /api/pqr/v1/update
GET    /api/mietb-api/v1/pqrs

🛒 Comercial y Catálogo

http
POST   /api/mietb-api/v1/catalog
POST   /api/mietb-api/v1/commercialcatalog
POST   /api/mietb-api/v1/commercialcatalog/filter

📱 Servicios Especializados

http
POST   /api/mietb-api/v1/familyandfriends/create
POST   /api/mietb-api/v1/familyandfriends/get
POST   /api/mietb-api/v1/familyandfriends/update

🔗 Procesos Especializados

ASER (Agenda de Servicios)

http
POST   /api/mietb-api/v1/aser/agendaavailable
POST   /api/mietb-api/v1/aser/confirmagenda
POST   /api/mietb-api/v1/aser/getcode
POST   /api/mietb-api/v1/aser/getquestions
POST   /api/mietb-api/v1/aser/pending
POST   /api/mietb-api/v1/aser/respondcode
POST   /api/mietb-api/v1/aser/respondquestions
POST   /api/mietb-api/v1/aser/validate

PRCH (Portabilidad)

http
POST   /api/mietb-api/v1/prch/agendaavailable
POST   /api/mietb-api/v1/prch/confirmagenda
POST   /api/mietb-api/v1/prch/create
POST   /api/mietb-api/v1/prch/filter
POST   /api/mietb-api/v1/prch/getcode
POST   /api/mietb-api/v1/prch/getquestions
POST   /api/mietb-api/v1/prch/pending
POST   /api/mietb-api/v1/prch/respondcode
POST   /api/mietb-api/v1/prch/respondquestions
POST   /api/mietb-api/v1/prch/update

SVA (Servicios de Valor Agregado)

http
POST   /api/mietb-api/v1/sva/agendaavailable
POST   /api/mietb-api/v1/sva/create
POST   /api/mietb-api/v1/sva/getcode
POST   /api/mietb-api/v1/sva/getquestions
POST   /api/mietb-api/v1/sva/init
POST   /api/mietb-api/v1/sva/respondcode
POST   /api/mietb-api/v1/sva/respondquestions

Soporte 1N

http
POST   /api/mietb-api/v1/soporte1n/getdevicestate
POST   /api/mietb-api/v1/soporte1n/getequipments
POST   /api/mietb-api/v1/soporte1n/getguestnetworks
POST   /api/mietb-api/v1/soporte1n/getnetworks
POST   /api/mietb-api/v1/soporte1n/normalizeinternet
POST   /api/mietb-api/v1/soporte1n/restartparentalcontrol
POST   /api/mietb-api/v1/soporte1n/restartont
POST   /api/mietb-api/v1/soporte1n/setdevicestate
POST   /api/mietb-api/v1/soporte1n/setwifigueststate
POST   /api/mietb-api/v1/soporte1n/setwifiname
POST   /api/mietb-api/v1/soporte1n/setwifipassword
POST   /api/mietb-api/v1/soporte1n/setwifistate
POST   /api/mietb-api/v1/soporte1n/validatetv

⚙️ Utilidades y Otros

http
GET    /api/mietb-api/v1/widget
POST   /api/mietb-api/v1/widget
DELETE /api/mietb-api/v1/widget/delete
POST   /api/mietb-api/v1/qualifyexperience
POST   /api/mietb-api/v1/setregistertype
POST   /api/mietb-api/v1/validateimei
POST   /api/mietb-api/v1/interaction

Ejemplo de Flujo Completo

Consulta el diagrama Mermaid de secuencia para ver el flujo típico de una operación:

mermaid
sequenceDiagram
    participant Client as Cliente/API Consumer
    participant Gateway as BotServices API Gateway
    participant Controller as Controller Layer
    participant Business as Business Layer
    participant DataAccess as Data Access Layer
    participant External as Servicio Externo
    participant DB as Base de Datos

    Client->>Gateway: HTTP Request (ej: POST /api/mietb-api/v1/authenticate)
    Gateway->>Gateway: JWT Authentication
    Gateway->>Gateway: Logging Inicial
    Gateway->>Controller: Route to Controller
    Controller->>Controller: Validación y parsing
    Controller->>Business: Ejecutar lógica de negocio
    Business->>Business: Transformación y reglas
    Business->>DataAccess: Llamada a cliente de servicio
    DataAccess->>External: HTTP/API Call
    External->>DB: Operación en base de datos
    DB-->>External: Respuesta de datos
    External-->>DataAccess: Respuesta servicio
    DataAccess-->>Business: Datos procesados
    Business->>Business: Formateo de respuesta y manejo de errores
    Business-->>Controller: Respuesta formateada
    Controller->>Controller: Validación de respuesta
    Controller-->>Gateway: Respuesta final
    Gateway->>Gateway: Logging asíncrono
    Gateway-->>Client: HTTP Response

Seguridad y Autenticación

JWT Authentication

  • JWT_SECRET_KEY: Clave secreta para generación de tokens
  • JWT_AUDIENCE_TOKEN: URL de audiencia del token
  • JWT_ISSUER_TOKEN: URL del emisor del token
  • JWT_EXPIRE_MINUTES: Tiempo de vida del token (30 minutos)
  • JWT_SYSTEMS: Sistemas que tienen activa la validación JWT (MIETB, TIENDA)

Cifrado de Datos

  • EXTERNAL_SECURITY_KEY: Llave de cifrado para requests externos
  • INTERNAL_SECURITY_KEY: Llave de cifrado para requests internos
  • MD5_KEY_SECURITY: Llave de seguridad MD5

Configuración y Despliegue

Requisitos Previos

  • .NET Framework 4.8
  • Visual Studio 2019 o superior
  • Azure Subscription (para servicios en la nube)
  • TFS

Variables de Entorno Principales

  • MONGO_CONNECTIONSTRING_MDM: Conexión a MongoDB MDM
  • MONGO_CONNECTIONSTRING_AUTOGESTION: Conexión a MongoDB Autogestión
  • URL_MIETB: URL del servicio MiETB
  • URL_MICROFRONTS: URL de Microfronts
  • STORA_CONNECTION_STRING: Conexión a Azure Storage
  • SALESFORCE_USER/PASSWORD: Credenciales Salesforce
  • LISIM_USER/PASSWORD: Credenciales LISIM

Monitoreo y Logging

  • Application Insights: Telemetría y monitoreo
  • Log Analytics: Análisis de logs
  • AUDITORIA_SERVICE: Auditoría de servicios (INACTIVO/ACTIVO)
  • AUDITORIA_MONGO: Auditoría directa en MongoDB (ACTIVO)