Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in / Register
  • R REVECallSDKSample
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Container Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • CI/CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • sdk
  • REVECallSDKSample
  • Wiki
  • Configuring Listeners

Last edited by Sourav Das Feb 08, 2022
Page history

Configuring Listeners

Configuring and Initializing the Listeners.

The ListenersProvider Class interacts with the SIPProvider to communicate with the UI or the Foreground processes. You can set the Listeners in your front end Activites.

The SDK listeners: This sdk has two sdk Listener Interfaces . SDKServiceListener and SDKSipListener.

  1. SDKServiceListener: This interface is used to declare the incoming call id. ListenerProvider.sdkServiceListener is an Interface with one abstract method. The service or Activity that will be waiting for incoming calls must have this initialized in the following way. It must be initialized in a service or Activity that waits for incoming calls. This interface should be implemented in the following way in the Activity of your app so that you can use the Callid and CallerID to accept calls or to show from whom the incoming call is.

In Kotlin

ListenersProvider.sdkServiceListener = object : SDKServiceListener{
            override fun startIncomingCall(callId: String, phoneNumber: String) {
                TODO("Use the callIdto accept or decline the incoming call " +
                        "and phoneNumber in the UI to show who is calling")                
            }
        }

In Java

ListenersProvider.sdkServiceListener = new SDKServiceListener() {
            @Override
            public void startIncomingCall(@NonNull String callid, @NonNull String callerID) {
                //TODO "Use the callid to accept or decline the incoming call 
                //and callerID in the UI to show who is calling"
            }
        };
  1. SDKSIPListener: Just as the previous interface needs to be implemented in the service or Acitivity that will launch incoming calls , this one has to be implemented in any Activity that is currently using the call service in any way. This interface is designed to be a communication channel between back and front side of the application. This inteface is most useful to have in an Activity that has direct control over the relevant call related UI. This interface should be implemented the following way.

in Kotlin

ListenersProvider.sdksipListener = object : SDKSIPListener {
            override fun updateCallState(callState: String) {
                //todo This method is called to communicate the current call state to the UI. See more about CallStates below.
            }

            override fun updateDuration(duration: String) {
                //todo Updates Call Duration in real time. Useful in UI to show the user how much time is spent in the call.
            }

            override fun updateCallState(callState: CallState) {
                //todo Same as the the Update callState before

            }

            override fun callStartOrStop(start: Boolean, duration: String) {
                //todo This method is invoked when the Ringing is stopped. If the Call has been disconnected from the other side this method will have start = false.
            }

            override fun incomingCallIdDeclaration(callid: String) {
                //todo Declares the Incoming callId.
            }

            override fun updateDisplayStatus(displayStatus: DisplayStatus) {
                //todo Can show the display status like Registered.InvalidLogIn or Registering etc. More about it below. 
            }

            override fun onMissedCall(s: String, b: Boolean) {
                //todo When one Peer to Peer call is missed by the user then this method is called. Can be helpful to keep log of missed calls or create missed call alerts
            }

            override fun updateCallInfo(callParameters: CallParameters) {
                //todo  Updates the callParameters. callParameters stores all kinds of data useful to keep logs.
            }

            override fun updateBalance(balance: String) {
                //todo Useful to show balance in the UI
            }

            override fun disconnectedErrorCode(i: Int) {
                //todo If the call gets disconnected for some network reason then this method provides the error code
            }
        }

in Java (See Kotlin code for details of each overwritten function)

ListenersProvider.sdksipListener = new SDKSIPListener() {
            @Override
            public void updateCallState(@NonNull String callState) {
                //todo This method is called to communicate the current call state to the UI. See more about CallStates below.
            }

            @Override
            public void updateDuration(@NonNull String duration) {
                //todo Updates Call Duration in real time. Useful in UI to show the user how much time is spent in the call.
            }

            @Override
            public void updateCallState(@NonNull CallState callState) {
                //todo Same as the the Update callState before
            }

            @Override
            public void callStartOrStop(boolean start, @NonNull String duration) {
                //todo This method is invoked when the Ringing is stopped. If the Call has been disconnected from the other side this method will have start = false.
            }

            @Override
            public void incomingCallIdDeclaration(@NonNull String callid) {
                //todo Declares the Incoming callId.
            }

            @Override
            public void updateDisplayStatus(@NonNull DisplayStatus displayStatus) {
               //todo Can show the display status like Registered.InvalidLogIn or Registering etc. More about it below.
            }

            @Override
            public void onMissedCall(@NonNull String s, boolean b) {
                //todo When one Peer to Peer call is missed by the user then this method is called. Can be helpful to keep log of missed calls or create missed call alerts
            }

            @Override
            public void updateCallInfo(@NonNull CallParameters callParameters) {
                //todo  Updates the callParameters. callParameters stores all kinds of data useful to keep logs.
            }

            @Override
            public void updateBalance(@NonNull String balance) {
                 //todo Useful to show balance in the UI
            }

            @Override
            public void disconnectedErrorCode(int i) {
                //todo If the call gets disconnected for some network reason then this method provides the error code
            }
        };
  1. See Others Topics for more information about callstates , callParameters , DisplayStatus etc.

Important ListenersProvider.sdksipListener and ListenersProvider.sdksipListener must be initialized in currently relevant Activities' onResume/onStart/onCreate methods. The activity that had implemented these interfaces the last, will be the one getting the callbacks. These interfaces act as bridges between UI and the core functionalities. So if Any of these interfaces is not connected to UI, UI can not get any info on what's going on inside.

Clone repository
  • Call Handling
  • Configuring Listeners
  • Demo App Details
  • Get Api Key
  • Other Important Topics
  • Home