Skip to content
This repository has been archived by the owner on Apr 14, 2022. It is now read-only.

smartwalkie/Walkie-talkie-android-by-voiceping

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 

Repository files navigation

VoicePing Android SDK


VoicePing SDK Banner

Walkie Talkie/Push To Talk Android SDK for your Chat Apps

  1. Need to add walkie talkie or push-to-talk functionality to your Android app?
  2. Worry no more, you can add it quickly with VoicePing Android SDK that works with VoicePing Open Source Router.
  3. Simple integration, customizable, and free! What are you waiting for? 🎉

VoicePing Android SDK works together with VoicePing Open Source Router to allow you to quickly add group voice broadcast capability to your app. The Android SDK comes with a reference Android App with UI that demonstrates the one button Push-To-Talk interface.

Features of VoicePing Android SDK

  1. Easy to integrate to your app
  2. Low data consumption suitable for Mobile Devices: Opus Codec, defined as 16Khz, 60ms Frame size. ~300KB per 1 minute of speech.
  3. Works over all network conditions (2G, 3G, 4G or Wifi)
  4. Auto-reconnect feature when Internet connection is lost
  5. Uses secure WebSocket for transport
  6. Works for Android SDK (16 to 30) and Android OS version 4.1 to 11
  7. Low battery consumption

Use Cases

  1. A Uber like application can connect a group of drivers together based on their location or zipcode
  2. For Enterprise applications like housekeeping applications, allow a group call to all housekeepers on a certain floor (level) of the hotel
  3. For SOS apps, activate voice broadcast if a user is in distress
  4. For Chat Apps, allow some users to send instant voice messages that do not need to be manually played.

Get Started

You can test our sample app here: Download VP Demo app.
The sample app allows you to test the Walkie Talkie function.
Input any user ID and company name. Devices should have same company name to be able to communicate, but different user ID.

How simple is it to add VoicePing SDK to your app?

SDK in your app

See those mic buttons?

Yup, that button is the only thing you need to add to your app to have PTT functionality.

But what if you don't want a mic button but another UI instead?

We have got it covered. You can customize it.

How to use VoicePing Android SDK

  1. Initialize

Initialize VoicePing in your Application code, inside onCreate method

class VoicePingClientApp : Application() {
    override fun onCreate() {
        super.onCreate()
        VoicePing.init(this, "voiceping_sdk_server_url")
    }
}
  1. Connect

Before you can start talking, you need connect to server. You can do that by call connect method from VoicePing instance.

VoicePing.connect("your_user_id", "your_company", object : ConnectCallback {
    override fun onConnected() {
        // Do something
    }

    override fun onFailed(exception: VoicePingException) {
        // Do something
    }
})
  1. Start Talking

After successfully connected, you can now start talking. You can start talking to individual receiver using:

VoicePing.startTalking("receiver_id", ChannelType.PRIVATE, this)

or in a group using:

VoicePing.startTalking("group_id", ChannelType.GROUP, this)

Before you can talk in a group, you need to join a group first, please look at item 6 below.

  1. Stop Talking

To stop talking, for both Private and Group PTT:

VoicePing.stopTalking()
  1. Disconnect

You can disconnect to stop receiving PTT:

VoicePing.disconnect(object : DisconnectCallback {
    override fun onDisconnected() {
        // Do something
    }
})
  1. Join a group

You cannot listen to a group channel before joining it. To join a group channel:

VoicePing.joinGroup("group_id")
  1. Leave a group

To leave a group channel:

VoicePing.leaveGroup("group_id")
  1. Mute specific channel

To mute specific channel:

VoicePing.mute("target_id", ChannelType.PRIVATE)
// or ChannelType.GROUP if you want to target group
  1. Unmute specific channel

To unmute specific channel:

VoicePing.unmute("target_id", ChannelType.PRIVATE)
// or ChannelType.GROUP if you want to target group

Customization

You can customize the size, color, of the mic button. You can also customize the shape of the mic button. Or you can have your own PTT button.

<com.smartwalkie.voicepingsdk.VoicePingButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:shape="..." (oval / rectangle)
    app:radius="..."
    app:backgroundColor="..."
    app:micColor="..."
    />

VoicePing server URL

VoicePing Android SDK needs a VoicePing server to work. You can test with our hosted server or you can have your own self hosted server later. You can look at this repo to know how to self-host the server.

The public server URL: wss://router-lite.voiceping.info

Self-hosted server

If you need to self-host the server, you can find more documentation on the server repo:

Maintainers

VoicePing Enterprise

VoicePing Enterprise is the full featured closed source version with support. More features available are https://www.voicepingapp.com. You can try VoicePing on:

Join the same free channel ID and try PTT from the web to the Android/iOS app and vice versa. You will find VoicePing has very clear audio and low latency1.

VoicePing Enterprise has more features than VoicePing Open Source which can be found here: https://www.voicepingapp.com/blog/design-a-stunning-blog

Push To Talk

Push To Talk (1-1): Make private calls that no one else can hear.

Push To Talk (Group): Talk to a group of up to 500 users.

Group Channels

Multi Channel Scanning: Active Channel is switched automatically when someone is talking.

Mute Groups: Silent Groups that you do not need to hear right now.

Leave Groups: Leave Groups to save on Battery.

Dynamic Groups: Add, remove or create new groups from Android or Web App.

Unified Field Communication

Texting: Send text in VoicePing Mobile or VoicePing Web Texting or Desktop.

Text to Speech: Have text read out to you when you receive them. Supports Multiple Languages.

API: Send automated Text via API. Send Interactive Text with question and answers. Get location. Manage Groups and group members.

Send Pictures: Send HD pictures in VoicePing.

Send Videos: Send 720p Videos (Auto Compressed) in VoicePing.

Auto Forward Pictures to Email: Pictures can be auto forwarded to email for archival or re-sending.

Voice/Video Calls: Make Private Voice/Video Calls using VoIP.

Headsets

Wired Headset Support: Hear and PTT via Wired Headset with PTT Toggle Mode Button.

Bluetooth Headset Support: Hear Incoming PTT. Best Paired with Bluetooth PTT Button.

Bluetooth PTT Button Support: Activates PTT without needing to touch phone

Safety

Priority Calls: Override conversation to send urgent messages.

SOS: Gets everyone into the emergency channel quickly.

Paging: Urgent and constant alert to get someone's attention.

Default SOS: Quickly press PTT button five times to send a SOS to a pre-defined channel.

Recordings

Download Group Conversation: Download as audio, text and picture files of the entire group conversation as company admin.

Download Private Conversation: Download as audio, text and picture files of the entire private conversation between any pair of users.

Location

Live Location Tracking: See where everyone is now on a map

View Historical Location: See where one person has been

Download Location Data: Download the location data via Excel or API

View Location in App: Admins can view location of users in the Android or Web App

Multi Platform Support

Android Supported: Android 5 to Android 11 supported. With or Without Google Services.

iPhone Supported: iPhone version available. Runs in Background to allow for Real Time receiving of PTT.

Desktop Version: Web Based version to connect office and field workers.

Consulting/Partnership, Services & Pricing

If you would like help on server setup, maintenance, customization, please reach out and we can help you on that. VoicePing Enterprise is also available for customisation, rebranding and source code purchase.

Footnote

[1] Latency: time between someone talks in a device until the other hears the audio on another device

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •