Learn how to integrate and customize CometChat’s call log components to display call history, participant details, and call recordings in your iOS UIKit chat app.Documentation Index
Fetch the complete documentation index at: https://cometchat-22654f5b-release-ios-chat-uikit-v5-1-2.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Overview
TheCallLogDetailsVC module provides a tabbed interface to view details of past calls:
- History: Chronological join/leave events.
- Participants: Users who joined the call.
- Recordings: Links to cloud-hosted call recordings.
Prerequisites
- A UIKit-based iOS project.
- CometChatSDK, CometChatCallsSDK, and CometChatUIKitSwift integrated.
- Active internet connection.
- A valid, logged-in CometChat user.
Components
| Component | Role |
|---|---|
CallLogDetailsVC | Main container with segmented control and page view. |
CallLogParticipantsVC | Displays a list of users who participated in the call. |
CallLogHistoryVC | Shows join/leave history entries with timestamps and statuses. |
CallLogRecordingsVC | Lists call recordings with playback actions. |
CallLogDetailsHeaderView | Header view showing call metadata (title, status, duration). |
CallLogUserCell | UITableViewCell for participants, history, and recordings entries. |
CallLogDetailsModel | Data model formatting participants, history, and recordings data. |
CallLogViewModel | Fetches and distributes call log data to the UI components. |
Integration Steps
1. Present Call Log Details Screen
Show the call log interface for a selected call.CallLogDetailsVC.swift
Bundles history, participants, and recordings into a single UI flow.
2. Display Participants List
Populate the participants tab with the call’s members.CallLogParticipantsVC.swift
Audits who was present in the call.
3. Show Call History
Render join/leave activities in chronological order.4. List and Play Recordings
Provide playback links for any recorded calls.Customization Options
- Styling: Customize colors, fonts, and spacing via
CometChatTheme,CometChatTypography, andCometChatSpacinginCallLogUserCellandCallLogDetailsHeaderView. - Filters: Use
CallLogViewModelto filter by call type (incoming, outgoing, missed). - Empty States: Implement an
EmptyStateViewinCallLogHistoryVCfor no-history scenarios.
Filtering & Edge Cases
- No Call Logs: Show a custom empty state instead of a blank table.
- Pagination: Add lazy loading in
scrollViewDidScrollofCallLogHistoryVCto fetch more entries. - Blocked Users: In
CallLogParticipantsVC, disable profile navigation if the user is blocked.
Error Handling
- Network/API Errors: Display
UIAlertControlleron fetch failures; expose error viaCallLogViewModeldelegate. - Retry Mechanism: Add pull-to-refresh or a retry button in
CallLogDetailsVC. - Recording Unavailable: Gracefully disable playback links if URL is missing.
Optional Notes
- Group Calls vs 1:1 Calls: Customize
CallLogParticipantsVCdisplay based on call type and participant roles. - Metadata Display: Use
CallLogDetailsHeaderViewto show titles, call duration, and status icons.
Feature Matrix
| Feature | Component / Method | File(s) |
|---|---|---|
| Show call log details screen | CallLogDetailsVC(call:) | CallLogDetailsVC.swift |
| Display participants | CallLogParticipantsVC | CallLogParticipantsVC.swift |
| Display history entries | CallLogHistoryVC | CallHistoyTVC.swift, CallLogHistoryVC.swift |
| List recordings | CallLogRecordingsVC | CallLogRecordingsVC.swift, CallRecordingTVC.swift |
| Header metadata | CallLogDetailsHeaderView | CallLogDetailsHeaderView.swift |
| Data handling | CallLogDetailsModel | CallLogDetailsModel.swift |
| Data fetching & distribution | CallLogViewModel | CallLogViewModel.swift |
Full Sample App
Explore a full sample implementation:
GitHub → SampleApp
UIKit Source Code
Review the call log components in the UIKit library:
GitHub → Call Log Components