Pikett-Schaltung

rezott

Silver Partner
Advanced Certified
Mitglied seit
1. Februar 2023
Beiträge
209
Moin zusammen

Eine Frage an alle, welche auch Mitel im Einsatz haben/hatten, so wie wir.

Folgendes Szenario aktuell (Mitel-Anlage):

Wir haben eine DID, welche als Pikett-Nummer genutzt wird und einem virtuellen Benutzer zugewiesen ist. Die Pikett-Nummer wird den Kunden auch auf dem Voicemail so kommuniziert wird, welches ausser. Geschäftszeiten abgespielt wird. Während den Geschäftszeiten landen die Anrufe der Pikettnummer auf der Zentrale.
Auf der Zentrale haben wir 5 Tasten für jeweils 5 verschiedene Mobilenummer, auf die die Pikett-Nummer umgeleitet wird. Mit den Tasten wird die virtuelle Nebenstelle ferngesteuert und eine Umleitung aktiviert.

Ich habe das aktuell so gelöst:
Rufgruppe ohne Nutzer, Ziel bei Nichtannahme auf die Zentrale bzw. Hauptnummer, Ausserhalb. Geschäftszeiten habe ich den Benutzer bzw. Mitarbeiter, welcher aktuell gerade Pikett-Dienst hat, hinterlegt.
Ich habe hier einen Benutzer erstellt und "Gleichzeitig Mobilenummer anrufen" angewählt (Mitarbeiter hat sonst kein 3CX User).

Nun kann die Dame, welche die Zentrale bedient, via WebClient unter Admin --> Anrufverwaltung jeweils den Benutzer bzw. Mitarbeiter auswählen, der Pikett hat.

Habt ihr hier evtl. eine "schönere" Lösung? Vielleicht mit einer Dummy-Nebenstelle? Wir haben überall das Softphone im Einsatz und wäre schön, wenn dies nicht via WebClient erfolgen müsste, evtl. sogar mit Tasten auf dem Telefon?

Vielleicht hat jemand eine Idee?
 
Es gibt mehrere Möglichkeiten. Bei nur 5 verschiedenen Weiterleitungszielen könnte man den Status eines Dummy Nutzers verwenden: in jedem Status ein anderes Ziel auf eine externe Nummer eingeben und mit ausreichend Berechtigungen im eigenen Webclient den Status dieses anderen Nutzers (unter Team) ändern. Dazu braucht man keinen vollständigen Admin Zugang.

Mit einer CFD App oder einem Anrufskript gibt es noch ganz viele weitere Optionen. Lies dich mal bitte durch diese Beiträge:
https://www.3cx.de/forum/threads/rufweiterleitung.101354
Der vorletzte Beitrag dort behandelt die Einrichtung einer Rufweiterleitung in einer 3CX v20:
https://www.3cx.de/forum/threads/rufweiterleitung.101354/post-430429
Dort im C# Code die Zeile mit dest.Internal mit // deaktivieren und stattdessen dest.External verwenden.
 
Zuletzt bearbeitet:
Vielen Dank für deine Hilfe. Ich werde mir die Sache anschauen und Feedback geben wie ich es schlussendlich gelöst habe.
 
  • Like
Reaktionen: fxbastler
Hier ein Beispiel für ein statisches Anrufskript zum Einstellen der Weiterleitung für Anrufe im Status DND einer Nebenstelle.

Nachteil - weil einfach: die Nummer der Nebenstelle und die der Weiterleitung ist fest eingebaut, d.h. es werden pro einzustellender Nebenstelle und Nummer je ein eigenes Skript mit eigener Anrufnummer benötigt in dem dann nur die beiden Variablen ganz oben (strExtNr und strDestNr) geändert werden müssen. Das Ändern kann man aber live in der 3CX machen, da braucht man nichts extra.

change_dnd_forward_extern.cs

C#:
#nullable disable
using CallFlow;
using System.Linq;
using System.Threading.Tasks;
using TCX.Configuration;

namespace dummy
{
    public class change_dnd_forward_extern : ScriptBase<change_dnd_forward_extern>
    {

        private readonly string strExtNr = "123";               // extension for which the DND forwarding destination is changed
        private readonly string strDestNr = "04912345678";      // external number to which the forwarding is done
   
        public override async Task<bool> StartAsync()
        {
            var ext = PhoneSystem.Root.GetDNByNumber(strExtNr) as Extension;
            if (ext != null)
            {
                var profile=ext.FwdProfiles.FirstOrDefault( x => x.Name == "Out of office"); // 'Available', 'Away', 'Out of office', 'Custom 1', 'Custom 2', maybe parameter?
                if (profile != null)
                {
                    // DestinationStruct need 3 parameter
                    // 1 DestinationType: 'None', 'VoiceMail', 'Extension', 'Queue', 'RingGroup', 'IVR', 'External', 'Fax', 'Boomerang' (external number),
                    //                    'Deflect', 'VoiceMailOfDestination', 'Callback' (reserved), 'RoutePoint'
                    // 2 internal DN, maybe select by parameter  - OR -
                    // 3 external number as string, maybe select by parameter
                    var dest = new DestinationStruct
                    {
                        //To = DestinationType.Extension;
                        //Internal=PhoneSystem.Root.GetDNByNumber(strDestNr);   // needed if internal destination
                        To = DestinationType.External,
                        External = strDestNr                                  // needed if external destination
                    };

                    if (profile.TypeOfRouting == RoutingType.Available)
                    {
                        var route = profile.AvailableRoute;                   // maybe select by parameter?
                        if (route != null)
                        {
                            route.NoAnswer.AllCalls = route.NoAnswer.Internal = dest;
                            route.Busy.AllCalls = route.NotRegistered.AllCalls = dest;
                            route.Busy.Internal = route.NotRegistered.Internal = dest;
                        }
                    }
                    if (profile.TypeOfRouting == RoutingType.Away)
                    {
                        var route = profile.AwayRoute;
                        if (route != null)
                        {
                            var external = profile.AwayRoute.External;      // maybe select by parameter?
                            route.Internal.AllHours = route.Internal.OutOfOfficeHours = dest;
                            route.External.AllHours = route.External.OutOfOfficeHours = dest;
                        }
                    }
                    ext.Save();
                }
            }
            await Task.CompletedTask;
            return true;
        }
    }
}

Stichwort: Schnipsel
 
Zuletzt bearbeitet:
  • Like
Reaktionen: rezott und bitn2
Eine andere Möglichkeit ist, alle Pikettuser mit einer neuen Nebenstellennummer einzurichten und die Mobile Nummer zu hinterlegen. Anruf auf Mobile im Status Anwesend aktivieren.
Anschliessend erstellst du eine Warteschleife und gibst den 3CX Usern die Rechte die Teilnehmer dort an- und abzumelden. So hast du eine Pikettgruppe bei der über den 3CX Client die User An- und Abgemeldet werden können.
 
  • Like
Reaktionen: fxbastler
Eine andere Möglichkeit ist, alle Pikettuser mit einer neuen Nebenstellennummer einzurichten und die Mobile Nummer zu hinterlegen. Anruf auf Mobile im Status Anwesend aktivieren.
Anschliessend erstellst du eine Warteschleife und gibst den 3CX Usern die Rechte die Teilnehmer dort an- und abzumelden. So hast du eine Pikettgruppe bei der über den 3CX Client die User An- und Abgemeldet werden können.
Das ist eine super Idee. Danke dir ;-)
 

Statistik des Forums

Themen
44.413
Beiträge
232.713
Mitglieder
78.328
Neuestes Mitglied
as7h