Esempio n. 1
0
        void callHandler_CurrentProfileChanged(object sender, CurrentProfileChangedEventArgs e)
        {
            var currentProfileChanged = new CurrentProfileChanged();

            try
            {
                var _sender = sender as MyPhonePlugins.IMyPhoneCallHandler;

                fillCallHandler_1(_sender, currentProfileChanged.CallHandler);
                currentProfileChanged.NewProfileId = e.NewProfileId;
                currentProfileChanged.OldProfileId = e.OldProfileId;

                foreach (var call in _sender.ActiveCalls)
                {
                    var newCall = new CallStatus();
                    fillCallStatus(call, newCall);
                    currentProfileChanged.CallHandler.ActiveCalls.Add(newCall);
                }

                foreach (var profile in _sender.Profiles)
                {
                    var newProfile = new UserProfileStatus();
                    fillProfiles(profile, newProfile);
                    currentProfileChanged.CallHandler.Profiles.Add(newProfile);
                }
            }
            catch
            {
                currentProfileChanged = null;
            }

            Callback(channel => channel.CurrentProfileChanged(currentProfileChanged));
        }
Esempio n. 2
0
        // 3CX Profilstatus abfragen
        private void CallHandlerCurrentProfileChanged(object sender, CurrentProfileChangedEventArgs profileInfo)
        {
            var profiles = _callHandler.Profiles;
            UserProfileStatus currentProfile = null;

            foreach (var profile in profiles)
            {
                if (profile.ProfileId == profileInfo.NewProfileId)
                {
                    currentProfile = profile;
                }
            }

            // Farbe je nach 3CX Status ändern
            switch (currentProfile.Name)
            {
            // Auf Grün schalten, wenn verfügbar
            case "Available":
                frm.busylight.Light(Busylight.BusylightColor.Green);
                break;

            // Auf Rot schalten, wenn nicht verfügbar
            case "Away":
                frm.busylight.Light(Busylight.BusylightColor.Red);
                break;

            // Auf Rot schalten, wenn anderer Status gewählt wird (z.B. Ferien)
            default:
                frm.busylight.Light(Busylight.BusylightColor.Red);
                // Eigene Farbe definieren (deaktiviert)
                // var color = new Busylight.BusylightColor();
                // color.RedRgbValue = 255;
                // color.GreenRgbValue = 20;
                // color.BlueRgbValue = 147;
                // frm.busylight.Light(color);
                break;
            }
        }
Esempio n. 3
0
 void callHandler_CurrentProfileChanged(object sender, CurrentProfileChangedEventArgs e)
 {
     Callback(channel => channel.CurrentProfileChanged(e.NewProfileId));
 }