浏览 SDKs · Android
SDKsAndroid商业版

发起单聊通话

使用 Android SDK 发起单聊音视频通话。

复制

signalingInvite() 发起单聊通话。Android SDK 负责通话信令,应用仍需使用返回的房间凭据接入实时音视频媒体引擎。

参数说明

字段类型是否必填说明
userIDString执行邀请操作的当前登录用户 ID。
inviterUserIDString邀请方用户 ID,通常与当前登录用户一致。
inviteeUserIDListList<String>被邀请用户列表;单聊只填写对方一个用户。
groupIDString单聊固定传空字符串。
roomIDString本次通话的唯一房间标识,后续状态按它合并。
timeoutlong邀请等待时长,单位为秒。
mediaTypeString媒体类型,业务通常约定为 audiovideo
sessionTypeint单聊使用 ConversationType.SINGLE_CHAT
platformIDintAndroid 手机端使用 Platform.ANDROID
customDataString随邀请携带的业务扩展字符串。
offlinePushInfoOfflinePushInfo被邀请人离线时使用的推送内容。
SignalingInvitationInfo invitation = new SignalingInvitationInfo();
invitation.setInviterUserID(currentUserID);
invitation.setInviteeUserIDList(Collections.singletonList(peerUserID));
invitation.setGroupID("");
invitation.setRoomID(roomID);
invitation.setTimeout(30);
invitation.setMediaType("video");
invitation.setSessionType(ConversationType.SINGLE_CHAT);
invitation.setPlatformID(Platform.ANDROID);
invitation.setCustomData("{\"source\":\"contact-card\"}");

SignalingInfo info = new SignalingInfo();
info.setUserID(currentUserID);
info.setInvitation(invitation);
info.setOfflinePushInfo(offlinePushInfo);

OpenIMClient.getInstance().signalingManager.signalingInvite(
    new OnBase<SignalingCertificate>() {
        @Override
        public void onSuccess(SignalingCertificate credentials) {
            joinMediaRoom(
                credentials.getRoomID(),
                credentials.getToken(),
                credentials.getLiveURL()
            );
        }

        @Override
        public void onError(int code, String error) {
            showCallError(code, error);
        }
    },
    info
);

成功回调返回 SignalingCertificate。其中 roomID 是媒体房间 ID,token 是加入房间使用的短期凭据,liveURL 是媒体服务提供的连接地址,busyLineUserIDList 是忙线用户列表。

只有取得有效的 tokenroomID 后才能连接媒体房间。API 成功不表示对方已经接听;后续状态由处理通话事件合并。