Omnitalk FLUTTER SDK
OmniTalk is an SDK that enables easy and convenient real-time communication within apps using webRTC standard technology.
Feature Overview
feature | implemented | ios | android |
---|---|---|---|
Audio Call | ✔️ | ✔️ | ✔️ |
Video Call | ✔️ | ✔️ | ✔️ |
Sip Call | ✔️ | ✔️ | ✔️ |
Chatting | ✔️ | ✔️ | ✔️ |
Audio Conference | ✔️ | ✔️ | ✔️ |
Video Conference | ✔️ | ✔️ | ✔️ |
AudioMute | ✔️ | ✔️ | ✔️ |
VideoMute | ✔️ | ✔️ | ✔️ |
Video Switch | ✔️ | ✔️ | ✔️ |
Pre-Requisite
-
OmniTalk Service ID & Service Key
-
To use OmniTalk, you need to obtain a service ID and service key by visiting the OmniTalk website.
-
Alternatively, you can obtain a test ID and key for free usage for one hour from here.
-
Minimum System Requirements
- Flutter >= 3.1.0 - Dart >= 2.19 - Android API >= 21 - iOS >= 11
Getting Started
For detailed usage instructions, please refer to this documentation.
-
Installation
import 'package:omnitalk_sdk/omnitalk_sdk.dart';
-
Create OmniTalk Object
Create an OmniTalk object using the service ID and service key obtained.
Omnitalk.sdkInit( serviceId: 'Service Id', serviceKey: 'Service Key'); Omnitalk omnitalk = Omnitalk.getInstance();
-
Create Session
await omnitalk.createSession(userId: userId);
-
Create Room
Create a room of the specified room type.
await omnitalk.createRoom(roomType: RoomType.videoroom);
-
Join Room
Upon joining a room, you will automatically start an audio broadcast and be able to send and receive chat messages.
await omnitalk.joinRoom(roomId: roomId);
-
Start Broadcasting (Video)
Audio broadcasting starts by simply joining a room. For video broadcasting, you need to pass an object to be able to contain your video stream.
await omnitalk.publish(localRenderer: localVideo);
-
Receive Event Messages
To receive event messages from the OmniTalk SDK, use the following:
omnitalk.on('event', eventListener);
-
Subscribe to Broadcasting
To subscribe to a broadcast, provide the session ID of the desired broadcast.
await omnitalk.subscribe( publisherSession: publisherSession!, remoteRenderer: remoteVideo);
-
Voice Call (1:1)
To implement a 1:1 voice call, you can easily use the offerCall and answerCall APIs. For detailed implementation guide, refer to the documentation.
await omnitalk.offerCall( callType: CallType.audiocall,callee: callee); await omnitalk.answerCall();
-
Video Call (1:1)
To implement a 1:1 video call, use the offerCall and answerCall APIs. For detailed implementation guide, refer to the documentation.
await omnitalk.offerCall( callType: CallType.videocall,callee: callee!,record: false, localRenderer: localVideo, remoteRenderer: remoteVideo); await omnitalk.answerCall( callType: CallType.videocall,caller: caller,localRenderer: localVideo,remoteRenderer: remoteVideo);
-
Chat Messages
Upon joining a room (regardless of type), you can send and receive chat messages.
await omnitalk.sendMessage(action: MessageAction.send, message: message!);
-
End Broadcasting
await omnitalk.leave();
Documentation
Comprehensive and easy-to-follow documentation is available.
Issue
For any issues or questions while using OmniTalk, please refer to the issue page.
Example Projects
Demo projects showcasing simple functionality implemented using the OmniTalk SDK are available.