Author |
|
ajay__soni Intermediate
Joined: December 01 2007 Location: United Kingdom Posts: 19
|
Posted: July 31 2008 at 6:11pm | IP Logged
|
|
|
Hi,
I would like to build a high density IVR (using your C# wrapper) and our servers mainly run on Dual Core 64-Bit CPU which overcomes the 2GB RAM limit.
I have a dilema on which line version of your engine to buy.
If I buy the 512 license, does your C++ engine and managed wrapper run into threading, memory or performance limitations that you know of? With .NET Framework 2.0 there's a limit of around 25 and .NET 3.5 it has been lifted to 250 threads. So we're better off buying 256 line versions and run on 2 servers.
Can you provide any guidance on this?
Many thanks
Ajay
|
Back to Top |
|
|
support Administrator
Joined: January 26 2005 Location: United States Posts: 1666
|
Posted: August 01 2008 at 9:26am | IP Logged
|
|
|
Hi Ajay,
There are really two aspects to consider when developing a VOIP application using the media engine.
Max number of concurrent lines:
When we say “max number of concurrent lines”, what we mean is – the number of phone lines that can be active in individual (separate and unique) phone calls all at the same time.
The maximum number of concurrent phone lines that can be instantiated by the VOIP application is directly related to the available memory for the process.
Because memory for the VOIP application/process is finite, the max memory will dictate the max number of lines that can be created.
Note: The max number of internal media engine threads created to handle all the work is also limited by available memory. There is no “max native thread limit” imposed by Windows other than the max number of threads that can be created in a process due to available process memory.
We tend to develop everything (all our VOIP apps) using native C++ and not the .NET wrapper for the media engine. This is simply by choice and not because .NET support in the media engine is lagging behind the native media engine API. So all of our comments are rooted in native C++.
Depending on what capabilities are enabled in the media engine when it is started affects the total number of concurrent phone lines that can be instantiated. Conference call support has a pretty big impact because internally it required additional resources.
For example, we have a native C++ “call tester” app we often use during deployment scenarios and during development testing. This test app can initiate and terminate calls using full duplex RTP media.
This app uses a stock VOIP Media Engine. On Win32, we can instantiate up to 1024 concurrent phone lines when conferencing is disabled and up to 256 concurrent lines when conferencing is enabled. These numbers (concurrent lines) are possible based on the available process memory under Win32. Just because a huge number of lines can be created does not mean that the VOIP app will work. Higher line density deployments require faster CPUs.
Overall Performance:
Depending on what your app has to do and what the media engine does for your app, it is possible that the actual number of concurrent phone lines possible will be determined by CPU performance and not available memory. For example: using codecs like uLaw and aLaw (G711) has lower CPU computational burden than using G729 for all phone lines. The variations are endless - it is up to the media engine developer to determine what CPU to use and what total functionality should be enabled in the media engine and the VOIP app.
We do not publish hard performance numbers because they are basically meaningless given all the hardware and deployment scenarios that exist.
However, what we do is develop the internals of the media engine with strict performance guidelines using all native code and assembler. Nothing gets put into the media engine unless it has high performance capabilities.
About your C# thread limitations: Are you talking about thread pool max threads? We are not sure, but if you use individual threads, you should not have the thread pool limitation imposed.
Please note: Whatever you decide to purchase, if you want to increase the number of lines, you can simply pay the difference in price.
Support
|
Back to Top |
|
|
ajay__soni Intermediate
Joined: December 01 2007 Location: United Kingdom Posts: 19
|
Posted: August 01 2008 at 2:26pm | IP Logged
|
|
|
Hi,
Thanks for your response.
To make a start, I will make a purchase today for 128 lines and try it out.
I will be keen on the upgrade and pay only the difference when I have completed load testing with 128 version.
By the way I'm building a web based workflow application that will allow the construction of IVR and call routing called "SIP Flow."
Many thanks
Ajay
|
Back to Top |
|
|
ajay__soni Intermediate
Joined: December 01 2007 Location: United Kingdom Posts: 19
|
Posted: August 01 2008 at 2:30pm | IP Logged
|
|
|
Had second thought, just bought the 512 line version.
Thanks again
Ajay
|
Back to Top |
|
|