startStats method
Implementation
Future<bool> startStats(
String callId,
String peerId, {
CallQualityCallback? onCallQualityChange,
String? direction,
String? destinationNumber,
String? callerNumber,
}) async {
if (peerConnection == null) {
GlobalLogger().d('Peer connection null');
return false;
}
// Create log collector
_callReportLogCollector = CallReportLogCollector(
maxEntries: _callReportMaxLogEntries,
logLevel: _callReportLogLevel,
);
// Log call started event
_callReportLogCollector?.logCallStarted(
callId: callId,
direction: direction ?? 'unknown',
destinationNumber: destinationNumber,
callerNumber: callerNumber,
);
// Always start call report collector (for post-call reporting)
_callReportCollector = CallReportCollector(
options: CallReportOptions(
intervalMs: _callReportInterval,
),
logCollector: _callReportLogCollector,
);
_callReportCollector?.start(peerConnection!);
GlobalLogger().d('Peer :: CallReportCollector started for $callId');
// Only start WebRTC stats reporter if debug mode is enabled
if (_debug == false) {
GlobalLogger().d(
'Peer :: Stats manager will not start. Debug mode not enabled on config',
);
return true; // Return true because call report collector started
}
_statsManager = WebRTCStatsReporter(
_socket,
peerConnection!,
callId,
peerId,
_txClient.isDebug(),
onCallQualityChange: onCallQualityChange,
);
await _statsManager?.startStatsReporting();
return true;
}