The company I'm working for is strongly based on selling products by Call Center. We have our CRM based on PHP, our own desktop-phone SIP-Client and Asterisk as a service for driving calls.
What I'm required to do is to minimise usage of Call-Centers secondary app - SIP-Client. As a desktop phone, employees are required to minimise their browsers (and so, CRM) to show that app to put call on hold or transfer it. What we are willing to do, is to create in our CRM a simple interface, that will allow our employees to dial a number or manage current call with simple actions (hold, transfer, blindtransfer) straight from web interface.
I did some research, but once I'm quite new to the problem I have some problems finding anything, maybe with finding proper vocabulary. I'm looking for a middle-service, that with simple API will allow me to send a command to Asterisk, that will make a current call transfer to someone's private queue, or make a new call, or maybe mute. All those things are basic SIPclient functions, but the case is I dont wan't to be required to swim through opened windows to find it.
So far I found a few possibilities:
- create a proper browser handler - as SIP-client is our own application, we can modify it to do some actions based on URL params placed on page. Case is, we are willing to not do this, to be independent in choosing other client-app in some cases.
- PAMI and NAMI - looks like solutions I may be looking for. So far we are already listening events thrown by Asterisk AMI. Case is, that all those simple actions included in all SIP-Clients I will be required to program by hand, because these are quite a transport-layer classes. It makes simple "transfer call to 215 internal number" grow to a monstercode.
- browser-based SIP-Client is a rejected solution already, but I think that chrome-extension SIP-Client may be taken under reconsideration, if it throws some events back into www app (so I can handle them and do some actions inside CRM).
So, the question is, is there an out-of-box solution, or at least something more advanced than those php/node.js classes to achieve my targets? Platform: Linux, Asterisk version is 1.8 (I'm aware that there is an ARI interface in version 12, but migration for now is not an option).