feat: add call events orchestrator with WebSocket gateway, wire Exotel → lookup → enrich → push flow

- CallEventsService orchestrates: Exotel webhook → lead lookup → AI enrichment → WebSocket push
- CallEventsGateway (Socket.IO /call-events namespace) with agent room registration and disposition handling
- EnrichedCallEvent/DispositionPayload types for frontend contract
- Disposition flow: creates Call record, updates lead status, logs lead activity
- Wired ExotelController to forward answered/ended events to CallEventsService
- forwardRef used to resolve circular dependency between gateway and service

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-17 09:08:57 +05:30
parent 3e0d9a4351
commit d488d551ed
7 changed files with 372 additions and 4 deletions

View File

@@ -0,0 +1,12 @@
import { Module } from '@nestjs/common';
import { PlatformModule } from '../platform/platform.module';
import { AiModule } from '../ai/ai.module';
import { CallEventsService } from './call-events.service';
import { CallEventsGateway } from './call-events.gateway';
@Module({
imports: [PlatformModule, AiModule],
providers: [CallEventsService, CallEventsGateway],
exports: [CallEventsService, CallEventsGateway],
})
export class CallEventsModule {}