public Task <ReturnMessage> InviteParticipants(Attendee[] attendees)
        {
            Task <ReturnMessage> checkTask = _meetingManager.CheckMeetingServerStatus();

            if (checkTask != null)
            {
                return(checkTask);
            }

            var tcs = new TaskCallback <ReturnMessage>("InviteParticipants");

            if (_meetingManager.TaskCallbacks.ContainsKey(tcs.Name))
            {
                _meetingManager.TaskCallbacks.Remove(tcs.Name);
            }

            _meetingManager.TaskCallbacks.Add(tcs.Name, tcs);

            List <ContactInfo> contactInfos = new List <ContactInfo>();

            foreach (var attendee in attendees)
            {
                contactInfos.Add(new ContactInfo()
                {
                    m_szDisplayName = attendee.Name,
                    m_szPhoneId     = attendee.Id
                });
            }

            var result = MeetingAgent.InviteParticipants(_meetingManager.CurrentMeetingId, contactInfos.ToArray(),
                                                         contactInfos.Count);

            if (result != 0)
            {
                return(Task.FromResult(MessageManager.FailedToInviteParticipants));
            }

            return(tcs.Task);
        }