Matthias Peter Posted April 17, 2019 #1 Share Posted April 17, 2019 Hallo, ich habe eben ein Problem mit der Variable PBXUser.VoicemailEMailAddress gelöst: Meine Scripte lieferten bei Abfrage der Variable immer einen leeren String zurück. Lediglich bei einem User funktionierte die Variable und lieferte den korrekten Inhalt. Bei sämtlichen Usern war in der Benutzerkonfiguration unter Einstellungen > Administration -> E-Mail-Adresse jeweils eine Adresse hinterlegt. Diese ist offenbar aber nicht diejenige, die von der Variablen zurückgeliefert wird. Wenn ich hier beim korrekt funktionierenden User eine Änderung vornehme, ändert sich der Inhalt der Variablen nämlich nicht. Gleiches gilt für das Feld EMailAddr in der Tabelle UserData direkt im SQL-Server: Eine Änderung an diesem Wert ändert ebenfalls das Resultat der Variablen nicht. PBXUser.VoicemailEMailAddress bezieht seinen Inhalt über den im Voicemail-Dialog (Rechtsklick auf Voicemail, Umleitungen konfigurieren im SwyxIt Client bzw. Button "Ändern" im Call Routing der Useradministration). Dabei ist es egal, ob die Mailbox genutzt wird oder nicht - wenn hier keine Adresse hinterlegt ist, ist die Variable leer. Viele Grüße Matthias Peter Link to comment Share on other sites More sharing options...
Most Valued User Mathias Gindler Posted October 14, 2019 Most Valued User #2 Share Posted October 14, 2019 Hallo Matthias, ist zwar schon ein bisschen her - passt aber ganz gut: ist es dir irgendwie gelungen, auf die unter Einstellungen > Administration konfiguriert E-Mail-Adresse zuzugreifen? Das könnte ich gerade in einem Callrouting brauchen... Link to comment Share on other sites More sharing options...
Tom Wellige Posted October 14, 2019 #3 Share Posted October 14, 2019 Hi Mathias, die globale "From" Addresse kann über das PBXConfig Objekt abgefragt werden (PBXConfig.VoicemailFromAddress). Die Details nebst Beispiel Code findet Du hier: https://www.swyxforum.com/vbscript-server-script-api/pbxconfig/server-properties-r85/ Link to comment Share on other sites More sharing options...
Most Valued User Mathias Gindler Posted October 14, 2019 Most Valued User #4 Share Posted October 14, 2019 Hallo Tom, ich glaub, da hast du mich falsch verstanden - ich möchte die Mail-Adresse haben, die in der USER-Konfiguration unter "Einstellungen - Administration - E-Mail-Adresse" (im Bereich "Benutzerinformationen") eingetragen ist. Aber der Link bringt mich vielleicht weiter...: ist das PbxUser.EMailAddress? Link to comment Share on other sites More sharing options...
Tom Wellige Posted October 14, 2019 #5 Share Posted October 14, 2019 Jep, das ist die konfigurierte EMail Adresse des Benutzers. Link to comment Share on other sites More sharing options...
Most Valued User Mathias Gindler Posted October 14, 2019 Most Valued User #6 Share Posted October 14, 2019 Hallo Tom, hab's probiert und muss leider widersprechen: PBXUser.EMailAddress liefert nicht die Adresse unter "Einstellungen - Administration - E-Mail-Adresse", sondern die Adresse, die bei der Standard-Voicemail-Konfiguration eingetragen ist. (dbo.Users, Spalte "EMailAddr") Ich würde jedoch den Wert aus dbo.UserEmailAddresses brauchen. Gibt's da ne Möglichkeit? Wenn nicht, dann muss ich halt die Standard-Voicemails entsprechend anpassen. Aber schön wär's schon, da die Adresse aus dbo.UserEmailAddresses auch in der Administration angezeigt wird und damit leicht geprüft werden kann. Link to comment Share on other sites More sharing options...
Tom Wellige Posted October 14, 2019 #7 Share Posted October 14, 2019 Die Properties auf dem PBXUser und PBXConfig Objekt sind die einzigen, die auf COM Schnisttstellen (und damit im VBScript Call Routing) zur Verfügung stehen. Ich habe die Properties auf dem PBXConfig Objekt selbst niemals verwendet und hätte jetzt vermutet, dass das dortige PBXUser.EMailAddress den gewünschten Wert zurück liefert. Link to comment Share on other sites More sharing options...
Tom Wellige Posted October 14, 2019 #8 Share Posted October 14, 2019 Ich habe das gerade mal selbst ausprobiert, und kann Deine Ergenisse leider auch nur bestätigen. PBXUser.VoicemailEMailAddress und PBXConfig.PBXUser.EMailAddress liefern beide die EMail Adresse zurück die der aktuelle Skriptbenutzer in seiner Standard Voicemail konfiguriert hat. Letzteres interpretriere ich persönlich als Bug, der da allerdings schon seit 14 1/2 Jahren (seit dem es das PBXConfig Objekt gibt) so implementiert ist. Ich glaube nicht, dass das geändert wird, weil dann im Zweifelsfall viele Skripte auf die Nase fallen, die dann an der Stelle plötzlich ein anderes als das bisherige Ergebnis zurück geliefert bekommen. Link to comment Share on other sites More sharing options...
Most Valued User Mathias Gindler Posted October 14, 2019 Most Valued User #9 Share Posted October 14, 2019 Jetzt bin ich fast am Ziel, scheitere aber gerade noch an oPBXConfig.GetUserByAddress(xxxx) 😞 Wenn ich für xxxx eine (Gruppen-)Durchwahl, Name etc. verwende, bekomme ich genau das, was ich brauche. Aber ich stelle mich zu doof an, PBXUser.EMailAddress für den aktuellen/eigenen Benutzer zu bekommen. Ich glaub, ich hab hier irgendwo einen Denkfehler oder Knoten im Hirn... Link to comment Share on other sites More sharing options...
Tom Wellige Posted October 14, 2019 #10 Share Posted October 14, 2019 In meiner vorherigen Auflistung hatte ich PBXConfig.PBXUser.EMailAddress verwendet. Das ist so natürlich noch nicht richtig, sondern sollte nur darauf hindeuten, dass das der Wert ist, den man über PBXConfig.GetUserByAddress zurück bekommt. dim oUsers set oUsers = g_PBXConfig.GetUserByAddress("TestUser") dim oUser for Each oUser in oUsers PBXScript.OutputTrace "PBXConfig.PBXUser.EMailAddress = " & oUser.EMailAddress next Aber wie gesagt, auch dort bekommst Du die EMail Adresse zurück, die in der Standard Voicemail konfiguriert ist. Link to comment Share on other sites More sharing options...
Most Valued User Mathias Gindler Posted October 14, 2019 Most Valued User #11 Share Posted October 14, 2019 Hallo Tom, genau so weit bin ich. Aber ich möchte halt nicht "Testuser" fest codiert drinstehen haben, sondern den User, dem das Script gehört. Hintergrund ist, dass ich dieses Skript auf viele User verteilen und dabei nicht in den Code eingreifen will. Also im Prinzip GetUserByAddress(<meineEigeneID>) Link to comment Share on other sites More sharing options...
Tom Wellige Posted October 14, 2019 #12 Share Posted October 14, 2019 GetUserByAddress (PBXUser.Name) Das bringt Dir aber nichts, da Du die gleiche EMail Adresse wie bei PBXUser.VoicemailEMailAddress zurück geliefert bekommst. Link to comment Share on other sites More sharing options...
Most Valued User Mathias Gindler Posted October 14, 2019 Most Valued User #13 Share Posted October 14, 2019 Hallo Tom, doch, bringt mir was - ich bin am Ziel. Ich hatte es vorher mit GetUserByAddress(PBXUser.UserID) versucht, das hat nicht funktioniert. Dass die richtige Mail-Adresse in dbo.Users steht, muss ich halt manuell bzw. über SQL sicherstellen und kann's nicht über die Administration auf einen Blick prüfen, aber das ist verschmerzbar. Jetzt kann ich mein ECR auf alle User ausrollen und muss nix mehr individuell anpassen. You made my day - Vielen Dank 🙂 Link to comment Share on other sites More sharing options...
Tom Wellige Posted October 14, 2019 #14 Share Posted October 14, 2019 1 minute ago, Mathias Gindler said: You made my day - Vielen Dank 🙂 Gern geschehen! Aber was hindert Dich daran direkt PBXUser.VoicemailEMailAddress zu verwenden? Das liefert Dir doch das exakt gleiche Ergebnis. Link to comment Share on other sites More sharing options...
Most Valued User Mathias Gindler Posted October 14, 2019 Most Valued User #15 Share Posted October 14, 2019 8 minutes ago, Tom Wellige said: Gern geschehen! Aber was hindert Dich daran direkt PBXUser.VoicemailEMailAddress zu verwenden? Das liefert Dir doch das exakt gleiche Ergebnis. Weil's zu einfach wäre 🙂 Meine ersten Versuche, einfach PBXUser.EMailAddress im Voicemail-Block zu verwenden, hatten zu Fehlermeldungen geführt (Laufzeitfehler) und ich habe deshalb nach anderen Wegen gesucht. Auf unserem eigenen System (v11.50) geht's sowohl mit PBXUser.EMailAddress als auch mit PBXUser.VoicemailEMailAddress. Auf dem Kundensystem nur mit PBXUser.VoicemailEMailAddress (ebenfalls v11.50) Ich kann's mir nicht erklären, aber jetzt hab ich einen Stand, mit dem ich leben kann 🙂 Link to comment Share on other sites More sharing options...
Tom Wellige Posted October 14, 2019 #16 Share Posted October 14, 2019 Alles klar, dann viel Spass/Erfolg mit dem Ansatz! Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now