omnitalk_sdk 2.1.2 copy "omnitalk_sdk: ^2.1.2" to clipboard
omnitalk_sdk: ^2.1.2 copied to clipboard

simple and easy flutter sdk for real time communication using WebRTC

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.

  1. Installation

    import 'package:omnitalk_sdk/omnitalk_sdk.dart';
    
  2. 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();
    
  3. Create Session

    await omnitalk.createSession(userId: userId);
    
  4. Create Room

    Create a room of the specified room type.

    await omnitalk.createRoom(roomType: RoomType.videoroom);
    
  5. 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);
    
  6. 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);
    
  7. Receive Event Messages

    To receive event messages from the OmniTalk SDK, use the following:

    omnitalk.on('event', eventListener);
    
    
  8. Subscribe to Broadcasting

    To subscribe to a broadcast, provide the session ID of the desired broadcast.

    await omnitalk.subscribe(
          publisherSession: publisherSession!, remoteRenderer: remoteVideo);
    
  9. 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();
    
    
  10. 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);
    
  11. Chat Messages

    Upon joining a room (regardless of type), you can send and receive chat messages.

    await omnitalk.sendMessage(action: MessageAction.send, message: message!);
    
    
  12. 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.