Rufnummer aus eigenem CRM

Netzhirsch

Customer
Mitglied seit
24. Februar 2020
Beiträge
17
Hallo zusammen,

ich habe mit dem 3CX CRM Template Designer eine XML-Datei erstellt, um die Namen der Kontakte aus unserem CRM zu holen.
Mein XML-Dokument sieht dabei so aus:
XML:
<?xml version="1.0"?>
<Crm xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Country="DE" Name="Hirschbuero" Version="5">
  <Number Prefix="Zeros" MaxLength="[MaxLengthNumber]" />
  <Connection MaxConcurrentRequests="16" />
  <Parameters>
    <Parameter Name="UserName" Type="String" Parent="General Configuration" Editor="String" Title="Username:" />
    <Parameter Name="Password" Type="Password" Parent="General Configuration" Editor="String" Title="Password:" />
    <Parameter Name="MaxLengthNumber" Type="String" Parent="General Configuration" Editor="String" Title="Maximum number of digits to keep in the phone number:" Default="20" />
  </Parameters>
  <Authentication Type="Basic">
    <Value>[UserName]:[Password]</Value>
  </Authentication>
  <Scenarios>
    <Scenario Type="REST">
      <Request Url="https://[UserName]:[Password]@example.de/3cx/kontakt/suchen/[Number]" MessagePasses="0" RequestEncoding="UrlEncoded" RequestType="Get" ResponseType="Json" />
      <Rules>
        <Rule Type="Any">kontakt.id</Rule>
      </Rules>
      <Variables>
        <Variable Name="ContactID" Path="kontakt.id">
          <Filter />
        </Variable>
        <Variable Name="FirstName" Path="kontakt.vorname">
          <Filter />
        </Variable>
        <Variable Name="LastName" Path="kontakt.nachname">
          <Filter />
        </Variable>
        <Variable Name="CompanyName" Path="kontakt.firma">
          <Filter />
        </Variable>
        <Variable Name="Email" Path="kontakt.email">
          <Filter />
        </Variable>
        <Variable Name="PhoneBusiness" Path="kontakt.rufnummer">
          <Filter />
        </Variable>
        <Variable Name="PhoneBusiness2" Path="kontakt.rufnummer_ansprechpartner">
          <Filter />
        </Variable>
        <Variable Name="ContactUrl" Path="kontakt.url">
          <Filter />
        </Variable>
      </Variables>
      <Outputs Next="" AllowEmpty="true">
        <Output Type="ContactID" Passes="0" Value="[ContactID]" />
        <Output Type="FirstName" Passes="0" Value="[FirstName]" />
        <Output Type="LastName" Passes="0" Value="[LastName]" />
        <Output Type="CompanyName" Passes="0" Value="[CompanyName]" />
        <Output Type="Email" Passes="0" Value="[Email]" />
        <Output Type="PhoneBusiness" Passes="0" Value="[PhoneBusiness]" />
        <Output Type="PhoneBusiness2" Passes="0" Value="[PhoneBusiness2]" />
        <Output Type="ContactUrl" Passes="0" Value="[ContactUrl]" />
      </Outputs>
    </Scenario>
  </Scenarios>
</Crm>

Auch der Test ist augenscheinlich in Ordnung (was der Hinweis im gelben Kasten bedeuten soll, wird mir jedoch nicht klar).

1774

Nun also die Frage: was mache ich falsch, bzw. wo muss ich noch etwas konfigurieren?
Und gehe ich richtig in der Annahme, dass in meinem lokalen Telefonbuch der 3CX-Anlage automatisch ein Eintrag zu dem Ergebnis des CRM angelegt wird? Das wäre wünschenswert.

Vielen Dank für die Hilfe! :)
 
Wurde die Nummer als Kontakt mit 0049... eingetragen?
Wurde die nummer vom Provider auch so an der PBX weitergeleitet?
Kannst du eventuell prüfen die Nummer mit +49 einzutragen?
 
Ich bekomme vom Webserver die Rückmeldung, dass der Link /3cx/kontakt/suchen/0049... aufgerufen wurde. Und der Webserver selbst schneidet einfach +49 und 0049 ab und ersetzt es durch eine 0.

Hier auch noch mal der direkte Aufruf am Webserver mit dem entsprechenden JSON-Ergebnis:
1775

Oder war mit der Frage gemeint, ob der Kontakt in 3CX mit 0049 eingetragen ist? Das ist nicht der Fall. Das will ich auch nicht tun müssen. Das soll automatisch passieren?! Sonst bringt mir das alles doch gar nichts?!
 
Ich bin einen großen Schritt weiter: Wenn ich die Rufnummern in unserem CRM mit einem Bindestrich trenne (z.B. 0451 - 123 45 67), dann werden die Kontakte in der Telefonanlage eingetragen. Wenn ich Sie jedoch mit einem Slash trenne (z.B. 0451 / 123 45 67), dann werden die Kontakte nicht angelegt. Entweder muss ich also die Kodierung anpassen oder es ist ein Bug in 3CX. Wie genau muss also der JSON-String aussehen, der zurückgeliefert wird?
Im anderen Forum habe ich das vorherige Problem ebenfalls geschildert, aber bisher keine Rückmeldung erhalten - wahrscheinlich versteht mein Englisch niemand. :-D
 
Ich habe mein Problem gelöst. In meiner JSON-Antwort dürfen die Slashes nicht escaped sein - Stichwort: JSON_UNESCAPED_SLASHES.
Nun werden meine Kontakte angelegt, wenn ein Anruf eines Kontakts aus meinem CRM anruft.

Nun nur noch eine letzte Frage:
Wenn ein Kontakt anruft, der noch nicht in meinem Telefonbuch ist, sehe ich die Telefonnummer und NICHT seinen Namen. Erst beim zweiten Anruf sehe ich dann seinen Namen, weil er dann im Telefonbuch ist.
Kann ich irgendwas einstellen, dass sich die Anzeige aktualisiert, sobald der Kontakt aus dem CRM geladen und im Telefonbuch gespeichert wurde? Also noch während des ersten Klingelns?
 
Vielen Dank für deine Infos!!!

Kann ich irgendwas einstellen, dass sich die Anzeige aktualisiert, sobald der Kontakt aus dem CRM geladen und im Telefonbuch gespeichert wurde? Also noch während des ersten Klingelns?
Nein, das ist leider nicht möglich.
Das verhalten was du hast ist das standard verhalten.
 

Statistik des Forums

Themen
44.753
Beiträge
233.660
Mitglieder
78.496
Neuestes Mitglied
FS-CG