public void Init() { string appID = _context.GetString(Resource.String.agora_app_id); _myRtmClientListener = new RtmClientListener(); _myRtmClientListener.MessageReceived += OnRtmMessageReceived; _myRtmClientListener.StateChanged += OnStateChanged; try { _rtmClient = RtmClient.CreateInstance(_context, appID, _myRtmClientListener); #if DEBUG _rtmClient.SetParameters("{\"rtm.log_filter\": 65535}"); #endif } catch (Exception e) { throw new Exception($"NEED TO check rtm sdk init fatal error\n {e.StackTrace}"); } _callManager = _rtmClient.RtmCallManager; _callManager.RemoteInvitationReceived += RemoteInvitationReceived; _callManager.RemoteInvitationFailure += RemoteInvitationFailure; _callManager.LocalInvitationReceivedByPeer += LocalInvitationReceivedByPeer; _callManager.RemoteInvitationAccepted += RemoteInvitationAccepted; _callManager.RemoteInvitationRefused += RemoteInvitationRefused; _callManager.LocalInvitationRefused += LocalInvitationRefused; _callManager.LocalInvitationAccepted += LocalInvitationAccepted; }
public async Task Init(Context context, string userId) { _context = context; _agoraRtmHandler = new AgoraRtmHandler(); _agoraRtmHandler.OnSignalReceived += (signal) => { Log($"Signal received from {signal.RtcPeerId}"); OnSignalReceived?.Invoke(signal); }; _rtmClient = RtmClient.CreateInstance(_context, AgoraTestConstants.AgoraAPI, _agoraRtmHandler); var rtmToken = await AgoraTokenService.GetRtmToken(userId); var loginCallback = new ResultCallback(); loginCallback.OnSuccessAction += (obj) => { UserName = userId; OnLogin?.Invoke(true); Log("Login Success"); }; loginCallback.OnFailureAction += (err) => { OnLogin?.Invoke(false); Log("Login Fail"); }; _rtmClient.Login(rtmToken, userId, loginCallback); }