Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Working with SIP trunks, PBX phone systems and the like

Tags:

c#

sip

pbx

tapi

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

like image 473
JMK Avatar asked Oct 17 '11 18:10

JMK


2 Answers

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:

  • http://www.codeproject.com/KB/IP/devangpro.aspx
  • http://www.codeproject.com/KB/dotnet/CShart_TAPI_3x.aspx
  • http://www.codeproject.com/KB/IP/Video_Voice_Conferencing.aspx
  • http://msdn.microsoft.com/en-us/library/ms734214.aspx
  • http://msdn.microsoft.com/en-us/library/windows/desktop/ms734257%28v=vs.85%29.aspx

Another option is to build a SIP proxy which allows you to do all sorts of things including the things you described:

  • http://www.codeproject.com/KB/cs/SIP_stack_with_SIP_proxy.aspx
  • http://sipsorcery.codeplex.com/
  • http://www.independentsoft.de/sip/index.html
  • http://www.konnetic.com/products/products_sip_sdk_std.aspx
  • http://www.voiceelements.com/Products/VEToolkit.aspx
like image 126
Yahia Avatar answered Nov 10 '22 00:11

Yahia


Hope this helps: I ran a PBX auto-dialer in a SIP/MPLS network. I was able connect using ODBC connections to the INFORMIX DB. The vender supplied the custom ODBC drivers as part of their sub-par management system that was view-able on a PC. The connection to the DB was all I needed for reporting and call viewing. To control the system, is a little harder. You'll need to master all the systems command line controls then pass them in via Telnet or Console/Serial port (and handle the response..where I got stuck b/c my system wasn't sending the responses consistently). Good luck! P.S. you can also monitor you calls at the switch instead of the PBX; your TELCO has SW for such things.

like image 22
user1132376 Avatar answered Nov 10 '22 01:11

user1132376