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();
}
});