VoIP PBX development issues in C#

gerardtaylor86

Junior Member
Jul 23, 2014
1
0
0
Hey Everyone,

We’re a stationery wholesaler. In addition to the stationery we’re a supplier of printed matters as well and we’re going to add a packaging materials division this year.

We currently have a two phone lines installed in my Asterisk phone system. Due to the business improvement, we will need three phone lines. What we’re thinking is a VoIP system with three phone numbers (one for the stationery, printed matters and packaging materials). We have broadband Internet connection. We have a variety of calls (ordering, inquiry, quotation, delivery information) related to more different product groups.

Our company has a workforce of 2 sales representatives. They have to accept about 50 incoming calls and the number of outgoing calls equal per day.

My boss is afraid that our sales staff won’t be able to accept each call after opening the third division – and installing the third phone line.

He don’t want to replace our Asterisk but he needs some new features like call queuing and voicemail, but we’d benefit greatly from an IVR menu system, too. He asked me, as an ignorant of VoIP programming, to develop some new funtionalities like these. The IVR seems the most difficult one. I found a C# solution for this (a short snippet can be seen below):

void call_DtmfReceived(object sender, VoIPEventArgs<DtmfInfo> e)
{
DisposeCurrentHandler();
switch (e.Item.Signal.Signal)
{
case 0: break;
case 1: TextToSpeech("Product XY has been designed for those software developers who especially interested in VoIP developments. If you prefer .NET programming languages, you might be interested in Product XY."); break;
case 2: MP3ToSpeaker(); break;
}
}
(Source: Codeproject)

But I’m looking for another solution that makes it possible to add some new menu items without modifying the source code. Does anyone have any useful ideas?

But first there’s a need for a VoIP SDK. I’ve been looking at ’Ozeki VoIP SIP SDK for .NET - 2 simultaneous calls’. According to this page it is compatible with Asterisk. Can anyone tell me if this is a good option for a business such as mine? Is there any other option I should look at?

Any help would be appreciated!

Regards,
Gerard
 

Train

Lifer
Jun 22, 2000
13,587
82
91
www.bing.com
Just replace the switch statement with a loop through a list.

Preferably a list loaded from a file or database.

Or did you not want to write the code yourself?
 

brandonb

Diamond Member
Oct 17, 2006
3,731
2
0
I don't have much experience with Asterisk. But I do have experience with FreeSwitch. From what I understand, the two systems are pretty similar because the authors of FreeSwitch worked on Asterisk.

FreeSwitch is pretty easy to use through C# since you can just use plain TCPIP and program directly to it through their event socket interface.

Now the SDK's typically just wrap the TCPIP. I'd suggest that you look around in the Asterisk help docs and see if you can get to the direct TCPIP/event monitoring commands. Then you don't need to worry about an SDK or buying one. Programming for these systems really isn't all that complicated.

I wrote a dialer using FreeSwitch. So I know you have complete control there, including IVR, etc. Simultaneous calls, etc.
 

Cerb

Elite Member
Aug 26, 2000
17,484
33
86
Why not extend Asterisk itself (to avoid dealing manually typing up a dial plan)? The popular thing to use seems to be Adhearsion, these days.