Custom Integration - Multiple Systems w/ MSSQL in the Middle

Status
Not open for further replies.

ConnectPS

Free User
Advanced Certified
Joined
Jan 4, 2020
Messages
10
Reaction score
3
Hi All,

I am a V16-er. I am on the home stretch of my first project. I am building a custom interface between multiple systems using custom middleware. I am using CFD to define what system the caller belongs to and generating a "contact" URI and storing it in a SQL table.

I would like to use the CRM Integration to "fetch" the URL from the middleware and pass it to the client. Ideally, I would like to pass the session.callID into my lookup statement to return the complete URL, but it's my understanding the only allowed param for CRM Integration is the [NUMBER] param.
.
I am trying to determine the best way to interface my multiple systems using middleware assuming the following:
  • The "CRM" being queried by 3cx is middleware which sits between 3cx and multiple systems
  • Per the CRM integration- All callers 'EXIST' (even if new via middleware and CFD)
  • The URL to the caller's record is already defined and stored in the SQL DB
    • This also applies to "net new" leads (opens a pre-populated web-form with additional options)
  • All data is populated and stored in the middleware DB via CFD prior to the call getting dumped into any queue
  • Middleware is handling:
    • URI for existing
    • URI for creating new records
    • Call journaling
The best logic that I could come up with using this approach query my DB for an "active" call using the [NUMBER] parm. My app is aware of the call state using a flag on a DB record. I can query using the [Number] WHERE the call is still active to return the URL. This approach is much more susceptible to problems and will add complexity to the way I handle errors and I fear that this approach will come back to bite me in the future.

In short, what is the best way to pass a predefined URL from my custom middleware to to the 3cx client?
 
The only option to pass an URL to the 3CX Web Client is via a CRM template. Please note however that the lookup performed by the template is done before the CFD app takes the call, as it happens as soon as the call arrives to 3CX. During contact lookup, you only have the [Number] variable containing the caller number.
 
Ernesto,

Thanks for the response! When the call hits the 3cx SW, does 3cx write the call info to the DB (or somewhere) before the CFD APP takes the call or is this info stored in session variables?
 
When the call reaches 3CX, the CRM engine (if a template is configured) starts a contact lookup.

At the same time, the call is forwarded to the CFD app. The CFD app has some information of the call in session variables, like the caller number, or the DID used to reach 3CX.

The call record is added to the 3CX database (for reporting purposes) when the call ends. Also, in this case the CDR is generated, and the CRM engine (if a template is configured) starts executing the call journaling.
 
Status
Not open for further replies.

Latest Posts

Forum statistics

Threads
112,325
Messages
591,898
Members
165,478
Latest member
postmaster@studiolegaleda