Kontakt aus externer DB bei eingehendem Anruf

siqu

Forum User
Mitglied seit
8. Juli 2020
Beiträge
7
Hallo,

ich brauch dazu Hilfe und verstehe offenbar irgendwas nicht richtig bzw. hab etwas vergessen.

Was ich will: Anruf kommt rein > Nummer nicht bekannt > Abfrage externe DB > Name im Display des angerufenen Kollegen.

Anleitung genutzt: https://www.3cx.com/docs/sql-database-pbx-integration/
"Contact Synchronization – Inbound calls from external numbers trigger a contact lookup in your database, and contact details are added to 3CX Contacts. This way, the caller name is automatically shown in your phone display when you receive the call." <-- Der letzte Satz sagt genau das was ich will. Speichern will ich die Nummer eigentlich nicht.

Ergebnis nach dem TEST Button:
"CRM-integration ist korrekt, jedoch konnte die Rufnummer keinem Kontakt zugeordnet werden bitte überprüfen sie das Fehlerprotokoll auf bisher unerkannte Probleme und Warnungen und verwenden sie einen andere Rufnummer."
"3cx crm integration is working ok but contact number does not exist. Check log for more info or try different number."
Darunter stehen genau die Werte aus der Datenbank die ich haben will, eine ID, Vorname und Nachname, auch entsprechend zugeordnet.
Also war der Vorgang eigentlich Erfolgreich.
Diesen Vorgang kann ich auch im Log sehen.

Warum diese Fehlermeldung? Es ist klar, dass die Nummer nicht zugeordnet werden kann, deswegen suche ich sie ja.
Warum erfolgt diese Abfrage nicht, wenn jemand anruft? Denn der Name wird nicht im Display angezeigt. und es ist auch keine Abfrage im Log zu sehen.

Contact URL prefix and suffix. Sind frei, da ich nicht verstehe was ich da eintragen soll.

Aus dem 3cxManagementConsole.log

2020/08/21 15:19:47.834|726|0023|Dbg|Unknown path element: companyname. Null value is returned.
2020/08/21 15:19:47.834|726|0023|Dbg|Unknown path element: email. Null value is returned.
2020/08/21 15:19:47.834|726|0023|Dbg|Unknown path element: phonemobile. Null value is returned.
2020/08/21 15:19:47.834|726|0023|Dbg|Unknown path element: phonemobile2. Null value is returned.
2020/08/21 15:19:47.834|726|0023|Dbg|Unknown path element: phonehome. Null value is returned.
2020/08/21 15:19:47.834|726|0023|Dbg|Unknown path element: phonehome2. Null value is returned.
2020/08/21 15:19:47.834|726|0023|Dbg|Unknown path element: phonebusiness. Null value is returned.
2020/08/21 15:19:47.834|726|0023|Dbg|Unknown path element: phonebusiness2. Null value is returned.
2020/08/21 15:19:47.834|726|0023|Dbg|Unknown path element: phoneother. Null value is returned.
2020/08/21 15:19:47.834|726|0023|Dbg|Unknown path element: faxbusiness. Null value is returned.
2020/08/21 15:19:47.834|726|0023|Dbg|Unknown path element: faxhome. Null value is returned.
2020/08/21 15:19:47.834|726|0023|Dbg|Unknown path element: pager. Null value is returned.
2020/08/21 15:19:47.835|726|0023|Dbg|Unknown path element: photourl. Null value is returned.
2020/08/21 15:19:47.835|726|0023|Dbg|Filtered variables for matching:
2020/08/21 15:19:47.835|726|0023|Dbg| 'PhoneBusiness' = ''
2020/08/21 15:19:47.835|726|0023|Dbg| 'PhoneHome' = ''
2020/08/21 15:19:47.835|726|0023|Dbg| 'PhoneMobile2' = ''
2020/08/21 15:19:47.835|726|0023|Dbg| 'FirstName' = 'gefundener Name'
2020/08/21 15:19:47.835|726|0023|Dbg| 'PhoneOther' = ''
2020/08/21 15:19:47.835|726|0023|Dbg| 'CompanyName' = ''
2020/08/21 15:19:47.835|726|0023|Dbg| 'PhoneHome2' = ''
2020/08/21 15:19:47.835|726|0023|Dbg| 'LastName' = 'gefundener Name'
2020/08/21 15:19:47.835|726|0023|Dbg| 'PhoneBusiness2' = ''
2020/08/21 15:19:47.835|726|0023|Dbg| 'PhotoUrl' = ''
2020/08/21 15:19:47.835|726|0023|Dbg| 'FaxHome' = ''
2020/08/21 15:19:47.835|726|0023|Dbg| 'Email' = ''
2020/08/21 15:19:47.835|726|0023|Dbg| 'ContactID' = '34489'
2020/08/21 15:19:47.835|726|0023|Dbg| 'Pager' = ''
2020/08/21 15:19:47.835|726|0023|Dbg| 'PhoneMobile' = ''
2020/08/21 15:19:47.835|726|0023|Dbg| 'FaxBusiness' = ''
2020/08/21 15:19:47.844|726|0023|Dbg|Processing scenario 'CreateContactRecord'.
2020/08/21 15:19:47.852|726|0023|Dbg|Skipping SQL database query...
2020/08/21 15:19:47.852|726|0023|Dbg|No matchings found.


Danke Ralf
 
Hallo Ralf,

an sich bekommst du mehr Info System Service Log (ausführlichen Modus)
 
2020/08/24 15:29:31.886|728|0008|Verb|Enqueue Inserted.CONNECTION.1358
2020/08/24 15:29:31.887|728|0008|Verb|Not processed. Number=XXXXXXXXXXX, connection=1358, state=Dialing
2020/08/24 15:29:31.887|728|0008|Verb|Add to processing. Number=XXXXXXXXXXX, connection=1358, state=Dialing
2020/08/24 15:29:31.887|728|0008|Info|CRM ProcessActiveConnections(). Attached entries to connection:
2020/08/24 15:29:31.887|728|0008|Verb|CRM: LocalMatches=. Number=XXXXXXXXXXX, connection=1358, state=Dialing
2020/08/24 15:29:31.887|728|0008|Info|CRM: Synchronize(...) called
2020/08/24 15:29:31.887|728|0006|Verb|Dequeue Inserted.CONNECTION.1358
2020/08/24 15:29:31.887|728|0032|Info|CRM: maxConcurrency=2
2020/08/24 15:29:31.887|728|0032|Info|CRM: making request to CRM. Number=XXXXXXXXXXX
2020/08/24 15:29:31.887|728|0032|Trac|Obtaining scenario entity order for entity ''
2020/08/24 15:29:31.887|728|0032|Trac|Ordering configuration not found, using scenario entity order 0 for entity ''
2020/08/24 15:29:31.887|728|0032|Verb|Processing scenario 'Default'.
2020/08/24 15:29:31.888|728|0032|Verb|Executing SQL Query using ConnectionString 'Server=;Port=;Database=;User Id=;Password=' and Query Statement 'SELECT id as contactid, firstname, lastname FROM s_ WHERE phone LIKE REPLACE('%XXXXXXXXXXX%', '', '')'.
2020/08/24 15:29:32.033|728|0033|Verb|The result of the SQL Query Execution is
'[{"contactid":20326,"firstname":"Test_First“,“lastname“:“Test_Last“}]‘ .
2020/08/24 15:29:32.035|728|0033|Verb|Unknown path element: companyname. Null value is returned.
2020/08/24 15:29:32.035|728|0033|Verb|Unknown path element: email. Null value is returned.
2020/08/24 15:29:32.035|728|0033|Verb|Unknown path element: phonemobile. Null value is returned.
2020/08/24 15:29:32.035|728|0033|Verb|Unknown path element: phonemobile2. Null value is returned.
2020/08/24 15:29:32.035|728|0033|Verb|Unknown path element: phonehome. Null value is returned.
2020/08/24 15:29:32.035|728|0033|Verb|Unknown path element: phonehome2. Null value is returned.
2020/08/24 15:29:32.035|728|0033|Verb|Unknown path element: phonebusiness. Null value is returned.
2020/08/24 15:29:32.035|728|0033|Verb|Unknown path element: phonebusiness2. Null value is returned.
2020/08/24 15:29:32.035|728|0033|Verb|Unknown path element: phoneother. Null value is returned.
2020/08/24 15:29:32.035|728|0033|Verb|Unknown path element: faxbusiness. Null value is returned.
2020/08/24 15:29:32.035|728|0033|Verb|Unknown path element: faxhome. Null value is returned.
2020/08/24 15:29:32.035|728|0033|Verb|Unknown path element: pager. Null value is returned.
2020/08/24 15:29:32.035|728|0033|Verb|Unknown path element: photourl. Null value is returned.
2020/08/24 15:29:32.035|728|0033|Verb|Filtered variables for matching:
2020/08/24 15:29:32.035|728|0033|Verb| 'PhoneMobile2' = ''
2020/08/24 15:29:32.035|728|0033|Verb| 'Email' = ''
2020/08/24 15:29:32.035|728|0033|Verb| 'FaxHome' = ''
2020/08/24 15:29:32.035|728|0033|Verb| 'FaxBusiness' = ''
2020/08/24 15:29:32.035|728|0033|Verb| 'PhoneHome2' = ''
2020/08/24 15:29:32.035|728|0033|Verb| 'LastName' = 'Test_Last'
2020/08/24 15:29:32.035|728|0033|Verb| 'ContactID' = '20326'
2020/08/24 15:29:32.035|728|0033|Verb| 'PhoneBusiness2' = ''
2020/08/24 15:29:32.035|728|0033|Verb| 'PhoneBusiness' = ''
2020/08/24 15:29:32.035|728|0033|Verb| 'PhoneMobile' = ''
2020/08/24 15:29:32.035|728|0033|Verb| 'CompanyName' = ''
2020/08/24 15:29:32.035|728|0033|Verb| 'Pager' = ''
2020/08/24 15:29:32.035|728|0033|Verb| 'PhoneOther' = ''
2020/08/24 15:29:32.035|728|0033|Verb| 'PhotoUrl' = ''
2020/08/24 15:29:32.035|728|0033|Verb| 'FirstName' = 'Test_First'
2020/08/24 15:29:32.035|728|0033|Verb| 'PhoneHome' = ''
2020/08/24 15:29:32.036|728|0033|Verb|Processing scenario 'CreateContactRecord'.
2020/08/24 15:29:32.036|728|0033|Verb|Skipping SQL database query...
2020/08/24 15:29:32.036|728|0033|Verb|No matchings found.
2020/08/24 15:29:32.036|728|0033|Verb|Removed from processing. Number=XXXXXXXXXXX
2020/08/24 15:29:32.036|728|0033|Info|CRM: processing of XXXXXXXXXXX has been finished
2020/08/24 15:29:32.165|728|0008|Verb|Enqueue Inserted.CONNECTION.1359
2020/08/24 15:29:32.165|728|0006|Verb|Dequeue Inserted.CONNECTION.1359
2020/08/24 15:29:32.215|728|0008|Verb|Enqueue Updated.CONNECTION.1359
2020/08/24 15:29:32.215|728|0006|Verb|Dequeue Updated.CONNECTION.1359
2020/08/24 15:29:32.416|728|0008|Verb|Enqueue Updated.CONNECTION.1358
2020/08/24 15:29:32.416|728|0006|Verb|Dequeue Updated.CONNECTION.1358
2020/08/24 15:29:32.419|728|0008|Verb|Enqueue Updated.CONNECTION.1359
2020/08/24 15:29:32.419|728|0006|Verb|Dequeue Updated.CONNECTION.1359
2020/08/24 15:29:32.464|728|0008|Verb|Enqueue Updated.CONNECTION.1359
2020/08/24 15:29:32.464|728|0006|Verb|Dequeue Updated.CONNECTION.1359
2020/08/24 15:29:33.064|728|0008|Verb|Enqueue Inserted.CONNECTION.1361
2020/08/24 15:29:33.064|728|0006|Verb|Dequeue Inserted.CONNECTION.1361
2020/08/24 15:29:33.318|728|0008|Verb|Enqueue Updated.REGISTRATION.65
2020/08/24 15:29:33.319|728|0006|Verb|Dequeue Updated.REGISTRATION.65
2020/08/24 15:29:34.566|728|0008|Verb|Enqueue Updated.REGISTRATION.317
2020/08/24 15:29:34.566|728|0006|Verb|Dequeue Updated.REGISTRATION.317
2020/08/24 15:29:36.134|728|0008|Verb|Enqueue Updated.REGISTRATION.67
2020/08/24 15:29:36.134|728|0006|Verb|Dequeue Updated.REGISTRATION.67
2020/08/24 15:29:36.499|728|0008|Verb|Enqueue Deleted.CONNECTION.1358
2020/08/24 15:29:36.499|728|0006|Verb|Dequeue Deleted.CONNECTION.1358
2020/08/24 15:29:36.504|728|0008|Verb|Enqueue Deleted.CONNECTION.1359
2020/08/24 15:29:36.504|728|0006|Verb|Dequeue Deleted.CONNECTION.1359
2020/08/24 15:29:36.506|728|0008|Verb|Enqueue Deleted.CONNECTION.1361
2020/08/24 15:29:36.506|728|0006|Verb|Dequeue Deleted.CONNECTION.1361
2020/08/24 15:29:36.960|728|0020|Trac|CHR: Receiver.OnReadyToRead()
2020/08/24 15:29:36.960|728|0020|Trac|CHR: _sock.Receive == 4
2020/08/24 15:29:36.960|728|0020|Trac|CHR: Received 2073 out of 2073 bytes
2020/08/24 15:29:36.960|728|0020|Trac|CHR: callOnPacketReceived()
2020/08/24 15:29:36.960|728|0020|Trac|CHR: Received 2073 bytes, start parsing
2020/08/24 15:29:36.961|728|0020|Verb|CHR: Adding event: 2020-08-24 15:29:31.883|IncomingCall|0000017420A8DDE9_193|b733393bf103/Participant DN.10001/Line dn-name='+XXXXXXXXXXX' epname='XXXXXXXXXXX@(Ln.10001@Placetel)'
>b733393bf103/Participant DN.10001/Line dn-name='+XXXXXXXXXXX' epname='XXXXXXXXXXX@(Ln.10001@Placetel)'
did_number=YYYYYYYYYYY
disp_name=+49 XXXXXXXXXXX
number=XXXXXXXXXXX
sip.contact=<sip:+XXXXXXXXXXX@IP:9041>
sip.from="+XXXXXXXXXXX" <sip:[email protected]>;tag=as0232b0fa
sip.rl_uri=sip:49YYYYYYYYYY@IP:5060;rinstance=4fefdfeb771c5547
sip.src_addr=IP: Port
sip.to=<sip:[email protected]:5060>
sip.user_ag=PlacetelPBX
target=incoming_to_crm.Main

2020/08/24 15:29:36.962|728|0020|Verb|CHR: Adding event: 2020-08-24 15:29:31.884|TargetAdded|0000017420A8DDE9_193|aa6c7e61ba4d/Target DN.incoming_to_crm.Main/ServiceCall dn-name='' epname='Ext.incoming_to_crm.Main'
>aa6c7e61ba4d/Target DN.incoming_to_crm.Main/ServiceCall dn-name='' epname='Ext.incoming_to_crm.Main'
ep.dialing=
ep.originator.caller_num=
ep.originator.dial=
orig.dest=incoming_to_crm.Main
orig.party.id=b733393bf103

2020/08/24 15:29:36.962|728|0020|Verb|CHR: Adding event: 2020-08-24 15:29:32.409|RouteConnected|0000017420A8DDE9_193|1a115a10e949/Route DN.incoming_to_crm.Main/ServiceCall dn-name='' epname='Ext.incoming_to_crm.Main'
>1a115a10e949/Route DN.incoming_to_crm.Main/ServiceCall dn-name='' epname='Ext.incoming_to_crm.Main'
ep.contact=sip:[email protected]:5483;rinstance=a4f10326254a8352
ep.dialing=
ep.disp_name=+XXXXXXXXXXX
ep.originator.caller_num=
ep.originator.dial=
ep.to=
orig.party.id=b733393bf103
target.party.id=aa6c7e61ba4d
target.party.type=Target

2020/08/24 15:29:36.963|728|0020|Verb|CHR: Adding event: 2020-08-24 15:29:32.924|TargetAdded|0000017420A8DDE9_193|fea5a52e0ac2/Target DN.001/Extension dn-name='Name_intern' epname='Ext.001'
>fea5a52e0ac2/Target DN.001/Extension dn-name='Name_intern‘ epname='Ext.001'
ep.dialing=
ep.originator.caller_num=
ep.originator.dial=
orig.dest=001
orig.party.id=b733393bf103

2020/08/24 15:29:36.963|728|0020|Verb|CHR: Adding event: 2020-08-24 15:29:36.501|RouteFailed|0000017420A8DDE9_193|3f6c0b7d4850/Route DN.001/Extension dn-name='Name_intern' epname='Ext.001' [Cancelled]
>3f6c0b7d4850/Route DN.001/Extension dn-name='Name_intern' epname='Ext.001' [Cancelled]
ep.contact=sip:001@IP:5060
ep.disp_name=+XXXXXXXXXXX
ep.to=
target.party.id=fea5a52e0ac2
target.party.type=Target

2020/08/24 15:29:36.963|728|0020|Verb|CHR: Adding event: 2020-08-24 15:29:36.501|PartyRemoved|0000017420A8DDE9_193|b733393bf103/None
>b733393bf103/None

2020/08/24 15:29:36.963|728|0020|Verb|CHR: Adding event: 2020-08-24 15:29:36.508|PartyRemoved|0000017420A8DDE9_193|1a115a10e949/None
>1a115a10e949/None

2020/08/24 15:29:36.963|728|0020|Verb|CHR: Adding event: 2020-08-24 15:29:36.510|PartyRemoved|0000017420A8DDE9_193|3f6c0b7d4850/None
>3f6c0b7d4850/None

2020/08/24 15:29:36.963|728|0020|Verb|CHR: Adding event: 2020-08-24 15:29:36.960|Disconnected|0000017420A8DDE9_193|Party.???
>Party.???
replaced_by.chid=

2020/08/24 15:29:36.964|728|0020|Trac|CHR: Saving joined call:
2020/08/24 15:29:36.964|728|0020|Trac|CHR: Executing SQL: INSERT into cl_calls (id,start_time,end_time,is_answered,ringing_dur,talking_dur)
VALUES (DEFAULT,'2020-08-24 13:29:31','2020-08-24 13:29:36',FALSE,'00:00:00.52629','00:00:00.514408')
RETURNING id
2020/08/24 15:29:36.965|728|0020|Trac|CHR: * Participant b733393bf103/Participant DN.10001/Line dn-name='+XXXXXXXXXXX' epname='XXXXXXXXXXX'; answered at 24.08.2020 15:29:32
2020/08/24 15:29:36.965|728|0020|Trac|CHR: Executing SQL: INSERT into cl_party_info (id,dn_type,dn,caller_number,display_name,dn_class,firstlastname,did_number)
VALUES (DEFAULT,1,'10001','XXXXXXXXXXX','+XXXXXXXXXXX',0,'','0YYYYYYYYYY')
RETURNING id
2020/08/24 15:29:36.966|728|0020|Trac|CHR: Executing SQL: INSERT into cl_participants (id,call_id,info_id,role,is_inbound,end_status,forward_reason,failure_reason,start_time,answer_time,end_time,billing_group)
VALUES (DEFAULT,8326,36790,1,TRUE,1,0,1,'2020-08-24 13:29:31','2020-08-24 13:29:32','2020-08-24 13:29:36','')
RETURNING id
2020/08/24 15:29:36.967|728|0020|Trac|CHR: * Target aa6c7e61ba4d/Target DN.incoming_to_crm.Main/ServiceCall dn-name='' epname='Ext.incoming_to_crm.Main'; originated by b733393bf103
2020/08/24 15:29:36.967|728|0020|Trac|CHR: Executing SQL: INSERT into cl_party_info (id,dn_type,dn,caller_number,display_name,dn_class,firstlastname,did_number)
VALUES (DEFAULT,14,'incoming_to_crm.Main','Ext.incoming_to_crm.Main','',0,'','')
RETURNING id
2020/08/24 15:29:36.968|728|0033|Trac|CHR: Executing SQL: INSERT into cl_participants (id,call_id,info_id,role,is_inbound,end_status,forward_reason,failure_reason,start_time,end_time)
VALUES (DEFAULT,8326,36791,2,FALSE,0,0,1,'2020-08-24 13:29:31','2020-08-24 13:29:32')
RETURNING id
2020/08/24 15:29:36.968|728|0033|Trac|CHR: * Participant 1a115a10e949/Participant DN.incoming_to_crm.Main/ServiceCall dn-name='' epname='Ext.incoming_to_crm.Main'; answered at 24.08.2020 15:29:32
2020/08/24 15:29:36.968|728|0033|Trac|CHR: Executing SQL: INSERT into cl_party_info (id,dn_type,dn,caller_number,display_name,dn_class,firstlastname,did_number)
VALUES (DEFAULT,14,'incoming_to_crm.Main','Ext.incoming_to_crm.Main','',0,'','')
RETURNING id
2020/08/24 15:29:36.969|728|0033|Trac|CHR: Executing SQL: INSERT into cl_participants (id,call_id,info_id,role,is_inbound,end_status,forward_reason,failure_reason,start_time,answer_time,end_time,billing_group)
VALUES (DEFAULT,8326,36792,1,FALSE,1,0,1,'2020-08-24 13:29:32','2020-08-24 13:29:32','2020-08-24 13:29:36','')
RETURNING id
2020/08/24 15:29:36.970|728|0033|Trac|CHR: * Target fea5a52e0ac2/Target DN.001/Extension dn-name='Name_intern' epname='Ext.001' [Cancelled]; originated by b733393bf103
2020/08/24 15:29:36.970|728|0033|Trac|CHR: Executing SQL: INSERT into cl_party_info (id,dn_type,dn,caller_number,display_name,dn_class,firstlastname,did_number)
VALUES (DEFAULT,0,'001','Ext.001','Name_intern',0,'','')
RETURNING id
2020/08/24 15:29:36.970|728|0033|Trac|CHR: Executing SQL: INSERT into cl_participants (id,call_id,info_id,role,is_inbound,end_status,forward_reason,failure_reason,start_time,end_time)
VALUES (DEFAULT,8326,36793,2,FALSE,2,0,19,'2020-08-24 13:29:32','2020-08-24 13:29:36')
RETURNING id
2020/08/24 15:29:36.971|728|0033|Trac|CHR: Saving Pbx call 0000017420A8DDE9_193
2020/08/24 15:29:36.971|728|0033|Info|CHR: #1: Seg[1/#1] b733393bf103(XXXXXXXXXXX)=>aa6c7e61ba4d(Ext.incoming_to_crm.Main) (15:29:31.883..15:29:32.409) Ringing Connected
2020/08/24 15:29:36.971|728|0033|Trac|CHR: Executing SQL: INSERT into cl_segments (id,call_id,seq_order,seq_group,src_part_id,dst_part_id,start_time,end_time,type,action_id)
VALUES (DEFAULT,8326,1,1,36792,36793,'2020-08-24 13:29:31','2020-08-24 13:29:32',1,1)
RETURNING id
2020/08/24 15:29:36.972|728|0033|Info|CHR: #2: Seg[1/#2] b733393bf103(XXXXXXXXXXX)=>1a115a10e949(Ext.incoming_to_crm.Main) (15:29:32.409..15:29:32.924) Talking FailedBXferOfSrc
2020/08/24 15:29:36.972|728|0033|Trac|CHR: Executing SQL: INSERT into cl_segments (id,call_id,seq_order,seq_group,src_part_id,dst_part_id,start_time,end_time,type,action_id)
VALUES (DEFAULT,8326,2,1,36792,36794,'2020-08-24 13:29:32','2020-08-24 13:29:32',2,7)
RETURNING id
2020/08/24 15:29:36.972|728|0033|Info|CHR: #3: Seg[1/#3] b733393bf103(XXXXXXXXXXX)=>fea5a52e0ac2(Ext.001) (15:29:32.924..15:29:36.501) Ringing Failed_Cancelled
2020/08/24 15:29:36.973|728|0033|Trac|CHR: Executing SQL: INSERT into cl_segments (id,call_id,seq_order,seq_group,src_part_id,dst_part_id,start_time,end_time,type,action_id)
VALUES (DEFAULT,8326,3,1,36792,36795,'2020-08-24 13:29:32','2020-08-24 13:29:36',1,418)
RETURNING id
2020/08/24 15:29:36.973|728|0033|Trac|CHR: Executing SQL: INSERT into myphone_callhistory_v14 (idmpch14,call_id,calltype,dnowner,party_dn,party_dntype,party_name,party_callerid,start_time,end_time,end_status,end_status_hint)
VALUES (DEFAULT,8326,1,'001','10001',128,'+XXXXXXXXXXX','XXXXXXXXXXX','2020-08-24 13:29:32','2020-08-24 13:29:36',5,3)
RETURNING idmpch14
2020/08/24 15:29:36.975|728|0033|Info|CHReceiver_NewMissedCall called: NewMissedCallArgs: DnOwner=001, PartyCallerId=XXXXXXXXXXX, PartyName=+XXXXXXXXXXX, StartTime=24.08.2020 13:29:32, EndTime=24.08.2020 13:29:36
2020/08/24 15:29:36.977|728|0008|Verb|Enqueue Updated.S_MISSEDCALLSSTAT.216
2020/08/24 15:29:36.977|728|0006|Verb|Dequeue Updated.S_MISSEDCALLSSTAT.216
2020/08/24 15:29:36.978|728|0032|Info|CRM: about to report 1 calls at maxConcurrency 1
2020/08/24 15:29:36.978|728|0032|Info|Call not reported because contact could not be found for number: XXXXXXXXXXX
2020/08/24 15:29:36.982|728|0008|Verb|Enqueue Updated.PARAMETER.460
2020/08/24 15:29:36.982|728|0006|Verb|Dequeue Updated.PARAMETER.460
2020/08/24 15:29:40.396|728|0008|Verb|Enqueue Updated.REGISTRATION.70
2020/08/24 15:29:40.396|728|0006|Verb|Dequeue Updated.REGISTRATION.70
2020/08/24 15:29:43.166|728|0008|Verb|Enqueue Updated.REGISTRATION.74
2020/08/24 15:29:43.166|728|0006|Verb|Dequeue Updated.REGISTRATION.74
2020/08/24 15:29:44.404|728|0008|Verb|Enqueue Updated.PARAMETER.448
2020/08/24 15:29:44.404|728|0006|Verb|Dequeue Updated.PARAMETER.448
2020/08/24 15:29:44.410|728|0008|Verb|Enqueue Updated.PARAMETER.449
2020/08/24 15:29:44.410|728|0006|Verb|Dequeue Updated.PARAMETER.449
2020/08/24 15:29:49.231|728|0008|Verb|Enqueue Updated.REGISTRATION.1119
2020/08/24 15:29:49.231|728|0006|Verb|Dequeue Updated.REGISTRATION.1119
 
Der contact lookup SQL benötigt Informations Felder.

https://www.3cx.com/docs/sql-database-pbx-integration/

  1. Enter the Lookup SQL Statement. This must be a SELECT statement returning the following case-sensitive columns: contactid,firstname,lastname,comanyname,email,phonemobile,phonemobile2,phonehome,phonehome2, honebusiness, phonebusiness2, phoneother, faxbusiness, faxhome, pager, photourl.


    . If your database table has different column names, you can change the name returned as follows:
SELECT id as contactid, first_name as firstname, last_name as lastname, email as email, phone as phonebusiness, mobile as phonemobile, fax as faxbusiness FROM contacts WHERE phone LIKE '%[Number]%' or mobile like '%[Number]%' or fax LIKE '%[Number]%'


Wenn du auf der Anlage navigierst unter Dashboard->Einstellungen->CRM Integration->Test Button verwendest bekommst du eine Fehlemeldung zurück?
 
Ich bekomme ja die Werte die ich haben möchte: Name und Vorname.
Den Rest hab ich nicht und will ich auch nicht.

Fehlermeldung:
"CRM-integration ist korrekt, jedoch konnte die Rufnummer keinem Kontakt zugeordnet werden bitte überprüfen sie das Fehlerprotokoll auf bisher unerkannte Probleme und Warnungen und verwenden sie einen andere Rufnummer."
"3cx crm integration is working ok but contact number does not exist. Check log for more info or try different number."

Schrieb ich ja schon im Eingangspost.
 
das Lookup Statement in das Mapping einbauen.

Prüfe auch dass unter Dashboard->Erweitert->Kontakte-> Optionen -> Übereinstimmung mit mind. X Zeichen verwenden

Z.B 6 Ziffern
 
Das verstehe ich nicht.
DieNummer von dem Anrufer steht nicht im 3CX, deswegen soll in einer externen DB nachgeschaut werden und der Name im Display des Empfängers angezeigt werden.

So lese ich das auch aus der Anleitung heraus. Wozu dann ein Mapping. Es gibt nix zu mappen.
 
  • Like
Reaktionen: Niklas-KGmbH
Ich habe genau das gleiche Problem. Was ich möchte:
Anrufer ruft an -> CRM wird nach Nummer durchsucht, Name kommt aus der API zurück und wird auf dem Telefondisplay angezeigt.
Ich bin derzeit genau so weit wie @siqu, wenn ich die CRM Integration teste, kommt ein JSON String mit dem richtigen Namen etc. zurück aber 3CX meldet dass es nicht zugeordnet werden konnte. Ich möchte den Kontakt nicht zuordnen oder anlegen, lediglich den Namen im Display anzeigen lassen. Da wir ein Onlineshop sind mit vielen verschiedenen Kunden möchten wir die Kontakte nicht alle in 3CX anlegen sondern nur den Namen anzeigen lassen.
Wie geht das genau in 3CX?
 
Ich habe genau das gleiche Problem. Was ich möchte:
Anrufer ruft an -> CRM wird nach Nummer durchsucht, Name kommt aus der API zurück und wird auf dem Telefondisplay angezeigt.
Ich bin derzeit genau so weit wie @siqu, wenn ich die CRM Integration teste, kommt ein JSON String mit dem richtigen Namen etc. zurück aber 3CX meldet dass es nicht zugeordnet werden konnte. Ich möchte den Kontakt nicht zuordnen oder anlegen, lediglich den Namen im Display anzeigen lassen. Da wir ein Onlineshop sind mit vielen verschiedenen Kunden möchten wir die Kontakte nicht alle in 3CX anlegen sondern nur den Namen anzeigen lassen.
Wie geht das genau in 3CX?

Dieses Verfahren wird zu Zeit nicht unterstützt. Die anzuzeigenden Namen müssen in der 3CX beim Anruf hinterlegt sein.
 
Die Supporter hier vom 3CX sind deutlich schlechter im Bilde als die die man für ein Ticket bekommt.
Bei der Abfrage die ich gemacht habe, habe ich "vergessen" (kenne ich ja offensichtlich und will nur den Namen dazu) aus der DB auch die Telefonnummer abzufragen. Ohne die, kann es nicht zugeordnet werden. Leider steht das nicht in der Anleitung und konnte der avraammich_3CX aus meinem Problem/System Service Log (da steht die Abfrage drin) auch nicht erkennen. Aber der hat ja schon nicht die Fehlermeldung ganz am Anfang gesehen, aus der das für ihn auch heraus hätte sichtbar sein müssen.
In der Doku müsste halt stehen was Pflichtfelder sind.

Meine Abfrage funktioniert dann, danach wird der Kontakt gespeichert.
Gleichzeitig ist er schon im Popup zu sehen auf dem Display erst beim zweiten Anruf, angeblich, da warte ich auch noch auf eine Lösung.
Aber wie mbehrens schrieb, für den ersten Anruf ist es nicht vorgesehen. Ziemlich Sinnlos.
Der Kontakt wird in der letzten Spalte mit CRM versehen und mann kann alle CRM Kontakte mit einemmal löschen. Wenn das hilft.

Sobald das andere Problem gelöst ist, schreibe ich hier nochmal.
Kann aber gern in einer Woche nochmal nachgefragt werden.
 
Meine Abfrage funktioniert dann, danach wird der Kontakt gespeichert.
Gleichzeitig ist er schon im Popup zu sehen auf dem Display erst beim zweiten Anruf, angeblich, da warte ich auch noch auf eine Lösung.
Aber wie mbehrens schrieb, für den ersten Anruf ist es nicht vorgesehen. Ziemlich Sinnlos.
Der Kontakt wird in der letzten Spalte mit CRM versehen und mann kann alle CRM Kontakte mit einemmal löschen. Wenn das hilft.

Hallo,
ich habe ähnliche Probleme. Mir ist der Zusammenhang nicht ganz klar ersichtlich wann wer was wo speichert oder im "Cache" hat. Wenn der Kontakt im Telefonbuch der 3CX als CRM eingefügt ist. Wann wird er aktualisiert? Wie kann er aktualisiert werden? CRM, 3CX, Client oder?
 
Dann habe ich innerhalb kürzester Zeit 2 Datenquellen die auseinander laufen. Wenn z.B. im CRM ein Datensatz aktualisiert wird. Kannd as richtig sein? Oder habe ich einen Denkfehler bei der Anbindung vom CRM?
 

Statistik des Forums

Themen
44.751
Beiträge
233.650
Mitglieder
78.494
Neuestes Mitglied
Hans20262026