Dokumentation
pascom Produkt Dokumentation und Release Notes
Strukturbeispiele
Lernen Sie wie externe Daten im Connector den Systemvariablen zugeordnet werden.
Variablen in der Struktur zuordnen
Im Reiter des Connectors müssen nun die im Vorfeld definierten Variablen (Anleitung hier) den Systemvariablen der pascom Telefonanlage zugeordnet werden. Hier wird nun bestimmt, wohin der Connector die importierten Daten übergeben soll.
Berufsbezeichnung eines Benutzers im Notizfeld des pascom Telefonbuches
In folgendem Abschnitt folgen wir dem Beispiel aus der Variablen Zuordnung und üergeben die Berufsbezeichnung eines Benutzers in das pascom Telefonbuch.
Ergänzen Sie hierzu die Zeilen:
"028pho_notes" : "{{{job}}}"
in der Struktur:
{
"identity": [{
"003use_bez": "{{{displayname}}}",
"003use_name": "{{{username}}}",
"003use_pw": "{{{password}}}",
"011acc_pin": "{{{pin}}}",
"009ext_extension": "{{{phone}}}",
"016voi_email": "{{{email}}}"
,"post": {
"phonebook": [{
"028pho_bez" : "{{{displayName}}}",
"028pho_firstname" : "{{{givenName}}}",
"028pho_lastname" : "{{{surname}}}",
"028pho_email" : "{{{email}}}",
"028pho_notes" : "{{{job}}}"
}]
}
}]
}
Dadurch wird der Wert der Variablen job an die Systemvariable 028pho_notes übergeben und befüllt dadurch das Notizfeld im Telefonbuch eines Benutzers mit der Berufsbezeichnung.
Mit dieser Art des Mappings lassen sich importierte Daten individuell Zuordnen.
Rollenzuweisung
Um Benutzer direkt beim Import einer Rolle zuweisen zu können muss die Struktur um die Rollenzuweisung erweitert werden. Sie können die zugehörigen Benutzerrollen aus einer Variable memberOf auslesen.
Fügen Sie hierzu im Reiter folgende Zeile durch ein:
Variable: rollen
Optionaler Filter:
//Fill in the roles you want to filter (rolesToFilter) like this:
//array('Rolle1', 'Rolle2');
$rolesToFilter=array();
$output=array();
if(empty($rolesToFilter))
return $output;
$src = $row['memberOf'];
if(!is_array($src)) {
$src = array($src);
}
foreach($src as $group) {
$list = explode(',', str_replace(array('[', ']', 'CN=', 'DC=', '"'), '', $group));
foreach($list as $elem) {
if(in_array($elem, $rolesToFilter)) {
$output[]=$elem;
}
}
}
return $output;
Das Feld “rollen” entspricht einer Liste an Rollen, denen der Benutzer zugeordnet werden soll. Über das Benutzerfeld “memberOf” können Sie die Rollen in pascom bestimmen. Durch diese Zeile kann der Connector die Mitgliedszuweisung auslesen und in dem Benutzerrollen pascom Feld zuordnen.
Tragen Sie in der PHP-Variable rolesToFilter
im Code des Quelle Feldes, die Rollenbezeichnungen ein, nach denen der Connector suchen soll. Alle anderen Mitgliedszuweisungen werden ignoriert.
Beispiel: array('Rolle1', 'Rolle2');
Ergänzen Sie hierzu die Zeilen:
{{#if rollen}}
,"user_roles": [
{{#each rollen}}
"{{this}}",
{{/each}}
"All Users"
],
{{/if}}
in der Struktur:
{
"identity": [{
"003use_bez": "{{{displayname}}}",
"003use_name": "{{{username}}}",
"003use_auth_method": "EXTERN",
"011acc_pin": "{{{pin}}}",
"009ext_extension": "{{{phone}}}",
"016voi_email": "{{{email}}}",
{{#if rollen}}
,"user_roles": [
{{#each rollen}}
"{{this}}",
{{/each}}
"default"
],
{{/if}}
"post": {
"phonebook": [{
"028pho_bez": "{{{displayname}}}",
"028pho_firstname": "{{{givenname}}}",
"028pho_lastname": "{{{surname}}}",
"028pho_email": "{{{email}}}"
}]
}
}]
}
Die Rolle “default” entspricht der System-Rolle “Alle”, der alle Benutzer zugewiesen sind.
Labels importieren
pascom Labels lassen sich auch dazu nutzen zusätzliche Informationen mit im pascom Firmentelefonbuch anzuzeigen.
In diesem Beispiel möchten wir die Kundennummer des Kontakts im Label Kundennummer abspeichern. Dieses Label ist dann nicht nur im Telefonbuch sondern auch in Journaleinträgen oder diversen Anruferinformationen sichtbar.
Label anlegen
Labels legen Sie im Menü > durch Klicken auf die Schaltfläche an.
Wählen Sie , vergeben Sie den Namen Kundennummer und klicken auf .
Wenden Sie ausstehende Jobs an um das Label anzulegen.
Connector Profil anpassen
Fügen Sie hierzu im Reiter folgende Zeile durch ein:
Variable | Quelle |
---|---|
customernumber | return $row['customerNumber']; |
Durch diese Zeile speichert der Connector den Inhalt der Quellvariable “customerNumber” in der Variable “customernumber” ab.
Diese Variable muss nun unter dem Label Kundennummer pascom Feld zugeordnet werden.
Ergänzen Sie hierzu die Zeilen:
"post": {
"phonebook.phonebooklabel": [
{
"050lab_bez": "Kundennummer",
"028050pholab_value": "{{{customernumber}}}"
}
]
}
in der Struktur:
{
"phonebook": [{
"028pho_bez" : "{{{displayname}}}",
"028pho_phone" : "{{{phone}}}",
"028pho_firstname" : "{{{givenname}}}",
"028pho_lastname" : "{{{surname}}}",
"028pho_organisation" : "{{{organisation}}}",
"028pho_email" : "{{{email}}}",
"028pho_mobile" : "{{{mobile}}}",
"028pho_homephone" : "{{{homephone}}}",
"028pho_fax" : "{{{fax}}}",
"post": {
"phonebook.phonebooklabel": [
{
"050lab_bez": "Kundennummer",
"028050pholab_value": "{{{customernumber}}}"
}
]
}
}]
}
Dadurch wird jedem Kontakt mit eingetragener Kundennummer das Label Kundennummer mit dem entsprechenden Wert zugeteilt.
Ergebnis prüfen
Label-Zuordnungen werden NICHT unter “Speichern und Simulieren” mit angezeigt
Prüfen Sie die erfolgreiche Zuordnung des Labels in der pascom Web-UI unter > indem Sie einen ensprechenden Kontakt und die Zuordnung im Reiter prüfen. Alternativ können Sie auch das Firmentelefonbuch im pascom Client einsehen.
Softphone dem Benutzer hinzufügen
Um Benutzer direkt beim Import ein Softphone zuweisen zu können muss die Struktur um die Endgerätezuweisung erweitert werden. Einige Connectoren bringen bereits eine implementierte Lösung mit, welche man direkt in den Basiseinstellungen nutzen kann.
Fügen Sie hierzu im Reiter folgende Zeile durch ein:
Variable: createSoftphone
- Wichtig: Der Wert der Variable createSoftphone muss in der Quellvariable dem Wert “ja” entsprechen.
Ergänzen Sie hierzu die Zeilen:
{{#if createSoftphone}}
,"ipdevice.mdsoftphone": [{
"010dev_bez": "{{username}}_softphone"
}]
in der Struktur:
{
"identity": [{
"003use_bez": "{{{displayname}}}",
"003use_name": "{{{username}}}",
"003use_auth_method": "EXTERN",
"011acc_pin": "{{{pin}}}",
"009ext_extension": "{{{phone}}}",
"016voi_email": "{{{email}}}",
{{#if rollen}}
,"user_roles": [
{{#each rollen}}
"{{this}}",
{{/each}}
"default"
],
{{/if}}
"post": {
"phonebook": [{
"028pho_bez": "{{{displayname}}}",
"028pho_firstname": "{{{givenname}}}",
"028pho_lastname": "{{{surname}}}",
"028pho_email": "{{{email}}}"
}]
}
}]
{{#if createSoftphone}}
,"ipdevice.mdsoftphone": [{
"010dev_bez": "{{username}}_softphone"
}]
}
Dadurch wird jedem Benutzer mit eingetragenem Wert “ja” in der createSoftphone Variable ein Softphone zugeteilt.
Aktionsvorlage zuweisen bei Benutzerimport
Um Benutzer direkt beim Import eine Aktionsvorlage zuweisen zu können muss die Identity-Struktur erweitert werden. Diese Funktion beschränkt sich aktuell nur auf den Ruftyp - Nachher der Aktionsvorlage. Dies gilt für externe sowohl für interne Telefonie.
Fügen Sie hierzu im Reiter folgende Zeile durch ein:
Variable: action_post_ext oder action_post_int
- Wichtig: Der Wert der Variable action_post_ext oder action_post_int muss in der Quellvariable dem Namen der Aktionsvorlage entsprechen. (z.B. Own Voicemailbox)
Ergänzen Sie hierzu die Zeilen:
"action_post_ext": "{{{action_post_ext}}}",
"action_post_int": "{{{action_post_int}}}",
in der Struktur:
{
"identity": [{
"003use_bez": "{{{displayname}}}",
"003use_name": "{{{username}}}",
"003use_auth_method": "EXTERN",
"011acc_pin": "{{{pin}}}",
"009ext_extension": "{{{phone}}}",
"016voi_email": "{{{email}}}",
"action_post_ext": "{{{action_post_ext}}}",
"action_post_int": "{{{action_post_int}}}",
}]
}
Dadurch wird jedem Benutzer beim Import die entsprechende Aktionsvorlage zugeteilt.
Syntaxfehler, JSON ist ungültig beheben
Es kann vorkommen, das beim Import bestimmte Zeichen wie ", :, , einen Syntaxfehler verursachen, was die JSON Datei ungültig macht. Im folgenden Beispiel wollen wir einen Wert in Anführungszeichen importieren (Foo):
{
"phonebook": [{
"028pho_bez" : "Blaa "Foo" baar test",
"028pho_phone" : "",
"028pho_firstname" : "Blaa "Foo" baar",
"028pho_lastname" : "test",
"028pho_organisation" : "",
"028pho_email" : "",
"028pho_mobile" : "",
"028pho_homephone" : "",
"028pho_fax" : "",
"011acc_id": ""
}]
}
Lösung:
Entfernen Sie bei der Variable 1 der 3 Akkoladen (geschweiften Klammern), damit der Connector die fehlerverursachenden Zeichen nicht mehr beachtet. Der Syntaxfehler sollte damit behoben sein.
{{displayname}} statt {{{displayname}}}
"post": {
"phonebook": [{
"028pho_bez": "{{displayname}}",
"028pho_firstname": "{{{givenname}}}",
"028pho_lastname": "{{{surname}}}",
"028pho_email": "{{{email}}}"
}]
}
}]