Call Features

This topic introduces the functionalities and implementation methods related to call features of 'Linkus SDK for Android'.

Make a call

/**
 *
 * @param callNumber:Callee number
 * @param netWorkAvailable:The network availability. true: Available; false: Unavailable
 * @return
 */
public void makeNewCall(String callNumber, boolean netWorkAvailable)
// Call method
        YlsCallManager.getInstance().makeNewCall(number, netWorkAvailable);

Answer a call

YlsCallManager.getInstance().answerCall(callId);

Reject a call

YlsCallManager.getInstance().answerBusy(context, callId);

Hang up a call

YlsCallManager.getInstance().hangUpCall(context, callId);

Hold a call

YlsCallManager.getInstance().holdCall(inCallVo);

Resume a call

YlsCallManager.getInstance().unHoldCall(getContext(), inCallVo);

Attended transfer

Perform an attended transfer
YlsCallManager.getInstance().makeTransferCall(context, calleeName, number, trunkName, route, object);
Confirm an attended transfer
YlsCallManager.getInstance().confirmTransfer(App.getInstance().getContext());

Blind transfer

YlsCallManager.getInstance().blindTransferCall(context, callOutNumber);

Mute or unmute a call

/**
 * @param inCallVo
 */
public void mute(InCallVo inCallVo)

Record a call

/**
 *
 * @param vo
 * @return
 */
public int record(InCallVo vo)

Send DTMF

/**
 *
 * @param callId
 * @param recordCode
 * @return
 */
public int sendDtmf(int callId, String recordCode)

Query call quality

CallQualityVo callQualityVo = YlsCallManager.getInstance().getCallQuality();

SDK notification callbacks

YlsCallManager.getInstance().setCallStateCallback(new CallStateCallback() {
// Call status change callback 
@Override
public void onCallStateChange(CallStateVo callStateVo) {
        EventBus.getDefault().post(new CallStateEvent(callStateVo));
        }

// Call quality change callback 
@Override
public void onNetWorkLevelChange(int callId, int networkLevel) {
        EventBus.getDefault().postSticky(new NetWorkLevelEvent(callId, networkLevel));
        }

// Network connection change callback 
@Override
public void onConnectChange() {
        EventBus.getDefault().postSticky(new ConnectionChangeEvent());
        }

// Call recording status change callback 
@Override
public void onRecordChange(boolean isRecording) {
        EventBus.getDefault().post(new RecordEvent(isRecording));
        }

        });

User Interface (UI) callback

YlsCallManager.getInstance().setActionCallback(new ActionCallback() {

// Call end callback
@Override
public void onFinishCall() {
        finishAllCall(context);
        }

// Incoming call pop-up callback
@Override
public void onNewCall() {
        jump2CallActivity(context);
        }

//  Call waiting callback
@Override
public void onCallWaiting() {
        EventBus.getDefault().post(new CallWaitingEvent());
        SoundManager.getInstance().startPlay(context, YlsConstant.SOUND_CALL_WAITING_TYPE);
        }

// Missed call callback 
@Override
public void onMissCallClick() {

        }

// Callback to stop the foreground service after the call ends (For Android 11 and above, calls running in the background require a foreground service)
@Override
public void onStopMicroPhoneService() {

        }

//  Audio routing popup disappearing callback
@Override
public void onDismissPopupView() {
        dismissPopupView();
        }

// Audio routing change callback
@Override
public void onNotifyAudioChange() {
        notifyAudioChange();
        }
        });