浏览 SDKs · uni-app / uni-app x
SDKsuni-app商业版

发起单人通话

商业版向一个用户发起音频或视频邀请。

复制

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

参数说明

参数类型是否必填说明
invitationOpenIMSignalingInvitationInfo本次通话邀请。
invitation.inviterUserIDstring当前登录用户 ID。
invitation.inviteeUserIDListstring[]被邀请用户列表;单聊只填写对方一个用户。
invitation.groupIDstring单聊固定传空字符串。
invitation.roomIDstring本次通话的唯一房间标识,后续状态按它合并。
invitation.timeoutnumber邀请等待时长,单位为秒。
invitation.mediaTypestring媒体类型,业务通常约定为 audiovideo
invitation.sessionTypenumber单聊传 OpenIMSessionTypeSingle
invitation.platformIDnumber当前客户端平台;Android/iOS 分别使用对应平台常量。
invitation.customDatastring随邀请携带的业务扩展字符串。
invitation.initiateTimenumber邀请发起时间,通常由信令链路维护。
invitation.busyLineUserIDListstring[]忙线用户列表;发起新邀请时通常不填写。
offlinePushInfoOpenIMSignalingOfflinePushInfo被邀请人离线时使用的推送内容。
offlinePushInfo.titlestring推送标题。
offlinePushInfo.descstring推送正文。
offlinePushInfo.exstring推送扩展字符串。
offlinePushInfo.iOSPushSoundstringiOS 推送声音。
offlinePushInfo.iOSBadgeCountboolean是否更新 iOS 角标。
import {
  OpenIMPlatformAndroid,
  OpenIMSessionTypeSingle,
  signalingInvite,
} from '@/uni_modules/unix-openim-sdk'

const roomCredentials = await signalingInvite({
  invitation: {
    inviterUserID: currentUserID,
    inviteeUserIDList: [peerUserID],
    customData: JSON.stringify({ source: 'contact-card' }),
    groupID: '',
    roomID: createBusinessRoomID(),
    mediaType: 'video',
    timeout: 30,
    sessionType: OpenIMSessionTypeSingle,
    platformID: OpenIMPlatformAndroid,
  },
  offlinePushInfo: {
    title: '视频通话',
    desc: '你收到一个视频通话邀请',
    ex: '',
    iOSPushSound: 'default',
    iOSBadgeCount: true,
  },
})

iOS 端将 platformID 改为 OpenIMPlatformIOS。房间 ID 应由业务生成并在本次通话各参与端保持一致。

返回结果

Promise 成功后,roomCredentialsOpenIMSignalingInviteResult | null

字段类型说明
roomIDstringnull本次通话的媒体房间 ID。
tokenstringnull加入媒体房间使用的短期凭据,只应保存在内存中。
liveURLstringnull媒体服务返回的房间连接地址。
busyLineUserIDListstring[]null因忙线未能进入邀请流程的用户 ID。
invitationOpenIMSignalingInvitationInfonull服务端返回的邀请快照。

取得有效的 tokenroomID 后再连接媒体房间。Promise 成功只表示信令请求完成并取得房间凭据,不表示对方已经接听;后续状态见通话事件。邀请成功后若页面展示失败,应主动取消。不要在日志中打印 token 或 liveURL。