Client Plugin Not Loading

Status
Not open for further replies.

Jason S

Joined
Apr 24, 2018
Messages
2
Reaction score
0
Is there a way to determine which plugins if any have loaded in the 3CX client?

The documentation around where to add an entry to 3CXClickToCall.exe.config is missing information on where in the file to add it. App config files have a very specific XML structure. My default client file is very sparse:
Code:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <startup>
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.1"/>
    </startup>
</configuration>

Another user had also posted that the example entry in the documentation is wrong and that it should be:
Code:
<add key="MyClassName" value="MyClassName, My.Assembly.Name" />

Thank you for the assistance.
 
Hello,

The documentation is correct:
https://www.3cx.com/call-center/crm-integration/

You need to edit the file named "3CXWin8Phone.user.config", adding the name of your DLL to the following entry:
Code:
<add key=”CRMPlugin” value=”CallNotifier,3CXPhoneTapiPlugin,MyCRMPlugin“/>
where “MyCRMPlugin” is the name of the DLL, without the extension.

The 3CXPhone logs located at "%AppData%\3CXPhone for Windows\Logs" will tell you what addins are being loaded.

Please note that this requires that 3CX has a PRO license key activated, otherwise your plugin will be ignored.

Kind regards.
 
Thanks.

Should the plugin entry be added to the <startup> element, or just be put under the parent <configuration> element?

Is there a way through the API to write my own entries to that log file?

It appears that namespacing is not used in the example. Will the plugin fail to load if I properly namespace my assemblies and classes?
 
Should the plugin entry be added to the <startup> element, or just be put under the parent <configuration> element?

There is no <startup> or <configuration> element in that file. This is how the file looks like by default:
Code:
<?xml version="1.0" encoding="utf-8"?>
<appSettings>
  <add key="version" value="3.0.0" />
  <add key="ClientSettingsProvider.ServiceUri" value="" />
  <add key="CRMPlugin" value="CallTriggerCmdPlugin,DotNetScriptPlugin,3CXPhoneTapiPlugin" />
  <add key="MakeCallTimeout" value="10000" />
  <add key="MakeCallTimeoutCTIUnsupported" value="200000" />
  <add key="EnableVCELogging" value="true" />
  <add key="MaxLogFileSizeMb" value="5" />
  <add key="RequestTimeout" value="60" />
  <add key="MaxUploadSizeKb" value="2048" />
</appSettings>

You just need to add the name of your DLL to the CRMPlugin entry.

Is there a way through the API to write my own entries to that log file?
No, you need to edit the file using a text editor. If you need to automate it, you can create a program to read and edit the file, but 3CX doesn't provide any API to change this.

It appears that namespacing is not used in the example. Will the plugin fail to load if I properly namespace my assemblies and classes?
You can use the namespace you want, as long as you add the attributes to the plugin class so it is recognized by the 3CXPhone client.

Kind regards.
 
Status
Not open for further replies.

Latest Posts

Forum statistics

Threads
112,323
Messages
591,896
Members
165,473
Latest member
NathanMitchell