3CX Phonebook ODBC & CRM Integration Error

Status
Not open for further replies.

Onur

Forum User
Joined
Jul 18, 2018
Messages
13
Reaction score
0
Hi, I'm a 3CX Pro user. My customers' phone information is in their database. I want to keep the 3CX directory constantly up to date.
1- I am writing ODBC via ODBCTEST.exe at ODBC connection and it works. But the same definition does not work when I enter the management screen.
2- I wrote RESTAPI because ODBC does not work. I did CRM integration. It works very well. But this time, every time my customer calls, more than one record is assigned to the 3CX.
 
Hello @Onur,

Answering your questions below:
1- I am writing ODBC via ODBCTEST.exe at ODBC connection and it works. But the same definition does not work when I enter the management screen.
What do you mean? The connection to the database doesn't work? Did you check the 3cxSystemService.log to see what's going on?

2- I wrote RESTAPI because ODBC does not work. I did CRM integration. It works very well. But this time, every time my customer calls, more than one record is assigned to the 3CX.
Maybe you have more than 1 record with the same phone number. Ensure that your REST API returns only 1 record per query.

Kind regards.
 
Hello @Onur,

Answering your questions below:

What do you mean? The connection to the database doesn't work? Did you check the 3cxSystemService.log to see what's going on?

Maybe you have more than 1 record with the same phone number. Ensure that your REST API returns only 1 record per query.

Kind regards.

1-
odbc.PNG


I made the ODBC definition. I have tested with ODBCTestTool over the same computer, it works.
odbc2.PNG


I saved the same information from the administration screen. But when the phone arrives, the database does not fetch information.

2-
odbc3.PNG

Yes, there is only 1 record in the customer database. And only 1 record return.

odbc4.PNG

But every time the same customer calls, more than one record is created.

----
Also, when the registered customer calls for the first time, the name appears on the status screen, but the 3cx does not appear on the phone screen. If it is found again in the 3cx phonebook directory, then it appears on the status screen and also on the 3cx phone screen. I could not solve the mistake.
----

Now I run an automated ticket system with my own solution methods. But I started to get different mistakes.
When the phone arrives, RESTAPI opens a direct customer ticket. When the agent phone is turned on, the ticket agent is assigned with the parameter. (% CallerNumber%% CallerDisplayName%)
Sometimes when you turn on the phone, you need to press the "continue" button on the 3CX phone screen. Sometimes he does not.
 
Hello @Onur,

Regarding the first issue with ODBC, please note that you can define User DSN or System DSN. When you test with the ODBC Test Tool, you're running as a normal user, so you can access both types of DSN. However, when then 3CX service executes, it does it as local system, so you can only access a System DSN. Please check if you created a User DSN or System DSN. It must be a System DSN in order to work. Also, please check the 3cxSystemService.log which will give you more details on any error that might be happening here...

Regarding the second issue with the CRM template, I think that the problem is that you're not setting the ContactUrl output parameter. This is the key for a contact retrieved from a CRM. If you don't set it, when the engine receives another call will consider the record invalid, and will fetch it again, therefore adding a new record for every call. This is very probably what's happening here. So you can very easily fix it by adding the ContactUrl output.

Also, when the registered customer calls for the first time, the name appears on the status screen, but the 3cx does not appear on the phone screen. If it is found again in the 3cx phonebook directory, then it appears on the status screen and also on the 3cx phone screen. I could not solve the mistake.
This is the normal behaviour. You need to use the 3CX Web Client to see the contact name all the times. This is because for the first call from a contact, 3CX sends the call to the agent before retrieving the contact information from the CRM. Because of this, the SIP message sent to the agent's phone doesn't contain the contact name. But it will have the name for subsequent calls. On the other side, the 3CX Web Client uses an internal protocol which lets us change the caller name after the call has been sent, so that's why you will see the contact name in the 3CX Web Client for the first call, but not on other devices.

Kind regards.
 
@edossantos
The information you give is invaluable. Thank you so much.

Hello @Onur,

Regarding the first issue with ODBC, please note that you can define User DSN or System DSN. When you test with the ODBC Test Tool, you're running as a normal user, so you can access both types of DSN. However, when then 3CX service executes, it does it as local system, so you can only access a System DSN. Please check if you created a User DSN or System DSN. It must be a System DSN in order to work. Also, please check the 3cxSystemService.log which will give you more details on any error that might be happening here...

I made the SYSTEMDNS setting for ODBC. But it did not work. I will ask you for help with this.

Regarding the second issue with the CRM template, I think that the problem is that you're not setting the ContactUrl output parameter. This is the key for a contact retrieved from a CRM. If you don't set it, when the engine receives another call will consider the record invalid, and will fetch it again, therefore adding a new record for every call. This is very probably what's happening here. So you can very easily fix it by adding the ContactUrl output.

Yes, I dont add Contacturl. I use the desktop CRM application because I have developed it myself.
After adding the contacturl parameter, it started to work normally. Its only one added to contact.

This is the normal behaviour. You need to use the 3CX Web Client to see the contact name all the times. This is because for the first call from a contact, 3CX sends the call to the agent before retrieving the contact information from the CRM. Because of this, the SIP message sent to the agent's phone doesn't contain the contact name. But it will have the name for subsequent calls. On the other side, the 3CX Web Client uses an internal protocol which lets us change the caller name after the call has been sent, so that's why you will see the contact name in the 3CX Web Client for the first call, but not on other devices.

Kind regards.

The guide started to complete itself through the RESTAPI. That's why we will continue to use the 3CX application. Sometimes I just have to figure out the "Continue" button.
Could it be expecting a parameter from CRM? Desktop CRM is triggered when I press the answer key with %CallerNumber% . Does the 3CX receive parameters to continue the call? I can take a screenshot. Or I could show it with remote assistance.
 
I made the SYSTEMDNS setting for ODBC. But it did not work. I will ask you for help with this.
You're trying different things without actually know what the error is... It's hard to fix the issue this way. You need to check the 3cxSystemService.log file, get the error you receive, and take it from there...

The guide started to complete itself through the RESTAPI. That's why we will continue to use the 3CX application. Sometimes I just have to figure out the "Continue" button.
Could it be expecting a parameter from CRM? Desktop CRM is triggered when I press the answer key with %CallerNumber% . Does the 3CX receive parameters to continue the call? I can take a screenshot. Or I could show it with remote assistance.
Not sure what you mean with that "Continue" button. Can you share a screenshot?
 
You're trying different things without actually know what the error is... It's hard to fix the issue this way. You need to check the 3cxSystemService.log file, get the error you receive, and take it from there...


Not sure what you mean with that "Continue" button. Can you share a screenshot?

@edossantos
3cxSystemService.log, I did not see any information about ODBC when I checked. Probably I am mistaken. Maybe look again later.

devam1.jpeg
OR
devam2.jpeg

Devam Et : Continue

There's a random.

Sometimes, the direct call can be answered without leaving these buttons. Sometimes these buttons need to go out (one of them) and press the button again.

in the second picture the call seems to have been answered and taken back to waiting. But the fact is that only the call answer button is pressed.
 
3cxSystemService.log, I did not see any information about ODBC when I checked. Probably I am mistaken. Maybe look again later.
Maybe you didn't enable verbose logs. Check your settings from 3CX Console > Dashboard > Activity Logs > Settings.

There's a random.

Sometimes, the direct call can be answered without leaving these buttons. Sometimes these buttons need to go out (one of them) and press the button again.

in the second picture the call seems to have been answered and taken back to waiting. But the fact is that only the call answer button is pressed.
Please create a new thread regarding this in the 3CX client forum, as this is not related to CRM integration. There you will find more people ready to help you.
 
Status
Not open for further replies.

Latest Posts

Forum statistics

Threads
112,323
Messages
591,896
Members
165,474
Latest member
costionofrei