Exemple #1
0
 public void KisiEkle(string uri)
 {
     if (uri == null || uri.Length == 0)
     {
         return;
     }
     try
     {
         IRTCBuddy2 kisi = (IRTCBuddy2)istemci.get_Buddy(uri);
         try
         {
             if (kisi.SubscriptionType == RTC_BUDDY_SUBSCRIPTION_TYPE.RTCBT_SUBSCRIBED)
             {
                 return;                // kullanýcý daha önce zaten eklenmiþ
             }
             istemci.RemoveBuddy(kisi); // kullanýcý daha önce eklenmiþ ama kabul etmemiþ olabilir, sil...
         }
         catch (COMException)
         {
         }
     }
     catch (COMException)
     {
     }
     try
     {
         istemci.AddBuddyEx(uri, null, null, true, RTC_BUDDY_SUBSCRIPTION_TYPE.RTCBT_SUBSCRIBED, profil, 0);
     }
     catch (COMException)
     {
     }
 }
        public static string KisiAdiAl(IRTCBuddy2 kisi)
        {
            string kisiAdi;

            try
            {
                kisiAdi = kisi.get_PresenceProperty(RTC_PRESENCE_PROPERTY.RTCPP_DISPLAYNAME);
            }
            catch (COMException)
            {
                kisiAdi = null;
            }

            if (kisiAdi == null)
            {
                try
                {
                    kisiAdi = kisi.PresentityURI;
                }
                catch (COMException)
                {
                    kisiAdi = null;
                }
            }
            return kisiAdi;
        }
Exemple #3
0
        private void BuddyEvent(IRTCBuddyEvent2 buddyEvent)
        {
            IRTCBuddy2 kisi = (IRTCBuddy2)buddyEvent.Buddy;

            switch (buddyEvent.EventType)
            {
            case RTC_BUDDY_EVENT_TYPE.RTCBET_BUDDY_ADD:         // Kiþi ekleniyor(xml dosyasýndan okundu)
                if (Yardim.Basarili(buddyEvent.StatusCode))
                {
                    this.anaPencere.KisiGuncelle(kisi);
                }
                break;

            case RTC_BUDDY_EVENT_TYPE.RTCBET_BUDDY_REMOVE:
                //This buddy has been successfully removed from the buddy list.
                this.anaPencere.KisiSil(kisi);
                break;

            case RTC_BUDDY_EVENT_TYPE.RTCBET_BUDDY_UPDATE:
                //This buddy's properties have been updated. -- ignore
                break;

            case RTC_BUDDY_EVENT_TYPE.RTCBET_BUDDY_SUBSCRIBED:
                //This buddy's presence information is subscribed to -- ignore
                break;

            case RTC_BUDDY_EVENT_TYPE.RTCBET_BUDDY_STATE_CHANGE:
                //This buddy's presence state has changed.
                this.anaPencere.KisiGuncelle(kisi);
                break;

            default:
                break;
            }
        }
        void UpdatePollBuddy(IRTCBuddy2 buddy2)
        {
            Trace.WriteLine("Entering RTCPresence.UpdatePollBuddy");

            if (this.pollDialog == null)
            {
                return;
            }

            if (buddy2 == null)
            {
                Trace.WriteLine("NULL Buddy Object");
                return;
            }

            try
            {
                if (buddy2.PresentityURI != this.pollDialog.Uri &&
                    buddy2.PresentityURI != ("sip:" + pollDialog.Uri))
                {
                    Trace.WriteLine("Not Current Poll URI");
                    return;
                }

                this.pollDialog.Properties = RTCHelp.GetBuddyProperties(buddy2);
            }
            catch (COMException)
            {
            }
        }
Exemple #5
0
        public void KisiGuncelle(IRTCBuddy2 kisi)
        {
            if (kisi.PresentityURI == motor.istemciURI)
            {
                return;
            }

            if (htKisiler.ContainsKey(kisi)) // kiþi zaten listede var, sil...
            {
                ((TreeNode)htKisiler[kisi]).Remove();
                htKisiler.Remove(kisi);
            }

            string gorunenIsim = Yardim.KisiAdiOlustur(kisi);

            if (gorunenIsim == null || gorunenIsim.Length == 0)
            {
                return;
            }

            Dugum dugumKisi = new Dugum(gorunenIsim, kisi, Yardim.ImgIndex); // Yeni düðüm. "ugur (Çevrimiçi)" ve buddy nesnesi eklendi

            if (kisi.Status == RTC_PRESENCE_STATUS.RTCXS_PRESENCE_OFFLINE)
            {
                tvKisiler.Nodes[1].Nodes.Add(dugumKisi);
                tvKisiler.Nodes[1].Expand();
            }
            else
            {
                tvKisiler.Nodes[0].Nodes.Add(dugumKisi);
                tvKisiler.Nodes[0].Expand();
            }
            htKisiler.Add(kisi, dugumKisi); // htKisiler silme iþlemlerinde cast yoluyla kullanýlacak
            tvKisiler.Refresh();
        }
Exemple #6
0
        public static string GetBuddyName(IRTCBuddy2 buddy2)
        {
            Trace.WriteLine("Entering RTCHelp.GetBuddyName");

            string buddyName;

            try
            {
                buddyName = buddy2.get_PresenceProperty(RTC_PRESENCE_PROPERTY.RTCPP_DISPLAYNAME);
            }
            catch (COMException)
            {
                buddyName = null;
            }

            if (buddyName == null)
            {
                try
                {
                    buddyName = buddy2.PresentityURI;
                }
                catch (COMException)
                {
                    buddyName = null;
                }
            }

            return(buddyName);
        }
        public static string KisiAdiAl(IRTCBuddy2 kisi)
        {
            string kisiAdi;

            try
            {
                kisiAdi = kisi.get_PresenceProperty(RTC_PRESENCE_PROPERTY.RTCPP_DISPLAYNAME);
            }
            catch (COMException)
            {
                kisiAdi = null;
            }

            if (kisiAdi == null)
            {
                try
                {
                    kisiAdi = kisi.PresentityURI;
                }
                catch (COMException)
                {
                    kisiAdi = null;
                }
            }
            return(kisiAdi);
        }
Exemple #8
0
        public void DoPollBuddy(string uri)
        {
            Trace.WriteLine("Entering RTCPresenceCore.RTCPresenceCore.DoPollBuddy");
            Trace.WriteLine("URI = " + uri);

            if (uri == null || uri.Length == 0)
            {
                return;
            }

            IRTCBuddy2 buddy2 = null;

            try
            {
                buddy2 = (IRTCBuddy2)this.client.get_Buddy(uri);

                try
                {
                    if (buddy2.SubscriptionType == RTC_BUDDY_SUBSCRIPTION_TYPE.RTCBT_POLL)
                    {
                        //this will cause RTC_BUDDY_EVENT_TYPE.RTCBET_BUDDY_STATE_CHANGE
                        //we will then update buddy presence state
                        buddy2.Refresh();
                    }
                    else
                    {
                        //the buddy is a subscribed buddy. its presence status is up to date
                        this.presenceUI.UpdateBuddy(buddy2);
                    }
                }
                catch (COMException ex1COM)
                {
                    Trace.WriteLine("COMException " + ex1COM.Message);
                }
            }
            catch (COMException ex1COM)
            {
                Trace.WriteLine("COMException " + ex1COM.Message);

                try
                {
                    //the buddy doesn't exist. we should add it as a poll buddy.
                    buddy2 = this.client.AddBuddyEx(
                        uri,
                        null,
                        null,
                        false,
                        RTC_BUDDY_SUBSCRIPTION_TYPE.RTCBT_POLL,
                        profile,
                        0);
                }
                catch (COMException ex2COM)
                {
                    Trace.WriteLine("COMException " + ex2COM.Message);
                }
            }

            //buddy2 will not contain useful information. so we don't return it
        }
Exemple #9
0
 public void KisiSil(IRTCBuddy2 kisi)
 {
     if (htKisiler.ContainsKey(kisi))
     {
         ((TreeNode)htKisiler[kisi]).Remove();
         htKisiler.Remove(kisi);
     }
 }
        void propertiesMenuItem_Click(object sender, System.EventArgs e)
        {
            Trace.WriteLine("Entering RTCPresence.propertiesMenuItem_Click");

            RTCTreeNode node   = (RTCTreeNode)(this.buddyTree.SelectedNode);
            IRTCBuddy2  buddy2 = (IRTCBuddy2)(node.Entity);

            this.ShowMessage(RTCHelp.GetBuddyProperties(buddy2), "Buddy Properties");
        }
Exemple #11
0
        private void mnuOzellikler_Click(object sender, EventArgs e)
        {
            Dugum      kisiBilgi = (Dugum)(tvKisiler.SelectedNode);
            IRTCBuddy2 kisi      = (IRTCBuddy2)kisiBilgi.Kisi;

            if (kisi != null && htKisiler.ContainsKey(kisi))
            {
                this.MesajGoster(Yardim.KisiOzellikeri(kisi), Yardim.KisiAdiAl(kisi) + " Özellikleri");
            }
        }
Exemple #12
0
        private void tvKisiler_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e)
        {
            Dugum      kisiBilgi = (Dugum)(e.Node);
            IRTCBuddy2 kisi      = (IRTCBuddy2)kisiBilgi.Kisi;

            if (kisi != null && htKisiler.Contains(kisi))
            {
                motor.IMPenceresiOlustur(kisi.PresentityURI, Yardim.KisiAdiAl(kisi));
            }
        }
Exemple #13
0
        private void cmnuVideoSes_Click(object sender, EventArgs e)
        {
            Dugum      kisiBilgi = (Dugum)(tvKisiler.SelectedNode);
            IRTCBuddy2 kisi      = (IRTCBuddy2)kisiBilgi.Kisi;

            if (kisi != null && htKisiler.Contains(kisi))
            {
                motor.MediaPenceresiOlustur(kisi.PresentityURI, Yardim.KisiAdiAl(kisi), false);
            }
        }
        public void RemoveBuddy(IRTCBuddy2 buddy2)
        {
            Trace.WriteLine("Entering RTCPresence.RemoveBuddy");

            if (buddyHT.ContainsKey(buddy2))
            {
                ((TreeNode)buddyHT[buddy2]).Remove();
                buddyHT.Remove(buddy2);
            }
        }
Exemple #15
0
        private void cmnuKisiSil_Click(object sender, EventArgs e)
        {
            Dugum      kisiBilgi = (Dugum)(tvKisiler.SelectedNode);
            IRTCBuddy2 kisi      = (IRTCBuddy2)kisiBilgi.Kisi;

            if (kisi != null && htKisiler.ContainsKey(kisi))
            {
                motor.KisiSil(kisi);
            }
        }
        public void UpdateBuddy(IRTCBuddy2 buddy2)
        {
            Trace.WriteLine("Entering RTCPresence.UpdateBuddy");

            this.UpdatePollBuddy(buddy2);

            if (buddy2.SubscriptionType == RTC_BUDDY_SUBSCRIPTION_TYPE.RTCBT_POLL)
            {
                return;
            }

            if (buddyHT.ContainsKey(buddy2))
            {
                ((TreeNode)buddyHT[buddy2]).Remove();
                buddyHT.Remove(buddy2);
            }

            string displayName = RTCHelp.BuildBuddyDisplayName(buddy2);

            if (displayName == null || displayName.Length == 0)
            {
                Trace.WriteLine("NULL Buddy Name");
                return;
            }

            Trace.WriteLine("Display name: " + displayName);

            RTCTreeNode buddyNode = new RTCTreeNode(displayName, buddy2);

            if (buddy2.Status == RTC_PRESENCE_STATUS.RTCXS_PRESENCE_OFFLINE)
            {
                buddyTree.Nodes[0].Nodes.Add(buddyNode);
                buddyTree.Nodes[0].Expand();
            }
            else
            {
                buddyTree.Nodes[1].Nodes.Add(buddyNode);
                buddyTree.Nodes[1].Expand();
            }
            buddyHT.Add(buddy2, buddyNode);

            ArrayList deviceDisplayNameList = RTCHelp.BuildDeviceDisplayNameList(buddy2);

            foreach (string deviceDisplayName in deviceDisplayNameList)
            {
                TreeNode deviceNode = new TreeNode(deviceDisplayName);
                buddyNode.Nodes.Add(deviceNode);
            }

            buddyNode.Expand();
        }
Exemple #17
0
        public void DoAddBuddy(string uri)
        {
            Trace.WriteLine("Entering RTCPresenceCore.DoAddBuddy");

            if (uri == null || uri.Length == 0)
            {
                return;
            }

            try
            {
                IRTCBuddy2 buddy2 = (IRTCBuddy2)this.client.get_Buddy(uri);

                try
                {
                    if (buddy2.SubscriptionType == RTC_BUDDY_SUBSCRIPTION_TYPE.RTCBT_SUBSCRIBED)
                    {
                        //the buddy is already subscribed
                        return;
                    }

                    //the buddy exists, but not subscribed
                    //we should remove the buddy. we then subscribe to it
                    this.DoRemoveBuddy(buddy2);
                }
                catch (COMException ex1COM)
                {
                    Trace.WriteLine("COMException " + ex1COM.Message);
                }
            }
            catch (COMException)
            {
            }

            try
            {
                //the returned buddy2 won't have correct presence status
                this.client.AddBuddyEx(
                    uri,
                    null,
                    null,
                    true,
                    RTC_BUDDY_SUBSCRIPTION_TYPE.RTCBT_SUBSCRIBED,
                    profile,
                    0);
            }
            catch (COMException ex1COM)
            {
                Trace.WriteLine("COMException " + ex1COM.Message);
            }
        }
        public static string KisiAdiOlustur(IRTCBuddy2 kisi)
        {
            RTC_PRESENCE_STATUS bulunmaDurumu = kisi.Status; // kiþinin durumunu al

            string isim = Yardim.KisiAdiAl(kisi);
            string gorunumDurumu = Yardim.GorunumDurumuOlustur(bulunmaDurumu); // isim ve duruma göre kiþi string i oluþtur

            if (isim == null || isim.Length == 0)
            {
                return null;
            }

            return (isim + gorunumDurumu);
        }
        public static string KisiAdiOlustur(IRTCBuddy2 kisi)
        {
            RTC_PRESENCE_STATUS bulunmaDurumu = kisi.Status; // kiþinin durumunu al

            string isim          = Yardim.KisiAdiAl(kisi);
            string gorunumDurumu = Yardim.GorunumDurumuOlustur(bulunmaDurumu); // isim ve duruma göre kiþi string i oluþtur

            if (isim == null || isim.Length == 0)
            {
                return(null);
            }

            return(isim + gorunumDurumu);
        }
        public static string BuildBuddyDisplayName(IRTCBuddy2 buddy2)
        {
            Trace.WriteLine("Entering RTCHelp.BuildBuddyDisplayName");

            RTC_PRESENCE_STATUS presenceStatus = buddy2.Status;
            string name = RTCHelp.GetBuddyName(buddy2);

            if (name == null || name.Length == 0)
            {
                Trace.WriteLine("NULL Buddy Name");
                return null;
            }

            return RTCHelp.BuildDisplayName(name, presenceStatus);
        }
Exemple #21
0
        public static string BuildBuddyDisplayName(IRTCBuddy2 buddy2)
        {
            Trace.WriteLine("Entering RTCHelp.BuildBuddyDisplayName");

            RTC_PRESENCE_STATUS presenceStatus = buddy2.Status;
            string name = RTCHelp.GetBuddyName(buddy2);

            if (name == null || name.Length == 0)
            {
                Trace.WriteLine("NULL Buddy Name");
                return(null);
            }

            return(RTCHelp.BuildDisplayName(name, presenceStatus));
        }
Exemple #22
0
        public static ArrayList BuildDeviceDisplayNameList(IRTCBuddy2 buddy2)
        {
            Trace.WriteLine("Entering RTCHelp.BuildDeviceDisplayNameList");

            ArrayList           deviceList = new ArrayList();
            string              deviceName;
            RTC_PRESENCE_STATUS deviceStatus;

            try
            {
                IRTCCollection deviceCollection = buddy2.PresenceDevices;

                foreach (IRTCPresenceDevice device in deviceCollection)
                {
                    try
                    {
                        deviceName = device.get_PresenceProperty(RTC_PRESENCE_PROPERTY.RTCPP_DEVICE_NAME);
                    }
                    catch (COMException)
                    {
                        deviceName = "NOT EXIST";
                        Trace.WriteLine("NULL Device Name");
                        continue;
                    }

                    try
                    {
                        deviceStatus = device.Status;
                    }
                    catch (COMException)
                    {
                        deviceStatus = RTC_PRESENCE_STATUS.RTCXS_PRESENCE_OFFLINE;
                    }

                    string deviceDisplayName = RTCHelp.BuildDisplayName(deviceName, deviceStatus);
                    deviceList.Add(deviceDisplayName);
                }
            }
            catch (COMException)
            {
                return(null);
            }

            return(deviceList);
        }
        public static ArrayList BuildDeviceDisplayNameList(IRTCBuddy2 buddy2)
        {
            Trace.WriteLine("Entering RTCHelp.BuildDeviceDisplayNameList");

            ArrayList deviceList = new ArrayList();
            string deviceName;
            RTC_PRESENCE_STATUS deviceStatus;

            try
            {
                IRTCCollection deviceCollection = buddy2.PresenceDevices;

                foreach (IRTCPresenceDevice device in deviceCollection)
                {
                    try
                    {
                        deviceName = device.get_PresenceProperty(RTC_PRESENCE_PROPERTY.RTCPP_DEVICE_NAME);
                    }
                    catch (COMException)
                    {
                        deviceName = "NOT EXIST";
                        Trace.WriteLine("NULL Device Name");
                        continue;
                    }

                    try
                    {
                        deviceStatus = device.Status;
                    }
                    catch (COMException)
                    {
                        deviceStatus = RTC_PRESENCE_STATUS.RTCXS_PRESENCE_OFFLINE;
                    }

                    string deviceDisplayName = RTCHelp.BuildDisplayName(deviceName, deviceStatus);
                    deviceList.Add(deviceDisplayName);
                }
            }
            catch (COMException)
            {
                return null;
            }

            return deviceList;
        }
Exemple #24
0
        void OnRTCBuddyEvent(IRTCBuddyEvent2 buddyEvent)
        {
            Trace.WriteLine("Entering RTCPresenceCore.OnRTCBuddyEvent  " +
                            buddyEvent.EventType);

            int statusCode = buddyEvent.StatusCode;

            IRTCBuddy2 buddy2 = (IRTCBuddy2)buddyEvent.Buddy;

            switch (buddyEvent.EventType)
            {
            case RTC_BUDDY_EVENT_TYPE.RTCBET_BUDDY_ADD:
                //This buddy's properties have been added.
                if (RTCHelp.IsSucceeded(statusCode))
                {
                    this.presenceUI.UpdateBuddy(buddy2);
                }
                break;

            case RTC_BUDDY_EVENT_TYPE.RTCBET_BUDDY_REMOVE:
                //This buddy has been successfully removed from the buddy list.
                this.presenceUI.RemoveBuddy(buddy2);
                break;

            case RTC_BUDDY_EVENT_TYPE.RTCBET_BUDDY_UPDATE:
                //This buddy's properties have been updated. -- ignore
                break;

            case RTC_BUDDY_EVENT_TYPE.RTCBET_BUDDY_SUBSCRIBED:
                //This buddy's presence information is subscribed to -- ignore
                break;

            case RTC_BUDDY_EVENT_TYPE.RTCBET_BUDDY_STATE_CHANGE:
                //This buddy's presence state has changed.
                this.presenceUI.UpdateBuddy(buddy2);
                break;

            default:
                break;
            }
        }
Exemple #25
0
 public void KisiSil(IRTCBuddy2 kisi)
 {
     istemci.RemoveBuddy(kisi); // RTC_BUDDY_EVENT_TYPE.RTCBET_BUDDY_REMOVE
 }
        public static string GetBuddyName(IRTCBuddy2 buddy2)
        {
            Trace.WriteLine("Entering RTCHelp.GetBuddyName");

            string buddyName;

            try
            {
                buddyName = buddy2.get_PresenceProperty(RTC_PRESENCE_PROPERTY.RTCPP_DISPLAYNAME);
            }
            catch(COMException)
            {
                buddyName = null;
            }

            if (buddyName == null)
            {
                try
                {
                    buddyName = buddy2.PresentityURI;
                }
                catch (COMException)
                {
                    buddyName = null;
                }
            }

            return buddyName;
        }
Exemple #27
0
        public static string GetBuddyProperties(IRTCBuddy2 buddy2)
        {
            Trace.WriteLine("Entering RTCHelp.GetBuddyProperties");

            StringBuilder       properties = new StringBuilder();
            string              displayname, phone, email;
            string              uri, notes, data;
            bool                fPersistant;
            RTC_PRESENCE_STATUS presenceStatus;

            try
            {
                displayname = buddy2.get_PresenceProperty(RTC_PRESENCE_PROPERTY.RTCPP_DISPLAYNAME);
            }
            catch (COMException)
            {
                displayname = "NOT EXIST";
            }

            try
            {
                phone = buddy2.get_PresenceProperty(RTC_PRESENCE_PROPERTY.RTCPP_PHONENUMBER);
            }
            catch (COMException)
            {
                phone = "NOT EXIST";
            }

            try
            {
                email = buddy2.get_PresenceProperty(RTC_PRESENCE_PROPERTY.RTCPP_EMAIL);
            }
            catch (COMException)
            {
                email = "NOT EXIST";
            }

            try
            {
                uri = buddy2.PresentityURI;
            }
            catch (COMException)
            {
                uri = "NOT EXIST";
            }

            try
            {
                fPersistant = buddy2.Persistent;
            }
            catch (COMException)
            {
                fPersistant = false;
            }

            try
            {
                presenceStatus = buddy2.Status;
            }
            catch (COMException)
            {
                presenceStatus = RTC_PRESENCE_STATUS.RTCXS_PRESENCE_OFFLINE;
            }

            try
            {
                notes = buddy2.Notes;
            }
            catch (COMException)
            {
                notes = "NOT EXIST";
            }

            try
            {
                data = buddy2.Data;
            }
            catch (COMException)
            {
                data = "NOT EXIST";
            }

            properties.Append(string.Format("Buddy Name: {0}\nPhone: {1}\nEmail: {2}\n",
                                            displayname,
                                            phone,
                                            email));

            properties.Append(string.Format("URI: {0}\nStatus: {1}\nPersistant: {2}\nNotes: {3}\nData: {4}\n",
                                            uri,
                                            presenceStatus,
                                            fPersistant,
                                            notes,
                                            data));

            Trace.WriteLine("Get groups");

            properties.Append("Group List: ");

            try
            {
                IRTCCollection groupCollection = buddy2.Groups;

                foreach (IRTCBuddyGroup pGroup in groupCollection)
                {
                    try
                    {
                        if (pGroup.Name == null || pGroup.Name.Length == 0)
                        {
                            Trace.WriteLine("NULL Group Name");
                            continue;
                        }
                        properties.Append(pGroup.Name + "  ");
                    }
                    catch (COMException ex1COM)
                    {
                        Trace.WriteLine("COMException " + ex1COM.Message);
                    }
                }
            }
            catch (COMException ex1COM)
            {
                Trace.WriteLine("COMException " + ex1COM.Message);
            }

            properties.Append("\n");

            Trace.WriteLine("Get devices");

            try
            {
                IRTCCollection deviceCollection = buddy2.PresenceDevices;

                foreach (IRTCPresenceDevice device in deviceCollection)
                {
                    properties.Append(GetDeviceProperties(device));
                }
            }
            catch (COMException ex1COM)
            {
                Trace.WriteLine("COMException " + ex1COM.Message);
            }

            return(properties.ToString());
        }
        public static string GetBuddyProperties(IRTCBuddy2 buddy2)
        {
            Trace.WriteLine("Entering RTCHelp.GetBuddyProperties");

            StringBuilder properties = new StringBuilder();
            string displayname, phone, email;
            string uri, notes, data;
            bool fPersistant;
            RTC_PRESENCE_STATUS presenceStatus;

            try
            {
                displayname = buddy2.get_PresenceProperty(RTC_PRESENCE_PROPERTY.RTCPP_DISPLAYNAME);
            }
            catch (COMException )
            {
                displayname = "NOT EXIST";
            }

            try
            {
                phone = buddy2.get_PresenceProperty(RTC_PRESENCE_PROPERTY.RTCPP_PHONENUMBER);
            }
            catch (COMException )
            {
                phone = "NOT EXIST";
            }

            try
            {
                email = buddy2.get_PresenceProperty(RTC_PRESENCE_PROPERTY.RTCPP_EMAIL);
            }
            catch (COMException )
            {
                email = "NOT EXIST";
            }

            try
            {
                uri = buddy2.PresentityURI;
            }
            catch (COMException )
            {
                uri = "NOT EXIST";
            }

            try
            {
                fPersistant = buddy2.Persistent;
            }
            catch (COMException )
            {
                fPersistant = false;
            }

            try
            {
                presenceStatus = buddy2.Status;
            }
            catch (COMException )
            {
                presenceStatus = RTC_PRESENCE_STATUS.RTCXS_PRESENCE_OFFLINE;
            }

            try
            {
                notes = buddy2.Notes;
            }
            catch (COMException )
            {
                notes = "NOT EXIST";
            }

            try
            {
                data = buddy2.Data;
            }
            catch (COMException )
            {
                data = "NOT EXIST";
            }

            properties.Append(string.Format("Buddy Name: {0}\nPhone: {1}\nEmail: {2}\n",
                displayname,
                phone,
                email));

            properties.Append(string.Format("URI: {0}\nStatus: {1}\nPersistant: {2}\nNotes: {3}\nData: {4}\n",
                uri,
                presenceStatus,
                fPersistant,
                notes,
                data));

            Trace.WriteLine("Get groups");

            properties.Append("Group List: ");

            try
            {
                IRTCCollection groupCollection = buddy2.Groups;

                foreach (IRTCBuddyGroup pGroup in groupCollection)
                {
                    try
                    {
                        if (pGroup.Name == null || pGroup.Name.Length == 0)
                        {
                            Trace.WriteLine("NULL Group Name");
                            continue;
                        }
                        properties.Append(pGroup.Name + "  ");
                    }
                    catch(COMException ex1COM)
                    {
                        Trace.WriteLine("COMException " + ex1COM.Message);
                    }
                }
            }
            catch(COMException ex1COM)
            {
                Trace.WriteLine("COMException " + ex1COM.Message);
            }

            properties.Append("\n");

            Trace.WriteLine("Get devices");

            try
            {
                IRTCCollection deviceCollection = buddy2.PresenceDevices;

                foreach (IRTCPresenceDevice device in deviceCollection)
                {
                    properties.Append(GetDeviceProperties(device));
                }
            }
            catch(COMException ex1COM)
            {
                Trace.WriteLine("COMException " + ex1COM.Message);
            }

            return properties.ToString();
        }
        public void UpdateBuddy(IRTCBuddy2 buddy2)
        {
            Trace.WriteLine("Entering RTCPresence.UpdateBuddy");

            this.UpdatePollBuddy(buddy2);

            if (buddy2.SubscriptionType == RTC_BUDDY_SUBSCRIPTION_TYPE.RTCBT_POLL)
            {
                return;
            }

            if (buddyHT.ContainsKey(buddy2))
            {
                ((TreeNode) buddyHT[buddy2]).Remove();
                buddyHT.Remove(buddy2);
            }

            string displayName = RTCHelp.BuildBuddyDisplayName(buddy2);
            if (displayName == null || displayName.Length == 0)
            {
                Trace.WriteLine("NULL Buddy Name");
                return;
            }

            Trace.WriteLine("Display name: " + displayName);

            RTCTreeNode buddyNode = new RTCTreeNode(displayName, buddy2);
            if (buddy2.Status == RTC_PRESENCE_STATUS.RTCXS_PRESENCE_OFFLINE)
            {
                buddyTree.Nodes[0].Nodes.Add(buddyNode);
                buddyTree.Nodes[0].Expand();
            }
            else
            {
                buddyTree.Nodes[1].Nodes.Add(buddyNode);
                buddyTree.Nodes[1].Expand();
            }
            buddyHT.Add(buddy2, buddyNode);

            ArrayList deviceDisplayNameList = RTCHelp.BuildDeviceDisplayNameList(buddy2);
            foreach (string deviceDisplayName in deviceDisplayNameList )
            {
                TreeNode deviceNode = new TreeNode(deviceDisplayName);
                buddyNode.Nodes.Add(deviceNode);
            }

            buddyNode.Expand();
        }
        void UpdatePollBuddy(IRTCBuddy2 buddy2)
        {
            Trace.WriteLine("Entering RTCPresence.UpdatePollBuddy");

            if (this.pollDialog == null)
            {
                return;
            }

            if (buddy2 == null)
            {
                Trace.WriteLine("NULL Buddy Object");
                return;
            }

            try
            {

                if (buddy2.PresentityURI != this.pollDialog.Uri
                    && buddy2.PresentityURI != ("sip:" + pollDialog.Uri))
                {
                    Trace.WriteLine("Not Current Poll URI");
                    return;
                }

                this.pollDialog.Properties = RTCHelp.GetBuddyProperties(buddy2);
            }
            catch (COMException)
            {
            }
        }
        public static string KisiOzellikeri(IRTCBuddy2 kisi)
        {
            StringBuilder ozellikler = new StringBuilder();
            string gorunenAd, telefon, email, uri, notlar, veri;
            bool Kararlilik;
            string bulunmaDurumu;

            try
            {
                gorunenAd = kisi.get_PresenceProperty(RTC_PRESENCE_PROPERTY.RTCPP_DISPLAYNAME);
            }
            catch (COMException)
            {
                gorunenAd = "Belirtilmemiþ";
            }

            try
            {
                telefon = kisi.get_PresenceProperty(RTC_PRESENCE_PROPERTY.RTCPP_PHONENUMBER);
            }
            catch (COMException)
            {
                telefon = "Belirtilmemiþ";
            }

            try
            {
                email = kisi.get_PresenceProperty(RTC_PRESENCE_PROPERTY.RTCPP_EMAIL);
            }
            catch (COMException)
            {
                email = "Belirtilmemiþ";
            }

            try
            {
                uri = kisi.PresentityURI;
            }
            catch (COMException)
            {
                uri = "Belirtilmemiþ";
            }

            try
            {
                Kararlilik = kisi.Persistent;
            }
            catch (COMException)
            {
                Kararlilik = false;
            }

            try
            {
                bulunmaDurumu = GorunumDurumuOlustur(kisi.Status);
            }
            catch (COMException)
            {
                bulunmaDurumu = GorunumDurumuOlustur(RTC_PRESENCE_STATUS.RTCXS_PRESENCE_OFFLINE);
            }

            try
            {
                notlar = kisi.Notes;
            }
            catch (COMException)
            {
                notlar = "Belirtilmemiþ";
            }

            try
            {
                veri = kisi.Data;
            }
            catch (COMException)
            {
                veri = "Belirtilmemiþ";
            }

            ozellikler.Append(string.Format("Kiþi Adý: {0}\nTelefon: {1}\nEmail: {2}\n", gorunenAd, telefon, email));
            ozellikler.Append(string.Format("URI: {0}\nDurum: {1}\nKararlýlýk: {2}\nNotlar: {3}\nVeri: {4}\n", uri, bulunmaDurumu, Kararlilik, notlar, veri));
            return ozellikler.ToString();
        }
        public void KisiGuncelle(IRTCBuddy2 kisi)
        {
            if (kisi.PresentityURI == motor.istemciURI)
            {
                return;
            }

            if (htKisiler.ContainsKey(kisi)) // kiþi zaten listede var, sil...
            {
                ((TreeNode)htKisiler[kisi]).Remove();
                htKisiler.Remove(kisi);
            }

            string gorunenIsim = Yardim.KisiAdiOlustur(kisi);
            if (gorunenIsim == null || gorunenIsim.Length == 0)
            {
                return;
            }

            Dugum dugumKisi = new Dugum(gorunenIsim, kisi, Yardim.ImgIndex); // Yeni düðüm. "ugur (Çevrimiçi)" ve buddy nesnesi eklendi
            if (kisi.Status == RTC_PRESENCE_STATUS.RTCXS_PRESENCE_OFFLINE)
            {
                tvKisiler.Nodes[1].Nodes.Add(dugumKisi);
                tvKisiler.Nodes[1].Expand();
            }
            else
            {
                tvKisiler.Nodes[0].Nodes.Add(dugumKisi);
                tvKisiler.Nodes[0].Expand();
            }
            htKisiler.Add(kisi, dugumKisi); // htKisiler silme iþlemlerinde cast yoluyla kullanýlacak
            tvKisiler.Refresh();
        }
 public void KisiSil(IRTCBuddy2 kisi)
 {
     if (htKisiler.ContainsKey(kisi))
     {
         ((TreeNode)htKisiler[kisi]).Remove();
         htKisiler.Remove(kisi);
     }
 }
        public static string KisiOzellikeri(IRTCBuddy2 kisi)
        {
            StringBuilder ozellikler = new StringBuilder();
            string        gorunenAd, telefon, email, uri, notlar, veri;
            bool          Kararlilik;
            string        bulunmaDurumu;

            try
            {
                gorunenAd = kisi.get_PresenceProperty(RTC_PRESENCE_PROPERTY.RTCPP_DISPLAYNAME);
            }
            catch (COMException)
            {
                gorunenAd = "Belirtilmemiþ";
            }

            try
            {
                telefon = kisi.get_PresenceProperty(RTC_PRESENCE_PROPERTY.RTCPP_PHONENUMBER);
            }
            catch (COMException)
            {
                telefon = "Belirtilmemiþ";
            }

            try
            {
                email = kisi.get_PresenceProperty(RTC_PRESENCE_PROPERTY.RTCPP_EMAIL);
            }
            catch (COMException)
            {
                email = "Belirtilmemiþ";
            }

            try
            {
                uri = kisi.PresentityURI;
            }
            catch (COMException)
            {
                uri = "Belirtilmemiþ";
            }

            try
            {
                Kararlilik = kisi.Persistent;
            }
            catch (COMException)
            {
                Kararlilik = false;
            }

            try
            {
                bulunmaDurumu = GorunumDurumuOlustur(kisi.Status);
            }
            catch (COMException)
            {
                bulunmaDurumu = GorunumDurumuOlustur(RTC_PRESENCE_STATUS.RTCXS_PRESENCE_OFFLINE);
            }

            try
            {
                notlar = kisi.Notes;
            }
            catch (COMException)
            {
                notlar = "Belirtilmemiþ";
            }

            try
            {
                veri = kisi.Data;
            }
            catch (COMException)
            {
                veri = "Belirtilmemiþ";
            }

            ozellikler.Append(string.Format("Kiþi Adý: {0}\nTelefon: {1}\nEmail: {2}\n", gorunenAd, telefon, email));
            ozellikler.Append(string.Format("URI: {0}\nDurum: {1}\nKararlýlýk: {2}\nNotlar: {3}\nVeri: {4}\n", uri, bulunmaDurumu, Kararlilik, notlar, veri));
            return(ozellikler.ToString());
        }
        public void RemoveBuddy(IRTCBuddy2 buddy2)
        {
            Trace.WriteLine("Entering RTCPresence.RemoveBuddy");

            if (buddyHT.ContainsKey(buddy2))
            {
                ((TreeNode) buddyHT[buddy2]).Remove();
                buddyHT.Remove(buddy2);
            }
        }
 public void KisiSil(IRTCBuddy2 kisi)
 {
     istemci.RemoveBuddy(kisi); // RTC_BUDDY_EVENT_TYPE.RTCBET_BUDDY_REMOVE
 }