aTalk (Jabber / XMPP)
- an encrypted instant messaging with video call and GPS features for android
Features
aTalk is an xmpp client designed for android and supports the following features:
- See atalk.doap for list of XEP’s standards supported by aTalk XMPP client.
- Instant messaging via End-to-End OMEMO encryption.
- SSL Certificate authentication, DNSSEC and DANE Security implementation for enhanced secure Connection Establishment.
- OMEMO encryption in chat or multi-user chat session enhancing privacy and security.
- Support Stickers, Bitmoji and Emoji rich contents sending via Google Gboard.
- Support secured file sharing via HttpFileUpload, or via Jingle Encrypted Transport (JET).
- Fault-tolerance file transfer algorithm, via HttpFileUpload, Jingle File Transfer, and Legacy In-Band/SOCK5 Bytestreams protocols.
- Auto accept file transfer with max file size option.
- Support share, quote and forward of messages and media with previews prior to sending.
- Support multi-instances of audio media player with functions: Play, Pause, Resume, Stop and Seek.
- Support unread message badges in contact and chatroom list views.
- User selectable option for heads-up notification, and user defined quiet hours.
- Support Text to Speech and speech recognition UI with enable option per chat session (contact and group chat).
- Support 50 Languages Translation for sent/received messages in chat/multi-user chat sessions.
- Language Translation server may use aTalk default or user defined URL.
- Support Call transfer, and call waiting to hold or answer second incoming call.
- Implement Jabber VoIP-PBX gateway Telephony, allowing PBX phone call via service gateway.
- Support video media call with SDES, DTLS SRTP, and ZRTP crypto algorithms using SHA-2 384, 256bit ciphers encryptions.
- Media call setup via either XEP-0353: Jingle Message Initiation, or XEP-0167: Jingle RTP Sessions protocol.
- Message Archive Management, and Message Carbons synchronizing chat history across all instances of the account.
- GPS-Location implementation as standalone tool, send locations to buddy for real-time tracking or playback animation.
- A 360° street view of your current location use for self-guided tour. The street view tracks and follows your direction of sight.
- Update user avatar with integrated photo editor, zooming and cropping with ease.
- Support both XEP-0153: vCard-Based Avatar, and XEP-0084: User Avatar protocol Implementations.
- Support XEP-0048: Bookmarks for multi-user chatroom.
- Support XEP-0070: Verifying HTTP Requests via XMPP.
- Retract of sent messages, and Last message correction in chat/multi-user chat sessions.
- Multiple accounts creation, server registration via XMPP or BOSH protocol.
- In-Band Registration with CAPTCHA option; needs support from server.
- Support for XEP-0191: Blocking Command to block communications with a specific contact and domain
- Stream Management and mobile network ping interval self-tune optimization support.
- Multi-language UI support (Arabic, Indonesian, Chinese, English, Finnish, German, Portuguese (Brazil), Russian, Slovak and Spanish).
Acknowledgements
Libraries used in this project:
- Android Support Library
- Android-EasyLocation
- android-youtube-player
- apache-mime4j-core
- Argos Translate
- bcg729
- bouncycastle
- ckChangeLog
- commons-codec
- commons-text
- Dexter
- FFmpeg
- fmj-jitsi
- glide
- Google Play Services
- httpcore
- IPAddress
- ice4j
- jbosh
- jitsi
- jitsi-android
- jmdns
- jxmpp-jid
- libjitsi
- LibreTranslate Java Restful Client
- libvpx
- media3-exoplayer
- Mime4j
- miniDNS
- Noembed
- okhttp”
- opensles
- openSSL
- Opus
- osgi.core
- osmdroid
- sdes4j
- sdp-api
- signal-protocol-java
- smack
- speex
- Timber
- TokenAutoComplete
- uCrop
- weupnp
- x264
- zrtp4j-light
Other contributors:
Documentation
aTalk apk build for android
- Following development environment setups are used to build aTalk.apk
a. Android Studio Narwhal | 2025.1.1
b. distributionUrl=https://services.gradle.org/distributions/gradle-8.14.3-bin.zip c. classpath ‘com.android.tools.build:gradle:8.11.1’ d. Ubuntu 24.04 with proper environment setup for development
Note: all shell scripts in aTalk are written to run on linux OS only e.g. Ubuntu - aTalk uses native jni libraries, required to be downloaded and built manually prior to android NDK build.
The static jni libraries must be built prior to android studio apk build process. - You must run the gradle task ‘buildJniStaticLibs’ to build all the jni static libraries used in aTalk.
See aTalk/jni/static_library_build directory readme files for more information
on linux environment setup, and the execution of jni libraries build scripts. - You must run the gradle task ‘initJniLibs’ to fetch the jni libraries prior to android ndk build process.
These libraries sources include: opus, speex, ogg and g729
Feedback and Contributions
If you can’t find your language in UI and would like to help then translate the app on https://toolate.othing.xyz/projects/atalk/.
Or copy the strings.xml to values-LOCALE where the LOCALE is language-COUNTRY e.g. pt-rBR.
Then create a pull request or forward the file to the developer.
If you have found bug, wish for new feature, or have other questions, file an issue.
License
aTalk, android VoIP and Instant Messaging client
Copyright 2014-2022 Eng Chong Meng
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.