Jump to content

Problem mit der Variable PBXUser.VoicemailEMailAddress


Matthias Peter
 Share


Recommended Posts

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


  • 5 months later...

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


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


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


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


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


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


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


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


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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share


×
×
  • 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.