Return to LanScape's home page Go back a page...       Active TopicsActive Topics   Display List of Forum MembersMember List   Knowledge Base SearchSearch   HelpHelp  RegisterRegister  LoginLogin

LanScape VOIP Media Engine™ - Pre-Sales Technical Support
 LanScape Support Forum -> LanScape VOIP Media Engine™ - Pre-Sales Technical Support
Subject Topic: Multiple Conferences on multiple lines Post ReplyPost New Topic
Author
Message << Prev Topic | Next Topic >>
Jalal
Vetran
Vetran


Joined: April 24 2006
Location: Iran
Posts: 188
Posted: July 02 2006 at 6:48am | IP Logged Quote Jalal

Hi

The ConferenceLine procedure has a limitation that you can not have multiple simultanous conferences on multiple lines. Let me explain more.

We want to conference two lines with each other (ie: line 0 and line 1) while another two lines (ie : line 2 and line 3) are in conference state. I want these conferences be seperate from each other. When we activate conference for any active line with ConferenceLine all conferenced lines will hear the sound of each other. In the example I described above I don't want line 3 hear line 0 or 1 .

Please let me know If you have any suggestion.

I have also another problem. As you know we have got a trial license for 5.11 before but it is expired now. As you know again we have bought a one line license for 5.12 but I can not test conference with it. Please send me a trial license for 5.12.

Thanks
Jalal Abedinejad
Back to Top View Jalal's Profile Search for other posts by Jalal Visit Jalal's Homepage
 
support
Administrator
Administrator


Joined: January 26 2005
Location: United States
Posts: 1666
Posted: July 05 2006 at 7:09am | IP Logged Quote support

Hi Jalal,

Sorry for the delay in this response. Our office was closed over the 4th of July weekend due to the national holiday.

You are correct. The default conference function treats all phone lines as a single block of lines so the behavior you described is by design.

An easy way for you to accomplish what you want to do is to use transmit and receive IVR API procedures. By using the Tx and Rx IVR APIs you will be able to “cross-wire” the logical phone lines as your application requires.

For more info, see the OpenRxIvrChannel() and OpenTxIvrChannel() API procedures.

What you want to do in your Delphi code is to have the media engine pass you all sample block data for a specified phone line. Your app will then write the sample block to another phone line’s Tx IVR output. Using this technique, you can create your own conference “block” of phone lines.

About receiving another trial - We will send you a v5.12 trial license for testing. After that, you should consider upgrading to a Media Engine that will support the number of phone lines you need for your development effort.

Repost as needed,

Support
Back to Top View support's Profile Search for other posts by support Visit support's Homepage
 
support
Administrator
Administrator


Joined: January 26 2005
Location: United States
Posts: 1666
Posted: July 05 2006 at 7:28am | IP Logged Quote support

Jalal,

I just remembered, you can't use a v5.12 trial license with the non trial version of the product.

Go ahead and use the LanScape License Manager application to request a new v5.12 product trial. Please use your full name when making the trial request. That way we will be able to filter your request out from the rest.

Support
Back to Top View support's Profile Search for other posts by support Visit support's Homepage
 
Jalal
Vetran
Vetran


Joined: April 24 2006
Location: Iran
Posts: 188
Posted: July 05 2006 at 8:05am | IP Logged Quote Jalal

Hi

The solution you mentioned is a little difficult but I think can solve our problem. But please change the software in your next version so that it can accept more than one single conferences.

Another question : If I open multiple TxIVRChannels with OpenTxIvrChannel for a single line all of the sent sound data on each output stream will be mixed and sent or some other think will happen. Please describe for me what's the algorithm for sending on multiple TxIVR channels on a single line.

See below if I am correct or not.

If I want to make conference on for example lines 0 and 1 then I should send all I receive on line 0 (RxIVR) to line 1 through TxIVR channel 0 and vice versa. If line 0 wants to play something to both of these lines then it should send the sound data to TxIVR channel 1 of both lines 0 and 1. Then TxIVR channel 0 and 1 of line 0 will be mixed and send on line 0. And the same will be happened on line 1.

Thanks for your support
Jalal Abedinejad
Back to Top View Jalal's Profile Search for other posts by Jalal Visit Jalal's Homepage
 
support
Administrator
Administrator


Joined: January 26 2005
Location: United States
Posts: 1666
Posted: July 05 2006 at 9:00am | IP Logged Quote support

Hi Jalal,

Thanks for your previous suggestions. We have made a note of your feature request. It will be forwarded to the developers.

You >>>
If I open multiple TxIVRChannels with OpenTxIvrChannel for a single line all of the sent sound data on each output stream will be mixed and sent or some other think will happen. Please describe for me what's the algorithm for sending on multiple TxIVR channels on a single line.

<<< Support
All 20Ms sample block data sent to a phone line's Tx IVR outputs will be digitally mixed together with locally recorded audio (if enabled) and phone line received loopback audio (if enabled) and transmitted out the phone line using RTP payloads. Up to 4 Tx IVR outputs are available per phone line. So the phone line Tx mixer model looks like this:

Code:

Phone line digitally
mixed transmitted audio =
    Local recorded audio +
    Phone line received loopback audio +
    Tx IVR output 0 +
    Tx IVR output 1 +
    Tx IVR output 2 +
    Tx IVR output 3;



You >>>
If I want to make conference on for example lines 0 and 1 then I should send all I receive on line 0 (RxIVR) to line 1 through TxIVR channel 0 and vice versa.

<<< Support
Yes, Exactly.


You >>>
If line 0 wants to play something to both of these lines then it should send the sound data to TxIVR channel 1 of both lines 0 and 1.

<<< Support
Yes.


You >>>
Then TxIVR channel 0 and 1 of line 0 will be mixed and send on line 0. And the same will be happened on line 1.

<<< Support
Exactly correct.


Support
Back to Top View support's Profile Search for other posts by support Visit support's Homepage
 
Jalal
Vetran
Vetran


Joined: April 24 2006
Location: Iran
Posts: 188
Posted: July 08 2006 at 2:50am | IP Logged Quote Jalal

Hi

Thanks for your good support. I tested the algorithm you said for making conference and it is OK. But there is some problems.

1- I had some echo when conferencing that I thought locally recorded audio is enabled by default. So I tried to use SetLocalAudioLoopback(pCPhoneBase->hSipEngine,FALSE) to disable this feature. I called this function after SipTelephonyEnable but it raises following exception :
"Unhandled exception in Conference Server.exe (LMEVoip.dll): 0xC0000005: Access Violation". It raises the same exception when calling after StartSipTelephony.
I'm sure this is a bug in LMEVoip.dll because I tested this function with both my converted delphi code and your "Conference Server" sample. I have also disabled phone line loopback for each line with SetPhoneLineLoopBack function and it seems phone line loopback is disabled by default. What's the need to add Local recorded audio to the mixed transmitted audio?

2- In the previous excample that I described, line 0 and line 1 are conferenced with each other. I want to record the mixed dialogue between line 0 and line 1 on for example line 0. Currently the sound of each conference party comes on seperate line. Is there any way to use LMEVoip.dll to do this Job for me or I should mix these sound myself.

Thanks again for your support
Jalal Abedinejad
Back to Top View Jalal's Profile Search for other posts by Jalal Visit Jalal's Homepage
 
Jalal
Vetran
Vetran


Joined: April 24 2006
Location: Iran
Posts: 188
Posted: July 08 2006 at 9:34am | IP Logged Quote Jalal

Hi again

After sending the last post I tried to read your new features and found that I can use StartPhoneLineRecording to define a CallBack to record full duplex sound. It is so useful function and it really works. But there is a problem. I can not change the data format of the received buffer through the callback. As you know your record call back function only sends PCM 16bit raw data. As I wanted to record ulaw 8k I writed my own data format conversion. You may add this feature in your next version. I suggest StartPhoneLineRecording get following two parameters as OpenRxIvrChannel do.

BOOL PerformConversion,
AUDIO_BANDWIDTH ReceiveIvrDataType

So my 2nd problem in my previous post is solved. But the first already exists.

Thanks in advance for your new version
Jalal Abedinejad
Back to Top View Jalal's Profile Search for other posts by Jalal Visit Jalal's Homepage
 
support
Administrator
Administrator


Joined: January 26 2005
Location: United States
Posts: 1666
Posted: July 08 2006 at 11:56am | IP Logged Quote support

Hi Jalal,

We normally are not here on Saturdays but we will answer as much as we can before we have to close the office.


Item #1:

Another customer reported this same error last week. It has been resolved and will appear in v5.13. Here is the bug detail description we just posted:

Bug: Access violation when local playback audio is disabled

Please answer the following question:
We assume your Delphi IVR application has disabled local audio recording and playback just like in the "Conference Server" sample. Is this true?


You >>>
What's the need to add Local recorded audio to the mixed transmitted audio?

<<< Support
Local recorded audio is not mixed with phone line transmitted audio. Hopefully this will explain:

When local (host) audio recording and playback are enabled and an app enables local audio loopback, it allows the media engine to feed back to the local playback path a small amount (volume controlled) of the person's speech as they are talking. There are some applications that want this because it helps to model the behavior of real analog phones. On analog phones, a person hears a small amount of their own voice in their own earpiece. That is why local audio loopback exists. It is mostly used for USB analog phone adaptors or other USB phone devices.

It does not affect transmitted phone line audio at all.


Item #2:

Thanks for your follow up post for item #2. It saves us much time when customers also post their own solutions. We are glad that the new call record feature will work for you.

You are absolutely correct. The record callback only offers raw 16 bit 8k PCM sample blocks to the application.

When we added call recording, we did not want to delay the v5.12 release any longer. Therefore format/rate conversion on callback recorded audio is not present. Our position was this: "If we can at least get digitally mixed recorded sample data to the application, then the app can do whatever it wants with it".

Your suggestion to add the 2 new parameters to the StartPhoneLineRecording() API procedure is exactly what we may offer in a future release. We have made a note of it. Good job in identifying this.


Support
Back to Top View support's Profile Search for other posts by support Visit support's Homepage
 
Jalal
Vetran
Vetran


Joined: April 24 2006
Location: Iran
Posts: 188
Posted: July 09 2006 at 4:19am | IP Logged Quote Jalal

Hi

You >>>
Please answer the following question:
We assume your Delphi IVR application has disabled local audio recording and playback just like in the "Conference Server" sample. Is this true?

Jalal <<<<
If you mean disabling local audio recording with SetLocalAudioLoopback in my delphi code, as I said it raises exception. But if you mean disabling in another way please tell me how I can disable it.

Waiting for your next release
Thanks
Jalal Abedinejad
Back to Top View Jalal's Profile Search for other posts by Jalal Visit Jalal's Homepage
 
support
Administrator
Administrator


Joined: January 26 2005
Location: United States
Posts: 1666
Posted: July 10 2006 at 10:56am | IP Logged Quote support

Hi Jalal,

We will try again.

An application can allow the media engine to use the host machines multimedia record and playback capabilities. Normally this is used by soft phones, etc.

Because your application is strictly IVR, it has no need to record and playback audio on the host machine.

The Enable/disable of local host record/playback is controlled by 3 values in the START_SIP_TELEPHONY_PARAMS structure that is passed to the StartSipTelephony API procedure. They are:

int ZeroBasedAudioDeviceId;
AUDIO_BANDWIDTH AudioRecordBandWidth;
AUDIO_BANDWIDTH AudioPlaybackBandWidth;

If you look at the PhoneBase.cpp module in the sample code, you will see at line 1224 where the parameters are set up to enable or disable local audio playback/recording.

Code:

     if(pCPhoneBase->EnableInter nalAudio)
     {
           // allow the telephony engine to manage record and playback.
           StartupParams.ZeroBasedAudioDeviceId = SIP_USE_PREFERED_AUDIO_DEVICE;
           StartupParams.AudioRecordBandWidth = AUDIO_BW_PCM_22K;
           StartupParams.AudioPlaybackBandWidth = AUDIO_BW_PCM_22K;
     }
     else
     {
           // disable telephony engine audio record and playback.
           StartupParams.ZeroBasedAudioDeviceId = SIP_AUDIO_DEVICE_NOT_USED;
           StartupParams.AudioRecordBandWidth = AUDIO_BW_UNDEFINED;
           StartupParams.AudioPlaybackBandWidth = AUDIO_BW_UNDEFINED;
     }




If you disable local (host) audio record and playback and then you call either SetLocalAudioLoopback() or SetLocalAudioLoopbackVolume(), the exception error you reported will be experienced.

So what we are asking is: Does your application disable local playback of audio on the hosts machine’s multimedia hardware?

Support
Back to Top View support's Profile Search for other posts by support Visit support's Homepage
 
Jalal
Vetran
Vetran


Joined: April 24 2006
Location: Iran
Posts: 188
Posted: July 10 2006 at 11:11am | IP Logged Quote Jalal

Hi

Now I understand what you mean.

Yes I have disabled local playback of audio through StartupParams you said.

The echo problem I have told you in last posts is solved. It was because the both parties of my conference were physically located near each other. When I tested the conference between two parties located in different rooms, then there was no echo.

Thanks again for your support
Jalal Abedinejad
Back to Top View Jalal's Profile Search for other posts by Jalal Visit Jalal's Homepage
 
support
Administrator
Administrator


Joined: January 26 2005
Location: United States
Posts: 1666
Posted: July 11 2006 at 1:30pm | IP Logged Quote support

Jalal,

One other note regarding format/rate conversion of recorded phone line sample blocks:

We completely forgot to tell you that the media engine has built in format and rate conversion support. Look for the CreateFormatRateConverter() and DestroyFormatRateConverter() API procedures in the Developer's Reference.

Performing format and rate conversion from 8k PCM recorded phone line audio sample blocks to 8k uLaw will be easy for you if you use the built in capability.

If you have questions how to do it, start another forum thread and post your question.

Sorry for not telling you this sooner. Opps.

Support
Back to Top View support's Profile Search for other posts by support Visit support's Homepage
 
Jalal
Vetran
Vetran


Joined: April 24 2006
Location: Iran
Posts: 188
Posted: July 12 2006 at 2:15am | IP Logged Quote Jalal

Oh yes. This is a good option. I've read about these functions on your documentation before but I've forgot it too.

As I said before we are an old company that work on IVR applications in Iran. So we are enough exprienced to convert different types of media formats.

I just suggested to add this functionality for other customers.

Thanks for your support
Jalal Abedinejad
Back to Top View Jalal's Profile Search for other posts by Jalal Visit Jalal's Homepage
 
support
Administrator
Administrator


Joined: January 26 2005
Location: United States
Posts: 1666
Posted: October 29 2007 at 3:24pm | IP Logged Quote support

Update:

We are testing the final functionality regarding multi-session conferencing in the VOIP Media Engine. We will be releasing product that will fully support many simultaneous logical conference groups/sessions.

The number of different logical conference groups that can be configured by application software are infinite. Conference groups will be assigned one or more unique conference session IDs. Any phone line can be assigned to belong to any defined conference group ID. All phone lines sharing conference IDs will also share full duplex audio.

Conference groups (i.e. conference group IDs) can be assigned single to individual phone lines. In this mode, all lines having the same conference session ID, will fully share audio data.

Conference groups can also be defined to contain more that one conference group ID. This will allow any number of lines from “one” conference group to share full duplex audio data with a “second” completely different conference group. This capability is very flexible and very powerful.

Hopefully we will be releasing the next media engine update in the near future. Certainly we expect it to be available yet this year.

Support

Back to Top View support's Profile Search for other posts by support Visit support's Homepage
 
Jalal
Vetran
Vetran


Joined: April 24 2006
Location: Iran
Posts: 188
Posted: October 30 2007 at 12:49am | IP Logged Quote Jalal

Hi,

Good News,

Our engineers at Tazarv are ready to share our experiences on Conference and other related subjects. We are also ready to help you on pre-release test procedures. So you can count on our help.

Regards,
Jalal



Back to Top View Jalal's Profile Search for other posts by Jalal Visit Jalal's Homepage
 
support
Administrator
Administrator


Joined: January 26 2005
Location: United States
Posts: 1666
Posted: March 06 2008 at 9:18am | IP Logged Quote support

Hi Jalal,

We were performing support forum maintenance and saw this posting. We wanted to comment on the original request so that others will know this capability currently exists.

The current media engine supports any number of conference call groups between phone lines. See the Developer’s Reference for the ConferenceLine () and SetConferenceGroupIds() API procedures.

Support

Back to Top View support's Profile Search for other posts by support Visit support's Homepage
 

If you wish to post a reply to this topic you must first login
If you are not already registered you must first register

  Post ReplyPost New Topic
Printable version Printable version

Forum Jump
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot delete your posts in this forum
You cannot edit your posts in this forum
You cannot create polls in this forum
You cannot vote in polls in this forum






Contact LanScape Hear what the Lawyers have to say How youm may use this site Read your privacy rights