SDKsHarmonyOS商业版
发起单聊通话
向一个用户发起音频或视频通话邀请。
每次通话应使用新的 roomID,并保存完整邀请,供取消、挂断和恢复状态复用。
import sdk, {
OfflinePushInfo,
Platform,
SessionType,
SignalingInvitationInfo,
SignalingInviteReq,
SignalingInviteResp,
SignalingMediaType,
SignalingParticipantMetaData,
} from '@openimsdk/imsdk';
const invitation: SignalingInvitationInfo = {
inviterUserID: currentUserID,
inviteeUserIDList: [peerUserID],
customData: JSON.stringify({ source: 'contact-card' }),
groupID: '',
roomID: createCallRoomID(),
timeout: 30,
mediaType: SignalingMediaType.SignalingMediaTypeVideo,
platformID: Platform.HarmonyOS,
sessionType: SessionType.Single,
initiateTime: Date.now(),
busyLineUserIDList: [],
};
const offlinePush: OfflinePushInfo = {
title: '视频通话',
desc: '你收到一个视频通话邀请',
ex: '',
iOSPushSound: 'default',
iOSBadgeCount: true,
SignalingInfo: '',
};
const participant: SignalingParticipantMetaData = { user: selfUser };
const request: SignalingInviteReq = {
invitation: invitation,
offlinePush: offlinePush,
participant: participant,
userID: peerUserID,
};
const response: SignalingInviteResp = await sdk.signalingInvite(request);成功响应包含 token、roomID、liveURL 和 busyLineUserIDList。取得有效房间 ID 与 Token 后再连接媒体引擎;忙线列表只表示对应用户当前无法接听。Promise 成功不表示对方已经接听。
SignalingInfo 是离线推送中的信令扩展字符串;没有与推送服务约定额外内容时传空字符串。目标用户由 request.userID 和 invitation.inviteeUserIDList 共同确定,两处应填写同一个用户。
这个页面有帮助吗?