Hi,
In regards to your questions:
Hivemind wrote:1) How do I manipulate the callerID field on transfer. e.g. when transferring to an extension display "Trouble ticket #12345" instead of "Caller Name 1234567890" In * it's as easy as using a function in the dialplan.
You can not manipulate the caller id on transfer, but using "CRM Integration" you can make the 3CX Assistant to show a screen pop up with the caller information, the trouble ticket number, and maybe the history of the ticket. You need to create a custom CRM plug-in using this API for that:
http://wiki.3cx.com/api/3cx-crm-plug-api. I think that this is much better than just showing the trouble ticket number.
Hivemind wrote:2) Can the recording function be used to record the conversation between the calling party and the transferred extension? -or- is the "record extension" function in 3CX the only way?
The record component can be used to record audio from the caller party only. You can not use it to record the conversation between both endpoints. You will need to use the "record extension" function in 3CX for that.
Hivemind wrote:3) Run database lookup based on callerID? - Can 3CX take the callerID (specifically the number) and run it against a database query?
Yes, you can use the Database Access component for that. The query can contain variable parts, like the caller id.
Hivemind wrote:4) if using bridge mode transfers, does the call flow continue after the transferred-to extension disconnects (to be used to process the recording)
When transferring the call in bridge mode, the callflow continues in the main flow (just after the Transfer component) if the destination of the transfer hangs-up. If the caller hangs-up, the callflow continues in the disconnect handler flow.
Hivemind wrote:5) is call duration information available to the VAD?
Yes, the Transfer component has a property named "Duration" with the duration of the transferred call in bridge mode. When transferring in blind mode, the call duration is not available. If you need the entire callflow duration (including the time listening to prompts, etc) you may define a variable with the timestamp at the begining of the callflow, and calculate the time difference with the timestamp at the end of the callflow.
I hope this information is useful. Let us know if you need more help.