Jump to content

Zentrales Telefonbuch auf DECT 800


Uwe Eder

Recommended Posts

Hallo zusammen,

ich habe eine Kundenlösung mit einer zentralen Swyx und einer verteilten DECT 800-Infrastruktur [mehrere DECT-Master]. Aufgabe jetzt: Zentrales Telefonbuch auf die Handgeräte bekommen. Gibt es hierzu eine Lösung, gerne auch automatisiert? Vielleicht per Skript.

 

Gruß UE

Link to comment
Share on other sites


  • Most Valued User

Also entweder per Ascom IMS falls das noch aktuell ist, mein letzter ist schon länger her.

 

Ansonsten gibt was mit Powershell, war im alten Swyx Forum verlinkt, ich müsste es mal raussuchen wo ich es habe.

Link to comment
Share on other sites


Danke, ich bin genau auf der Suche nach dem Weg über Powershell. Es soll wohl mal ein Skript gegeben haben, mit dem das Zentrale Telefonbuch per "Automatik", 1x/2x am Tag auf die Master-DECTgeschrieben werden konnte. Das DING brauche ich....

 

Nach meinen Info`s ist die IMS von der UNITE abgelöst und bringt dementsprechend nicht unerhebliche Kosten mit sich.

 

Es gibt zwar durch die UNITE weitere "tolle" Funktionen, brauche ich aber Stand heute nicht.

 

Freue mich auf Info`S. DANKE

Link to comment
Share on other sites


  • Most Valued User

Wir lassen zyklisch einen Job laufen, welcher das globale Telefonbuch in CSV exportiert. Diese CSV wiederum wird per HTTP-POST an die DECT Basis gesendet.

 

Ist in C# geschrieben, sollte sich aber in Powershell überführen lassen.

 

				// Get Swyx Gobale PB
                var cds = libManager();
                var pbenum = cds.GetUserPhoneBookEnum();
                var pbenumColl = pbenum.GetPBXPhoneBookEx("%", true, true, true, true).CreateSortableFilterCollection();

                foreach (var pbenumCollE in pbenumColl)
                {
                    PhonebookToDect800Contact entry = new PhonebookToDect800Contact();
                    entry.id = Guid.NewGuid().ToString();
                    entry.vorname = pbenumCollE.Name;
                    entry.nachname = "";
                    entry.phone = pbenumCollE.Number;
                    entry.vornameDect = pbenumCollE.Name;
                    entry.nachnameDect = "";
                    entry.phoneDect = pbenumCollE.Number;
                    // Prep for DECT
                    // Vorname
                    // Replace Umlaute, etc.
                    // Replace Sonderzeichen
                    //entry.vornameDect = entry.vornameDect.Replace(" ", string.Empty);
                    entry.vornameDect = entry.vornameDect.Replace("/", string.Empty);
                    entry.vornameDect = entry.vornameDect.Replace("-", string.Empty);
                    entry.vornameDect = entry.vornameDect.Replace("(", string.Empty);
                    entry.vornameDect = entry.vornameDect.Replace(")", string.Empty);
                    entry.vornameDect = entry.vornameDect.Replace("{", string.Empty);
                    entry.vornameDect = entry.vornameDect.Replace("}", string.Empty);
                    entry.vornameDect = entry.vornameDect.Replace("&", string.Empty);
                    entry.vornameDect = entry.vornameDect.Replace("@", string.Empty);
                    entry.vornameDect = entry.vornameDect.Replace("*", string.Empty);
                    entry.vornameDect = entry.vornameDect.Replace("'", string.Empty);
                    entry.vornameDect = entry.vornameDect.Replace(".", string.Empty);
                    entry.vornameDect = entry.vornameDect.Replace("\"", string.Empty);
                    entry.vornameDect = entry.vornameDect.Replace(",", string.Empty);
                    entry.vornameDect = entry.vornameDect.Replace("ö", "oe");
                    entry.vornameDect = entry.vornameDect.Replace("ä", "ae");
                    entry.vornameDect = entry.vornameDect.Replace("ü", "ue");
                    entry.vornameDect = entry.vornameDect.Replace("Ö", "Oe");
                    entry.vornameDect = entry.vornameDect.Replace("Ä", "Ae");
                    entry.vornameDect = entry.vornameDect.Replace("Ü", "Ue");
                    entry.vornameDect = entry.vornameDect.Replace("ß", "ss");
                    entry.vornameDect = entry.vornameDect.Replace("é", "e");
                    entry.vornameDect = entry.vornameDect.Replace("ó", "o");
                    entry.vornameDect = entry.vornameDect.Replace("ú", "u");
                    entry.vornameDect = entry.vornameDect.Replace("í", "i");
                    if (entry.vornameDect.Length >= 20)
                    {
                        entry.vornameDect = entry.vornameDect.Substring(0, 20);
                    }
                    // Phone
                    // +49 wird nicht unterstützt - entfernen und + durch 000 ersetzen
                    if (entry.phoneDect.Contains("+"))
                    {
                        entry.phoneDect = entry.phoneDect.Substring(1, (entry.phoneDect.Length - 1));
                        //Phones brauchen für +49 drei Nullen --> 00049
                        entry.phoneDect = "000" + entry.phoneDect;
                    }

                    lPhonebookToDect800Contact.Add(entry);
                }

                // write pro Eintrag
                foreach (var contact in lPhonebookToDect800Contact)
                {
                    fileCsv.WriteLine(contact.vornameDect + ";;" + contact.phoneDect + ";");
                }

                //Freeing
                pbenum.FreeForReuse();
                cds.FreeForReuse();
            }
            else if (selectedDevice.mode == "manual")
            {
                // aus JSON Datei
                foreach (var contact in selectedDevice.contacts)
                {
                    if (contact.id != "0")
                    {
                        fileCsv.WriteLine(contact.vornameDect + ";" + contact.nachnameDect + ";" + contact.phoneDect + ";");
                    }
                }
                
            }
            fileCsv.Close();

            // upload nur DECT
            string urlDect = "https://" + selectedDevice.ipaddress + "/PHONEBOOK/post_file.xml";
            string uploadPathAndFile = path + filenameCsv;

            System.Net.ServicePointManager.CertificatePolicy = new MyPolicy();
            WebClient myWebClient = new WebClient();
            myWebClient.Credentials = new NetworkCredential(selectedDevice.adminusername, selectedDevice.adminpassword);

            var result = new { Success = true, Message = "Telefonbucheinträge erfolgreich importiert" };
            try
            {
                byte[] responseArray = myWebClient.UploadFile(urlDect, uploadPathAndFile);
            }
            catch(WebException ex)
            {
                result = new { Success = false, Message = "Telefonbucheinträge nicht erfolgreich importiert, Fehler: " + ex };
            }

 

Link to comment
Share on other sites


Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use and have taken note of our Privacy Policy.
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.