I am looking to make a reception kiosk application in WPF to handle incoming phone calls.
The gist of the application is to retrieve customer information both from their caller ID as well as the开发者_运维技巧 opportunity to give multiple choice options while waiting in queue for an operator.
I usually am able to dig most out from google, but this time I came up short. Is there a term for this type of application that I'm not aware which would unlock the information flood gates of google? Does anybody have a link to the "meta"-world of telephony API? I assume that it will be IP telephony based.
It sounds like you're trying to develop some kind of ACD (Automatic Call Distribution) system?
I.e. you are connected to the telephone network some how, perhaps via VoIP (SIP). You use a telephony API (perhaps Dialogic HMP) to interface to it. You get told when events happen such as the telephone ringing and respond to them.
When a call comes in you can get the CLI (Caller ID) and DDI (Direct Dial Inbound number).
You can then use a set of rules that you determine to route that call to a particular group of "agents" (i.e. staff working in the company that are waiting to receive your call!).
Once you've determined which group of agents you want to route the call to, if there is one available via some algorithm (least used agent etc) then you route the call to the agent, job done.
If not, then the call has to be queued. While in the queue script you could play music, tell them how valuable their call is etc just by playing prompts using the relevant media API's.
Another variant would be to ask for input at the start of the call, e.g. press 1 for sales, 2 for support, then use the input to determine how to route the call. This is a kind of IVR (Interactive Voice Response) mechanism and involves playing prompts and getting digits via DTMF (Dual Tone Multi Frequency), i.e. the noises that your phone makes when you press a key. Under SIP there are numerous ways of receiving digits, though RFC 2833 is probably the most common, depending on what the other end you're connected to is you might find other things are needed - e.g. Cisco Call Manager, while it supports RFC 2833 it much prefers to use SIP INFO/NOTIFY with KPML bodies.
The agents would be using a client that presents the information about the caller, usually the integration between this client and your call center server is via some protocol that would be termed CTI (Computer Telephony Interface) but that's a broad term and doesn't refer to a specific protocol, either way it's just how you get relevant info to your client and how you respond to requests from the client (eg. transfer call, hang up call, put call on hold etc).
What you're talking about here though sounds like a VERY big job (from the sounds of where you're starting from - at least a year), writing a call center system is NOT a trivial undertaking and is WAY beyond a simple single WPF application, unless i've completely misunderstood what you're looking for here.
Hopefully the above gives you some of the acronyms, and other pointers to help guide you.
I'd strongly recommend you get your employer to invest in a commercial call center system though (or maybe use one of the more limited but free ones such as the one in Asterisk) and then you can focus on your normal business.
Disclaimer: The company I work for produces call center systems. I'm sure we can get you a quote :)
精彩评论