Basic integration "can" be straightforward, but more times than not it requires a ton of work. For example, you have to identify the right API to use (look at Oracle for an example of about 5 possible APIs), then you have to get access to a test environment. If it's cloud-based you might be able to get a sand-box development account (sometimes free, sometimes there is a cost), then you have to learn the basics of how to use the CRM, and finally learn their API. Trust me, you are into 3-5 days to get to that point and you haven't even written a line of code yet.
To further complicate things, 3CX will make changes that impact the integration and the CRM manufacturer will also make changes, so this is NOT a one-time effort, rather, this is an on-going effort. That means the company that builds the integration has to maintain a test environment and staff expertise. If this sounds expensive, that's because it is.
Now if that hasn't scared you off, we can help. We have built 3CX integrations for AutoTask, ConnectWise, Zendesk, VTiger, Bullhorn, HubSpot, SugarCRM and many more. So we have experience doing integrations. But know this -- this is a long-term commitment on your part and the part of the company you partner with. You need to think long and hard before going down that road.