diff --git a/lib/services/rocketchat-call-listener.ts b/lib/services/rocketchat-call-listener.ts index 0da62f5..33b86c6 100644 --- a/lib/services/rocketchat-call-listener.ts +++ b/lib/services/rocketchat-call-listener.ts @@ -88,6 +88,7 @@ export class RocketChatCallListener { this.ws = new WebSocket(wsUrl); this.ws.onopen = () => { + console.log('[ROCKETCHAT_CALL_LISTENER] ✅ WebSocket connected!'); logger.debug('[ROCKETCHAT_CALL_LISTENER] WebSocket connected'); this.isConnecting = false; this.isConnected = true; @@ -96,7 +97,19 @@ export class RocketChatCallListener { }; this.ws.onmessage = (event) => { - this.handleMessage(JSON.parse(event.data)); + try { + const message = JSON.parse(event.data); + console.log('[ROCKETCHAT_CALL_LISTENER] 📨 Received WebSocket message:', { + msg: message.msg, + collection: message.collection, + id: message.id, + eventName: message.fields?.eventName, + fullMessage: message, + }); + this.handleMessage(message); + } catch (error) { + console.error('[ROCKETCHAT_CALL_LISTENER] Error parsing message', error, event.data); + } }; this.ws.onerror = (error) => { @@ -105,7 +118,12 @@ export class RocketChatCallListener { this.isConnected = false; }; - this.ws.onclose = () => { + this.ws.onclose = (event) => { + console.log('[ROCKETCHAT_CALL_LISTENER] 🔌 WebSocket closed', { + code: event.code, + reason: event.reason, + wasClean: event.wasClean, + }); logger.debug('[ROCKETCHAT_CALL_LISTENER] WebSocket closed'); this.isConnected = false; this.isConnecting = false; @@ -129,6 +147,11 @@ export class RocketChatCallListener { */ private authenticate(): void { if (!this.ws || !this.authToken || !this.userId) { + console.warn('[ROCKETCHAT_CALL_LISTENER] Cannot authenticate - missing ws, token, or userId', { + hasWs: !!this.ws, + hasToken: !!this.authToken, + hasUserId: !!this.userId, + }); return; } @@ -143,6 +166,11 @@ export class RocketChatCallListener { ], }; + console.log('[ROCKETCHAT_CALL_LISTENER] 🔐 Sending login message', { + method: 'login', + hasToken: !!this.authToken, + userId: this.userId, + }); logger.debug('[ROCKETCHAT_CALL_LISTENER] Sending login message'); this.ws.send(JSON.stringify(loginMessage)); } @@ -198,18 +226,32 @@ export class RocketChatCallListener { private handleMessage(message: any): void { // Handle login response if (message.msg === 'result' && message.id?.startsWith('login-')) { - if (message.result?.token) { + console.log('[ROCKETCHAT_CALL_LISTENER] 📋 Login response received', { + success: !!message.result?.token, + error: message.error, + result: message.result, + }); + if (message.result?.token || message.result) { + console.log('[ROCKETCHAT_CALL_LISTENER] ✅ Login successful!'); logger.debug('[ROCKETCHAT_CALL_LISTENER] Login successful'); this.subscribeToCalls(); } else { + console.error('[ROCKETCHAT_CALL_LISTENER] ❌ Login failed', message); logger.error('[ROCKETCHAT_CALL_LISTENER] Login failed', { message }); } return; } // Handle subscription ready - if (message.msg === 'ready' && message.subs?.includes(this.subscriptionId)) { - logger.debug('[ROCKETCHAT_CALL_LISTENER] Subscription ready'); + if (message.msg === 'ready') { + console.log('[ROCKETCHAT_CALL_LISTENER] ✅ Subscription ready', { + subs: message.subs, + ourSubId: this.subscriptionId, + isOurSub: message.subs?.includes(this.subscriptionId), + }); + if (message.subs?.includes(this.subscriptionId)) { + logger.debug('[ROCKETCHAT_CALL_LISTENER] Subscription ready'); + } return; } @@ -246,13 +288,25 @@ export class RocketChatCallListener { } } - // Log all messages for debugging - if (message.msg && message.collection === 'stream-notify-user') { - console.log('[ROCKETCHAT_CALL_LISTENER] Stream notify user message:', { + // Log all stream-notify-user messages for debugging + if (message.collection === 'stream-notify-user') { + console.log('[ROCKETCHAT_CALL_LISTENER] 📢 Stream notify user message:', { msg: message.msg, collection: message.collection, eventName: message.fields?.eventName, hasArgs: !!(message.fields?.args && message.fields.args.length > 0), + argsCount: message.fields?.args?.length || 0, + fullFields: message.fields, + }); + } + + // Log ALL messages to see what we're receiving + if (message.msg) { + console.log('[ROCKETCHAT_CALL_LISTENER] 📬 All WebSocket message:', { + msg: message.msg, + collection: message.collection, + id: message.id, + method: message.method, }); } }