This isn't a question that has a black/white yes/no answer, this is more a request for advice so I hope this doesn't break any rules and if it does, I apologise and will remove if asked to.
I will mark the answer I find most helpful as the correct one.
Basically I am working for a company that has a PBX phone system. It has three machines called 'Maximisers', the first runs a linux based command line operating system entirely in memory and controls the other two.
The first maximiser also has an LDAP database, which I know very little about.
Each has 15 ethernet ports, each of which has a SIP phone plugged into it. Each 'Maximiser' also has 4 Lan ports.
The issue is that I know very little about what's going on under the hood. Any work we need done we are relying on the company who supplies the hardware to VPN in and do.
What I am asking is for somebody to point me in the right direction. I want to programmatically (preferably in C# .Net) retrieve information about what's going on with the phone system at any given time, record calls and take control of the phones so we can make outbound calls without the guys on the phone having to type the numbers in themselves.
Time isn't an issue here, I have all the time in the world to read whatever books I need to read, I just need some guidance on where to start.
Thanks in advance
It really depends on what brand/model your PBX system is (Siemens, Splicecom, Alcatel, whatever...) - they usually offer some form of documentation/protocol description etc. - Splicecom for example has several protocols providing different information which you can access to achieve what you describe. Similar things exist for Siemens and others too... with some vendors/models these interfaces need to be licensed additionally.
It might also be that your PBX is based on Asterisk - an opensource solution for PBX... see the link provided for how to access that.
Another option is to use the the TAPI provider most PBX systems offer to access the information you want.
Some starting points for TAPI via .NET:
Another option is to build a SIP proxy which allows you to do all sorts of things including the things you described: