呼叫邀请

更新时间: 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(&param, &OnOptCallback, NULL);
    }
    

直接呼叫(新)

API介绍

呼叫接口,同 Call。区别在于 CallEx 优化了信令的响应时间。

API原型

参数说明

参数 类型 说明
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(&param, &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(&param, &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(&param, &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(&param, &OnOptCallback, NULL);
    }
    

加入频道并接受邀请

API介绍

加入频道并接受邀请接口。调用该接口即成功加入频道。

该接口实际为组合接口,等同于先调用加入频道,成功后再调用接受邀请接口。

API原型

参数说明

参数 类型 说明
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(&param, &OnOptCallback, NULL);
    }
    
此文档是否对你有帮助?
有帮助
去反馈
  • 参数限制说明
  • 直接呼叫
  • API介绍
  • API原型
  • 参数说明
  • 返回值说明
  • 示例
  • 直接呼叫(新)
  • API介绍
  • API原型
  • 参数说明
  • 返回值说明
  • 示例
  • 邀请他人
  • API介绍
  • API原型
  • 参数说明
  • 返回值说明
  • 示例
  • 取消邀请
  • API介绍
  • API原型
  • 参数说明
  • 返回值说明
  • 示例
  • 接受邀请
  • API介绍
  • API原型
  • 参数说明
  • 返回值说明
  • 示例
  • 加入频道并接受邀请
  • API介绍
  • API原型
  • 参数说明
  • 返回值说明
  • 示例
  • 拒绝邀请
  • API介绍
  • API原型
  • 参数说明
  • 返回值说明
  • 示例