Beispiel #1
0
        private void HandleCallRequest(Message message)
        {
            var request = new CallRequest(message.Sender, message.GetTextContent(), this);

            _pendingCallRequests.Add(request);
            NewCallRequest?.Invoke(this, request, message);
        }
Beispiel #2
0
        public void RespondToRequest(CallRequest request)
        {
            if (request.Response == null)
            {
                //Ignored
                _pendingCallRequests.Remove(request);
                return;
            }

            switch (request.Response.Value)
            {
            case Message.CallResponseType.RequestDenied:
            case Message.CallResponseType.RequestAccepted:
                JoinNewConversation();
                Send(new Message().CallResponse(request.CallerId, request.Response.Value));
                break;

            default:
                throw new InvalidOperationException("Invalid response. Client can only send Accepted and Denied.");
            }

            _pendingCallRequests.Remove(request);
        }