WIP - call connecting to softphone

This commit is contained in:
Francisco Gaona
2026-01-04 04:29:25 +01:00
parent 71cd6a07b7
commit 03cbb5eb1f
11 changed files with 1190 additions and 104 deletions

View File

@@ -40,7 +40,10 @@ export class VoiceGateway
private readonly jwtService: JwtService,
private readonly voiceService: VoiceService,
private readonly tenantDbService: TenantDatabaseService,
) {}
) {
// Set gateway reference in service to avoid circular dependency
this.voiceService.setGateway(this);
}
async handleConnection(client: AuthenticatedSocket) {
try {
@@ -49,7 +52,7 @@ export class VoiceGateway
client.handshake.auth.token || client.handshake.headers.authorization?.split(' ')[1];
if (!token) {
this.logger.warn('Client connection rejected: No token provided');
this.logger.warn('Client connection rejected: No token provided');
client.disconnect();
return;
}
@@ -82,8 +85,9 @@ export class VoiceGateway
this.connectedUsers.set(client.userId, client);
this.logger.log(
`Client connected: ${client.id} (User: ${client.userId}, Domain: ${domain})`,
`Client connected: ${client.id} (User: ${client.userId}, Domain: ${domain})`,
);
this.logger.log(`Total connected users in ${domain}: ${this.getConnectedUsers(domain).length}`);
// Send current call state if any active call
const activeCallSid = this.activeCallsByUser.get(client.userId);
@@ -95,7 +99,7 @@ export class VoiceGateway
client.emit('call:state', callState);
}
} catch (error) {
this.logger.error('Authentication failed', error);
this.logger.error('Authentication failed', error);
client.disconnect();
}
}
@@ -103,7 +107,8 @@ export class VoiceGateway
handleDisconnect(client: AuthenticatedSocket) {
if (client.userId) {
this.connectedUsers.delete(client.userId);
this.logger.log(`Client disconnected: ${client.id} (User: ${client.userId})`);
this.logger.log(`Client disconnected: ${client.id} (User: ${client.userId})`);
this.logger.log(`Remaining connected users: ${this.connectedUsers.size}`);
}
}