public interface ECVoIPCallManager extends IGuangDian, IGuanDian
呼叫、接听、拒接、挂机
标准的在呼叫前设置呼叫参数信息、处理来电事件、以及发起一次音频呼叫代码如下:
// 1、呼叫准备工作、设置透传呼叫个人参数信息 ECVoIPSetupManager setupManager = ECDevice.getECVoIPSetupManager(); // 创建一个本地呼叫参数对象 VoIPCallUserInfo mUserInfo = new VoIPCallUserInfo(); mUserInfo.setNickName("$NickName"); mUserInfo.setPhoneNumber("$PhoneNumber"); // 设置当前呼叫透传参数,对方收到VoIP呼叫可以获得该设置信息 setupManager.setVoIPCallUserInfo(mUserInfo); // 2、设置SDK来电处理 // Note:为了保证能及时收到来电呼叫事件通知、所以应该在在注册SDK参数中加入如下代码传入来电呼叫处理接口 Intent intent = new Intent(Context, "${VoIPCallActivity.class}"); PendingIntent pendingIntent = PendingIntent.getActivity(Context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); ECInitParams.createParams().setPendingIntent(pendingIntent); // 3、获取SDK VoIP呼叫接口 ECVoIPCallManager callManager = ECDevice.getECVoIPCallManager(); // 设置VoIP呼叫时间回调监听 callManager.setOnVoIPCallListener(new ECVoIPCallManager.OnVoIPListener() { public void onCallEvents(ECVoIPCallManager.VoIPCall voipCall) { // 接收VoIP呼叫事件回调 if(voipCall == null) { Log.e("CallInter" , "handle call event error , voipCall null" ); return ; } String callId = voipCall.callId; switch (voipCall.callState) { case ECCALL_PROCEEDING: // 处理呼叫进行中 break; case ECCALL_ALERTING: // 处理呼叫对方振铃 break; case ECCALL_ANSWERED: // 处理呼叫对方应答,通话开始计时 break; case ECCALL_FAILED: // 处理呼叫失败 break; case ECCALL_RELEASED: // 处理通话结束,通话完全释放 break; default: break; } } }); // 发起VoIP呼叫(音频呼叫,CallType.VIDEO可以发起视频呼叫,CallType.DIRECT发起直拨呼叫) callManager.makeCall(ECVoIPCallManager.CallType.VOICE , "${JorstinChan}");
限定符和类型 | 方法和说明 |
---|---|
void |
acceptCall(java.lang.String callId)
接听当前所接收到的呼叫请求,需要在注册SDK设置响应来电事件通知通知参数
ECInitParams.setPendingIntent(PendingIntent) 设置接收来电响应 |
int |
acceptCallForResult(java.lang.String callId) |
java.lang.String |
makeCall(ECVoIPCallManager.CallType callType,
java.lang.String called)
发起VoIP呼叫或者视频呼叫 ,如果呼叫失败则SDK会通过
ECVoIPCallManager.OnVoIPListener 通知主叫方失败的原因 |
void |
makeCallBack(ECVoIPCallManager.CallBackEntity callBackEntity,
ECVoIPCallManager.OnMakeCallBackListener onMakeCallBackListener)
发起回拨呼叫请求
|
void |
rejectCall(java.lang.String callId,
int reason)
通过该接口可以拒绝一路来电呼叫
|
void |
releaseCall(java.lang.String callId)
释放当前SDK正在进行通话,该接口会触发回调接口
ECVoIPCallManager.OnVoIPListener |
void |
requestSwitchCallMediaType(java.lang.String callid,
ECVoIPCallManager.CallType callType)
切换当前的通话类型,音频切换成视频、或者视频切换成音频
如果请求的通话类型为
ECVoIPCallManager.CallType.VIDEO 则代表请求切换到视频通话,此时需要对方响应并且接受才能完成切换,
即对方需要调用接口responseSwitchCallMediaType(String, SwitchMediaTypeAction) 响应当前的音视频切换请求。 |
int |
resetMicCapture(java.lang.String callId,
boolean on) |
int |
resetVideoView(java.lang.String callId,
java.lang.String remoteView) |
void |
responseSwitchCallMediaType(java.lang.String callid,
ECVoIPCallManager.SwitchMediaTypeAction action)
响应对方的切换通话类型请求
如果接收到的音视频切换请求类型为切换到视频通话,即@
ECVoIPCallManager.OnVoIPListener
收到的类型为ECVoIPCallManager.CallType.VIDEO ,则可以调用该接口响应对方的切换请求,如果同意对方的切换请求则会进行视频通话,也可以忽略不处理
如果收到的类型为ECVoIPCallManager.CallType.VOICE 表示当前切换到音频通话,此时应用不需要调用该接口. |
void |
sendDTMF(java.lang.String callid,
char dtmf)
通话过程中发送DTMF,没有成功失败的通知事件
|
void |
setConferenceView(java.lang.String confId,
ECOpenGlView openGlView) |
int |
setLocalCamera(java.lang.String callId,
boolean on) |
int |
setLocalShareDevice(java.lang.String callid,
boolean on) |
void |
setOnFrameChangeListener(ECVoIPCallManager.OnFrameChangeListener l) |
void |
setOnVoIPCallListener(ECVoIPCallManager.OnVoIPListener listener)
设置VoIP呼叫事件通知回调
|
int |
setRequestKeyFrameMode(int mode) |
int |
setSoftSpeak(java.lang.String callId,
boolean on) |
void |
setSrtpEnable(int TransportType,
int cryptoType)
设置加密接口
|
void |
setVideoType(ECVoIPCallManager.VideoType type) |
cancelCurrentThreePartMemberVideo, getUserData, inviteJoinThreePartConf, pauseCall, requestCurrentThreePartMemberVideo, resumeCall, sendCmdToRest
getCallSid, setProcessDataEnabled, stopIncomingMedia
void setVideoType(ECVoIPCallManager.VideoType type)
int setLocalCamera(java.lang.String callId, boolean on)
int setSoftSpeak(java.lang.String callId, boolean on)
int resetMicCapture(java.lang.String callId, boolean on)
int resetVideoView(java.lang.String callId, java.lang.String remoteView)
int setLocalShareDevice(java.lang.String callid, boolean on)
int setRequestKeyFrameMode(int mode)
java.lang.String makeCall(ECVoIPCallManager.CallType callType, java.lang.String called)
ECVoIPCallManager.OnVoIPListener
通知主叫方失败的原因callType
- 呼叫类型:音频或者视频called
- 被叫号码ECVoIPCallManager.CallType
,
ECVoIPCallManager.OnVoIPListener
void setSrtpEnable(int TransportType, int cryptoType)
TransportType
- cryptoType
- void makeCallBack(ECVoIPCallManager.CallBackEntity callBackEntity, ECVoIPCallManager.OnMakeCallBackListener onMakeCallBackListener)
callBackEntity
- 回拨呼叫请求参数onMakeCallBackListener
- 回拨呼叫结果回调通知接口ECVoIPCallManager.CallBackEntity
,
ECVoIPCallManager.OnMakeCallBackListener
void rejectCall(java.lang.String callId, int reason)
callId
- 当前通话的唯一标识reason
- 拒接原因(3来电主动拒绝接听,当前并非有另外一路通话导致的线路忙
6当前对方正忙,当SDK收到呼叫请求并判断当前SDK状态非空闲,则主动回调该接口并 设置挂机原因为6提示当前正在忙)ECVoIPCallManager.OnVoIPListener
void releaseCall(java.lang.String callId)
ECVoIPCallManager.OnVoIPListener
callId
- 当前通话的唯一标识makeCall(CallType, String)
,
ECVoIPCallManager.OnVoIPListener
void acceptCall(java.lang.String callId)
ECInitParams.setPendingIntent(PendingIntent)
设置接收来电响应callId
- 当前通话的唯一标识ECInitParams.setPendingIntent(PendingIntent)
,
ECVoIPCallManager.OnVoIPListener
int acceptCallForResult(java.lang.String callId)
void sendDTMF(java.lang.String callid, char dtmf)
callid
- 通话的唯一标识dtmf
- 参考值范围:'0'-'9'' * ''#'void requestSwitchCallMediaType(java.lang.String callid, ECVoIPCallManager.CallType callType)
如果请求的通话类型为ECVoIPCallManager.CallType.VIDEO
则代表请求切换到视频通话,此时需要对方响应并且接受才能完成切换,
即对方需要调用接口responseSwitchCallMediaType(String, SwitchMediaTypeAction)
响应当前的音视频切换请求。
如果请求的通话类型为ECVoIPCallManager.CallType.VOICE
则代表切换到音频通话,此类型不需要对方响应直接完成到音频通话切换。
callid
- 通话的唯一标识callType
- 需要转换成的通话类型ECVoIPCallManager.CallType
,
ECVoIPCallManager.OnVoIPListener
,
responseSwitchCallMediaType(String, SwitchMediaTypeAction)
void responseSwitchCallMediaType(java.lang.String callid, ECVoIPCallManager.SwitchMediaTypeAction action)
如果接收到的音视频切换请求类型为切换到视频通话,即@ECVoIPCallManager.OnVoIPListener
收到的类型为ECVoIPCallManager.CallType.VIDEO
,则可以调用该接口响应对方的切换请求,如果同意对方的切换请求则会进行视频通话,也可以忽略不处理
如果收到的类型为ECVoIPCallManager.CallType.VOICE
表示当前切换到音频通话,此时应用不需要调用该接口.
callid
- 通话的唯一标识action
- ECVoIPCallManager.SwitchMediaTypeAction.IGNORE
代表忽略不处理、ECVoIPCallManager.SwitchMediaTypeAction.ACCEPT
代表同意对方请求ECVoIPCallManager.OnVoIPListener
,
音视频切换响应动作类型
,
responseSwitchCallMediaType(String, SwitchMediaTypeAction)
void setOnVoIPCallListener(ECVoIPCallManager.OnVoIPListener listener)
listener
- 呼叫状态回调接口void setOnFrameChangeListener(ECVoIPCallManager.OnFrameChangeListener l)
void setConferenceView(java.lang.String confId, ECOpenGlView openGlView)
Copyright © 2017 All rights reserved.