呼叫邀请
更新时间: 2022/08/29 11:18:19
参数限制说明
限制项 | 说明 |
---|---|
信令呼叫唯一标识 | 长度限制:128 字符 |
信令扩展字段 | 长度限制:4096 字符 |
推送 payload | 长度限制:4096 字符 |
推送内容 | 长度限制:500 字符 |
推送标题 | 长度限制:32 字符 |
直接呼叫
API介绍
呼叫接口。
用于用户新开一个频道并邀请对方加入频道,如果返回码不是200、10201、10202时,sdk会主动关闭频道,标记接口调用失败。
该接口为组合接口,等同于用户先创建频道,成功后加入频道并邀请对方。
API原型
-
C++
static void Call(SignalingCallParam param, SignalingOptCallback cb)
File:nim_cpp_signaling.h
Namespace:nim
Class:Signaling
-
C
void nim_signaling_call(struct NIMSignalingCallParam* param, nim_signaling_opt_cb_func cb, const void* user_data)
File:nim_signaling.h
参数说明
参数 | 类型 | 说明 |
---|---|---|
param | struct | 接口传入参数,见头文件说明,或api文档 |
cb | function | 回调函数 |
user_data | void* | 注册回调时的APP自定义用户数据,SDK只负责传回给回调函数cb,不做任何处理 |
返回值说明
无返回值。
回调返回错误码10405、10201、10202, 参考错误码。
示例
- C++
void CallbackCall(int code, std::shared_ptr<SignalingResParam> res_param) { if (code == 200 || code == 10201 || code == 10202) { if (res_param) { SignalingCallResParam* res = (SignalingCallResParam*)res_param.get(); //to do } } } void Call() { SignalingCallParam param; param.channel_type_ = GetSignalingType(); param.channel_name_ = GetSignalingItemStr(IDC_EDIT_CNAME); param.channel_ext_ = GetSignalingItemStr(IDC_EDIT_CEXT); param.uid_ = GetSignalingItemInt64(IDC_EDIT_UID); param.account_id_ = GetSignalingItemStr(IDC_EDIT_ACCID); param.request_id_ = GetSignalingItemStr(IDC_INVITE_ID); param.custom_info_ = GetSignalingItemStr(IDC_CUSTOM_INFO); param.offline_enabled_ = IsDlgButtonChecked(signaling_hwnd_, IDC_CHECK_OFFLINE); param.push_info_ = GetPushInfo(); Signaling::Call(param, &CallbackCall); }
- C
static void OnOptCallback(int code, void* opt_res_param, const void *user_data) { if (code == 200 || code == 10201 || code == 10202) { if (res_param) { NIMSignalingCallResParam* res = (NIMSignalingCallResParam*)opt_res_param; //to do } } } typedef bool(*nim_signaling_call)(struct NIMSignalingCallParam* param, nim_signaling_opt_cb_func cb, const void *user_data); void foo() { nim_signaling_call func = (nim_signaling_call) GetProcAddress(hInst, "nim_signaling_call"); NIMSignalingCallParam param; //param.channel_type_ = channel_type_; //param.channel_name_ = (char*)channel_name_.c_str(); //param.channel_ext_ = (char*)channel_ext_.c_str(); //param.uid_ = uid_; //param.account_id_ = (char*)account_id_.c_str(); //param.request_id_ = (char*)request_id_.c_str(); //param.custom_info_ = (char*)custom_info_.c_str(); //param.offline_enabled_ = offline_enabled_; //param.push_info_ = push_info_.GetCParam(); func(¶m, &OnOptCallback, NULL); }
直接呼叫(新)
API介绍
呼叫接口,同 Call
。区别在于 CallEx
优化了信令的响应时间。
API原型
-
C++
static void CallEx(SignalingCallParam param, SignalingOptCallback cb)
File:nim_cpp_signaling.h
Namespace:nim
Class:Signaling
-
C
void nim_signaling_call_ex(struct NIMSignalingCallParam* param, nim_signaling_opt_cb_func cb, const void* user_data)
File:nim_signaling.h
参数说明
参数 | 类型 | 说明 |
---|---|---|
param | struct | 接口传入参数,见头文件说明,或api文档 |
cb | function | 回调函数 |
user_data | void* | 注册回调时的APP自定义用户数据,SDK只负责传回给回调函数cb,不做任何处理 |
返回值说明
无返回值。
回调返回错误码10405、10201、10202, 参考错误码。
示例
- C++
void CallbackCall(int code, std::shared_ptr<SignalingResParam> res_param) { if (code == 200 || code == 10201 || code == 10202) { if (res_param) { SignalingCallResParam* res = (SignalingCallResParam*)res_param.get(); //to do } } } void CallEx() { SignalingCallParam param; param.channel_type_ = GetSignalingType(); param.channel_name_ = GetSignalingItemStr(IDC_EDIT_CNAME); param.channel_ext_ = GetSignalingItemStr(IDC_EDIT_CEXT); param.uid_ = GetSignalingItemInt64(IDC_EDIT_UID); param.account_id_ = GetSignalingItemStr(IDC_EDIT_ACCID); param.request_id_ = GetSignalingItemStr(IDC_INVITE_ID); param.custom_info_ = GetSignalingItemStr(IDC_CUSTOM_INFO); param.offline_enabled_ = IsDlgButtonChecked(signaling_hwnd_, IDC_CHECK_OFFLINE); param.push_info_ = GetPushInfo(); Signaling::CallEx(param, &CallbackCall); }
- C
static void OnOptCallback(int code, void* opt_res_param, const void *user_data) { if (code == 200 || code == 10201 || code == 10202) { if (res_param) { NIMSignalingCallResParam* res = (NIMSignalingCallResParam*)opt_res_param; //to do } } } typedef bool(*nim_signaling_call_ex)(struct NIMSignalingCallParam* param, nim_signaling_opt_cb_func cb, const void *user_data); void foo() { nim_signaling_call func = (nim_signaling_call) GetProcAddress(hInst, "nim_signaling_call"); NIMSignalingCallParam param; //param.channel_type_ = channel_type_; //param.channel_name_ = (char*)channel_name_.c_str(); //param.channel_ext_ = (char*)channel_ext_.c_str(); //param.uid_ = uid_; //param.account_id_ = (char*)account_id_.c_str(); //param.request_id_ = (char*)request_id_.c_str(); //param.custom_info_ = (char*)custom_info_.c_str(); //param.offline_enabled_ = offline_enabled_; //param.push_info_ = push_info_.GetCParam(); func(¶m, &OnOptCallback, NULL); }
邀请他人
API介绍
邀请接口。
该接口用于邀请对方加入频道,邀请者必须是创建者或者是频道中成员。
如果需要对离线成员邀请,可以打开离线邀请开关并填写推送信息。被邀请者在线后通过离线通知接收到该邀请,并通过频道信息中的invalid_字段判断频道的有效性,也可以对所有离线消息处理后判断该邀请是否被取消。
API原型
-
C++
static void Invite(SignalingInviteParam param, SignalingOptCallback cb)
File:nim_cpp_signaling.h
Namespace:nim
Class:Signaling
-
C
void nim_signaling_invite(struct NIMSignalingInviteParam* param, nim_signaling_opt_cb_func cb, const void* user_data)
File:nim_signaling.h
参数说明
参数 | 类型 | 说明 |
---|---|---|
param | struct | 接口传入参数,见头文件说明,或api文档 |
cb | function | 回调函数 |
user_data | void* | 注册回调时的APP自定义用户数据,SDK只负责传回给回调函数cb,不做任何处理 |
返回值说明
无返回值。
回调返回错误码10404、10406、10407、10419、10201、10202, 参考错误码。
示例
- C++
void CallbackInvite(int code, std::shared_ptr<SignalingResParam> res_param) { if (code == 200) { } } void Invite() { SignalingInviteParam param; param.channel_id_ = GetSignalingItemStr(IDC_EDIT_CID); param.account_id_ = GetSignalingItemStr(IDC_EDIT_ACCID); param.request_id_ = GetSignalingItemStr(IDC_INVITE_ID); param.custom_info_ = GetSignalingItemStr(IDC_CUSTOM_INFO); param.offline_enabled_ = IsDlgButtonChecked(signaling_hwnd_, IDC_CHECK_OFFLINE); param.push_info_ = GetPushInfo(); Signaling::Invite(param, &CallbackInvite); }
- C
static void OnOptCallback(int code, void* opt_res_param, const void *user_data) { if (code == 200) { //to do } } typedef bool(*nim_signaling_invite)(struct NIMSignalingInviteParam* param, nim_signaling_opt_cb_func cb, const void *user_data); void foo() { nim_signaling_invite func = (nim_signaling_invite) GetProcAddress(hInst, "nim_signaling_invite"); NIMSignalingInviteParam param; //param.channel_id_ = (char*)channel_id_.c_str(); //param.account_id_ = (char*)account_id_.c_str(); //param.request_id_ = (char*)request_id_.c_str(); //param.custom_info_ = (char*)custom_info_.c_str(); //param.offline_enabled_ = offline_enabled_; //param.push_info_ = push_info_.GetCParam(); func(¶m, &OnOptCallback, NULL); }
取消邀请
API介绍
取消邀请接口。
API原型
-
C++
static void CancelInvite(SignalingCancelInviteParam param, SignalingOptCallback cb)
File:nim_cpp_signaling.h
Namespace:nim
Class:Signaling
-
C
void nim_signaling_cancel_invite(struct NIMSignalingCancelInviteParam* param, nim_signaling_opt_cb_func cb, const void* user_data)
File:nim_signaling.h
参数说明
参数 | 类型 | 说明 |
---|---|---|
param | struct | 接口传入参数,见头文件说明,或api文档 |
cb | function | 回调函数 |
user_data | void* | 注册回调时的APP自定义用户数据,SDK只负责传回给回调函数cb,不做任何处理 |
返回值说明
无返回值。
回调返回错误码10404、10408、10409、10410, 参考[错误码]https://doc.yunxin.163.com/signaling/docs/jY2MjcxMzE?platform=pc)。
示例
- C++
void CallbackCancelInvite(int code, std::shared_ptr<SignalingResParam> res_param) { if (code == 200) { } } void CancelInvite() { SignalingCancelInviteParam param; param.channel_id_ = GetSignalingItemStr(IDC_EDIT_CID); param.account_id_ = GetSignalingItemStr(IDC_EDIT_ACCID); param.request_id_ = GetSignalingItemStr(IDC_INVITE_ID); param.custom_info_ = GetSignalingItemStr(IDC_CUSTOM_INFO); param.offline_enabled_ = IsDlgButtonChecked(signaling_hwnd_, IDC_CHECK_OFFLINE); Signaling::CancelInvite(param, &CallbackCancelInvite); }
- C
static void OnOptCallback(int code, void* opt_res_param, const void *user_data) { if (code == 200) { //to do } } typedef bool(*nim_signaling_cancel_invite)(struct NIMSignalingCancelInviteParam* param, nim_signaling_opt_cb_func cb, const void *user_data); void foo() { nim_signaling_cancel_invite func = (nim_signaling_cancel_invite) GetProcAddress(hInst, "nim_signaling_cancel_invite"); NIMSignalingCancelInviteParam param; //param.channel_id_ = (char*)channel_id_.c_str(); //param.account_id_ = (char*)account_id_.c_str(); //param.request_id_ = (char*)request_id_.c_str(); //param.custom_info_ = (char*)custom_info_.c_str(); //param.offline_enabled_ = offline_enabled_; func(¶m, &OnOptCallback, NULL); }
接受邀请
API介绍
接受邀请接口。
不开自动加入开关:该接口只接受邀请并告知邀请者,并同步通知自己的其他在线设备,但不会主动加入频道,需要单独调用加入接口。
打开自动加入开关:该接口为组合接口,等同于先调用接受邀请,成功后再加入频道。
该接口在打开自动加入开关后是组合接口,对应的通知会有2个,接收邀请通知和加入通知。
API原型
-
C++
static void Accept(SignalingAcceptParam param, SignalingOptCallback cb)
File:nim_cpp_signaling.h
Namespace:nim
Class:Signaling
-
C
void nim_signaling_accept(struct NIMSignalingAcceptParam* param, nim_signaling_opt_cb_func cb, const void* user_data)
File:nim_signaling.h
参数说明
参数 | 类型 | 说明 |
---|---|---|
param | struct | 接口传入参数,见头文件说明,或api文档 |
cb | function | 回调函数 |
user_data | void* | 注册回调时的APP自定义用户数据,SDK只负责传回给回调函数cb,不做任何处理 |
返回值说明
无返回值。
回调返回错误码10404、10408、10409、10410、10201, 参考错误码。
示例
- C++
void CallbackAccept(int code, std::shared_ptr<SignalingResParam> res_param) { if (code == 200) { if (res_param) { SignalingJoinResParam* res = (SignalingJoinResParam*)res_param.get(); // } } } void Accept() { SignalingAcceptParam param; param.channel_id_ = GetSignalingItemStr(IDC_EDIT_CID); param.account_id_ = GetSignalingItemStr(IDC_EDIT_ACCID); param.request_id_ = GetSignalingItemStr(IDC_INVITE_ID); param.accept_custom_info_ = GetSignalingItemStr(IDC_CUSTOM_INFO); param.auto_join_ = IsDlgButtonChecked(signaling_hwnd_, IDC_CHECK_AUTOJOIN); param.uid_ = GetSignalingItemInt64(IDC_EDIT_UID); param.join_custom_info_ = GetSignalingItemStr(IDC_CUSTOM_INFO2); param.offline_enabled_ = IsDlgButtonChecked(signaling_hwnd_, IDC_CHECK_OFFLINE); Signaling::Accept(param, &CallbackAccept); }
- C
static void OnOptCallback(int code, void* opt_res_param, const void *user_data) { if (code == 200) { //to do } } typedef bool(*nim_signaling_accept)(struct NIMSignalingAcceptParam* param, nim_signaling_opt_cb_func cb, const void *user_data); void foo() { nim_signaling_accept func = (nim_signaling_accept) GetProcAddress(hInst, "nim_signaling_accept"); NIMSignalingAcceptParam param; //param.channel_id_ = (char*)channel_id_.c_str(); //param.account_id_ = (char*)account_id_.c_str(); //param.request_id_ = (char*)request_id_.c_str(); //param.accept_custom_info_ = (char*)accept_custom_info_.c_str(); //param.offline_enabled_ = offline_enabled_; //param.auto_join_ = auto_join_; //param.uid_ = uid_; //param.join_custom_info_ = (char*)join_custom_info_.c_str(); func(¶m, &OnOptCallback, NULL); }
加入频道并接受邀请
API介绍
加入频道并接受邀请接口。调用该接口即成功加入频道。
该接口实际为组合接口,等同于先调用加入频道,成功后再调用接受邀请接口。
API原型
-
C++
static void JoinAndAccept(SignalingJoinAndAcceptParam param, SignalingOptCallback cb)
File:nim_cpp_signaling.h
Namespace:nim
Class:Signaling
-
C
void nim_signaling_join_and_accept(struct NIMSignalingJoinAndAcceptParam* param, nim_signaling_opt_cb_func cb, const void* user_data)
File:nim_signaling.h
参数说明
参数 | 类型 | 说明 |
---|---|---|
param | struct | 接口传入参数,见头文件说明,或api文档 |
cb | function | 回调函数 |
user_data | void* | 注册回调时的APP自定义用户数据,SDK只负责传回给回调函数cb,不做任何处理 |
返回值说明
无返回值。
回调返回错误码10404、10407、10417、10419、10420, 参考错误码。
示例
- C++
void CallbackJoinAndAccept(int code, std::shared_ptr<SignalingResParam> res_param) { if (code == 200) { SignalingJoinAndAcceptResParam* res = (SignalingJoinAndAcceptResParam*)response.get(); // process callback } } void JoinAndAccept() { SignalingJoinAndAcceptParam param{}; param.channel_id_ = "123456"; param.custom_info_ = ""; param.account_id_ = "accid"; param.request_id_ = "request_id_"; param.uid_ = 123456; param.offline_enabled_ = true; param.nertc_channel_name_ = "NERTC_CHANNEL_NAME"; param.nertc_token_ttl_ = 600; param.nertc_join_room_query_param_ = ""; Signaling::JoinAndAccept(param, &CallbackJoinAndAccept); }
- C
``` void CallbackJoinAndAccept(int code, void* opt_res_param, const void* user_data) { if (code == 200) { // process callback } } void JoinAndAccept() { NIMSignalingJoinAndAcceptParam param{}; param.channel_id_ = "123456"; param.custom_info_ = ""; param.account_id_ = "accid"; param.request_id_ = "request_id_"; param.uid_ = 123456; param.offline_enabled_ = true; param.nertc_channel_name_ = "NERTC_CHANNEL_NAME"; param.nertc_token_ttl_ = 600; param.nertc_join_room_query_param_ = ""; nim::nim_signaling_join_and_accept(param, &CallbackJoinAndAccept); }
拒绝邀请
API介绍
拒绝邀请接口。
拒绝邀请后用户也可以通过加入频道接口加入频道,接口的使用由用户的业务决定。
API原型
-
C++
static void Reject(SignalingRejectParam param, SignalingOptCallback cb)
File:nim_cpp_signaling.h
Namespace:nim
Class:Signaling
-
C
void nim_signaling_reject(struct NIMSignalingRejectParam* param, nim_signaling_opt_cb_func cb, const void* user_data)
File:nim_signaling.h
参数说明
参数 | 类型 | 说明 |
---|---|---|
param | struct | 接口传入参数,见头文件说明,或api文档 |
cb | function | 回调函数 |
user_data | void* | 注册回调时的APP自定义用户数据,SDK只负责传回给回调函数cb,不做任何处理 |
返回值说明
无返回值。
回调返回错误码10404、10408、10409、10410、10201, 参考错误码。
示例
- C++
void CallbackReject(int code, std::shared_ptr<SignalingResParam> res_param) { if (code == 200) { } } void Reject() { SignalingRejectParam param; param.channel_id_ = GetSignalingItemStr(IDC_EDIT_CID); param.account_id_ = GetSignalingItemStr(IDC_EDIT_ACCID); param.request_id_ = GetSignalingItemStr(IDC_INVITE_ID); param.custom_info_ = GetSignalingItemStr(IDC_CUSTOM_INFO); param.offline_enabled_ = IsDlgButtonChecked(signaling_hwnd_, IDC_CHECK_OFFLINE); Signaling::Reject(param, &CallbackReject); }
- C
static void OnOptCallback(int code, void* opt_res_param, const void *user_data) { if (code == 200) { //to do } } typedef bool(*nim_signaling_reject)(struct NIMSignalingRejectParam* param, nim_signaling_opt_cb_func cb, const void *user_data); void foo() { nim_signaling_reject func = (nim_signaling_reject) GetProcAddress(hInst, "nim_signaling_reject"); NIMSignalingRejectParam param; //param.channel_id_ = (char*)channel_id_.c_str(); //param.account_id_ = (char*)account_id_.c_str(); //param.request_id_ = (char*)request_id_.c_str(); //param.custom_info_ = (char*)custom_info_.c_str(); //param.offline_enabled_ = offline_enabled_; func(¶m, &OnOptCallback, NULL); }