We have a client who is using the FreeSwitch platform and needs some help with a small project.
Here is the basic scenario. The client runs an interpreting and translation service. Customers call in to the client's company and are manually (for now) routed to an interpreter in their appropriate language. Once the call is routed, the interpreter then performs her service and hangs up.
We need to be able to track the actual amount of time that the interpreter is on the phone with the customer rather than just the length of the entire call.
It would also be very helpful to track the customer id for whom the interpreting service is being provided as well as the interpreter who is handling the call.
For the short term, we expect to provide a simple application (probably web-based) which will allow a customer service agent (the person who routes calls to interpreters) to select both the client and the interpreter quickly on a single screen.
The solution we are considering is as follows--and we realize it may or may NOT be workable. That is why we are seeking your expertise to help us verify the solution. If it is not the right solution, we need you to help us find one that actually does work.
We plan to populate a record in an external database with information with customerId, InterpreterId, BeginningTime (of interpretation), and CallId (from the call detail record). Later, we would like to marry up the call detail records with the external call detail supplement from the external database. From the merged record, we should have all of the information we need. (If there was a way to marry up the data without using an external database it would be a better solution.)
We are making at least three assumptions--any of which may be wrong.
1. We assume that as soon as a call starts, the Call detail record is generated and an ID exists for that call--and that there is some handle we can reach to get that ID.
2. We assume that we do not have the ability to edit the format of a call detail record to add additional fields. (Even if we could, we realize it may be unwise.)
3. We believe that we read somewhere that FreeSwitch stores its data perhaps in a SqlLite database. If this is true, then we may be able to access the SqlLite database rather than an external database. We don't know if a vendor would allow tables to be appended into this database.
For the long term, what the client would like is to be able to recognize the client by their phone number and/or by having them enter an account number and/or pin into an IVR system to automatically recognize the customer. When the call is routed to an interpreter, the system could automatically detect the interpreter by the extension being dialed so no manual selection of the customer or interpreter would be necessary. That is where the client would eventually like to be.
We are open to different solutions or ideas than the ones I have presented here as long as the client ends up with the information he needs.
All ideas are welcome.
When you bid, please explain precisely how you would architect this solution, any pitfalls you foresee, and recommendations for this client. Also, please itemize your costs for the telephony (FreeSwitch integration), web application, etc. If you are unable to do the web application, we can manage it internally. Our blind spot is FreeSwitch.