B4A Library B4a Janus Webrtc Audio Bridge Library

Hello everyone. if you are familiar with Janus Webrtc server then this library might be useful for you.
if you want to read more about meetecho janus gateway you can find it on this github.

This is not a wrapper or any kind of ready to compile Project.
This Project is made with curiosity From A To Z. starting from android studio codebase to the last piece of the code logic.
that's why this library is not for free. since there is many efforts and time has been given to make this library possible to b4a.

Functionality :
B4a Okhttp Websocket
  • AddoWebsocket [Okhttp Websocket Client to communicate with Janus]
  • Initialize
  • Connect
  • isConnected
  • Close
  • sendMessage
B4a Websocket Events
  • _onClosed(Code As Int, reason As String)
  • _onFailure(response As String, err As String)
  • _onMessage(text As String)
  • _onOpen
B4a PeerConnection Client
  • addoPeerConnection [a webrtc peer connection Client ]
  • Initialize(sessionId As Long, Userid As Long, Stunserver As String, Usertoken As String, DisableBuiltinAEC As Boolean, DisableBuiltinAGC As Boolean, DisableBuiltinNS As Boolean, "eventName")
  • isIntialized
  • StartJanusPeerConnection
  • Close
  • CreatePeerConnectionClient
  • CreateOffer
  • CreateBroadCastReceiver
  • AdjustAudioOutput
  • DefaultAudioOutPut
  • AdjustSpeakervolume
  • MuteMic
  • MuteSound
  • startAudio
  • stopAudio
  • RequestAudioFocus

Events
  • _PeerFactoryCreated
  • _PeerConnectionCreated
  • _offercreated
  • _sendmessage
  • _PublishAudioEnabled
  • _BroadcastReciver
  • _AudioManager

B4j (Back-End)
  • janusAdminws [websocket Client to safely Authenticate and manage users from the server side creating rooms, deleting rooms, kicking users and so on...]
  • janusAdminApi [HttpClient shows how to safely interact with janus admin panel from the server side to moderate tokens and sessions.]

Current Version is 1.50 if you are interested contact me via DM.
 
Last edited:

Addo

Well-Known Member
Licensed User
Longtime User
a complete version has been updated and sold out to other fellow b4x member,
Features
  • talk/stop talking
  • get list of rooms
  • changeroom
  • CreateRooms --> b4j Api to safely do this requests
  • Destroyrooms --> b4j Api to safely do this requests
  • edit rooms--> b4j Api to safely do this requests
  • add token--> b4j Api to safely do this requests
  • remove token--> b4j Api Connects to admin monitor to safely do this requests
  • list Tokens --> b4j Api Connects to admin monitor to safely do this requests
  • kick user
if you are interested contact me via dm.
 

mzelecom

Member
Hello everyone. if you are familiar with Janus Webrtc server then this library might be useful for you.
if you want to read more about meetecho janus gateway you can find it on this github
you can download the repository and test the communication between b4a app and audiobridgetest.html in the repository htlml folder.
Tested on my Janus Private server through janus websocket plugin.
Requirements
Okhttp to be selected from internal library .
Reflection Library to be selected from internal library .
Webrtc aar to be placed in your addintional Folder.

WebRtc aar Download

Functionality :
  • DoCreateClient
  • ConnectToRoom
  • disconnect
  • EnableAudio
  • DoKeepalive
  • isClientready
Events :
  • onStartKeepalive

This is Version 1 I may post an update with more functionalities in future .

Donate if you Find My Posts is useful.
thanks.
when apps start this error happend.
why app need bluetooth?
B4X:
java.lang.SecurityException: Need android.permission.BLUETOOTH_CONNECT permission for AttributionSource { uid = 10663, packageName = b4a.example, attributionTag = null, token = android.os.BinderProxy@87bd14, next = null }: getName
 

Addo

Well-Known Member
Licensed User
Longtime User
thanks.
when apps start this error happend.
why app need bluetooth?
B4X:
java.lang.SecurityException: Need android.permission.BLUETOOTH_CONNECT permission for AttributionSource { uid = 10663, packageName = b4a.example, attributionTag = null, token = android.os.BinderProxy@87bd14, next = null }: getName
You are lacking of Bluetooth permission. How ever this library is no longer for free. The current updated version is sold out to other fellow b4x member.
 

KZero

Active Member
Licensed User
Longtime User
this link for WebRtc aar is broken
i found a copy of the file online but when i compile i get this error
"Cannot find central directory"
 
Last edited:

pixet

Member
Licensed User
Longtime User
I have been using the Janus library on my Android devices for a few days and I must say that I am satisfied with the features available as well
as the great possibility of managing the actions and events necessary to manage users and personalized rooms on the server.

Good job.
 

Addo

Well-Known Member
Licensed User
Longtime User
I have been using the Janus library on my Android devices for a few days and I must say that I am satisfied with the features available as well
as the great possibility of managing the actions and events necessary to manage users and personalized rooms on the server.

Good job.
Thank you for your comment hopefully you found it valuable for your needs.
 

pixet

Member
Licensed User
Longtime User
These are two screenshots, one of Admin with access to the Janus API created with B4J,
and the other from the client side on an Android device created with B4A.
 

Attachments

  • screenshot_janus_Admin_B4J.png
    screenshot_janus_Admin_B4J.png
    118.1 KB · Views: 131
  • screenshot_janus_client_B4A.png
    screenshot_janus_client_B4A.png
    38.5 KB · Views: 117
Top