Author |
|
Jalal Vetran
Joined: April 24 2006 Location: Iran Posts: 188
|
Posted: February 26 2007 at 9:19am | IP Logged
|
|
|
Hi
We have encountered two bugs in your sample files.
1- SingleLine PhoneDlg.cpp :
In DtmfGeneratorCallback function there is an infinite loop that terminates only when TransmitInCallIvrData and WriteAudioOutData return SipSuccess. But there is a situation which they don't return success and this loop makes program to halt. When we hold an incoming call and we try play a DTMF program halts.
2- Common\PhoneBase.cpp :
Code:
case SipFarEndHoldOn:
// the far end has put us on hold. at this time, our rtp
// transmitter for this phone line is disabled and transmitted
// rtp data from this end is consuming network bandwidth. our rtp
// receiver is still accepting data however.
pCPhoneBase->FarEndHoldOn(pCPhoneBase->hSipEngine,PhoneLine,&LineState);
break;
case SipFarEndHoldOff:
// the far end has removed us from "on hold". our rtp
// tranceiver for this phone line will be enabled if we
// are not locally held as well.
pCPhoneBase->FarEndHoldOn(pCPhoneBase->hSipEngine,PhoneLine,&LineState);
break;
|
|
|
In this file both SipFarEndHoldOff and SipFarEndHoldOn states call FarEndHoldOn!!! You should change SipFarEndHoldOff to call FarEndHoldOff.
BTW: I think the number of bugs we have reported yet is enough to let you give us a license upgrade reward.
Thanks
Jalal Abedinejad
|
Back to Top |
|
|
support Administrator
Joined: January 26 2005 Location: United States Posts: 1666
|
Posted: February 26 2007 at 12:12pm | IP Logged
|
|
|
Hi Jalal,
Thanks for the additional feedback. As far as a “license upgrade reward” for reporting bugs, we will check into that. We generally need to receive currency for our products. That way we can pay our heating and lighting bills. :)
Sample app – DTMF callback infinite loop:
There is no need for that loop anyway. The code below removes the infinite loop and is sufficient. We will update the sample code.
Code:
// Called by the dtmf generator. This callback sends dtmf generated sample blocks
// to the telephony engine's audio subsystem for playback and to the phone line
// if a call is active.
//
void _stdcall DtmfGeneratorCallback(DTMF_GEN_DATA *pGeneratorData)
{
CSingleLinePhoneDlg *pDlg;
TELEPHONY_RETURN_VALUE AudioOutStatus;
TELEPHONY_RETURN_VALUE TxIvrStatus;
pDlg = (CSingleLinePhoneDlg *)pGeneratorData->pUserSpecifiedData;
// output DTMF tones to local audio output and
// to phone line if a call is active.
AudioOutStatus = WriteAudioOutData(pDlg->hAudioOut,pGeneratorData->pSam pleBuffer);
if(AudioOutStatus != SipSuccess)
{
// handle the error.
}
// see if we are in a phone call.
if(pDlg->CallIsActive)
{
// send the generated DTMF signals out the phone line.
TxIvrStatus = TransmitInCallIvrData(pDlg->hIvrTransmit,pGeneratorData-& gt;pSampleBuffer);
if(TxIvrStatus == SipNoCallActive)
{
// assume the call is in the hold state.
}
else if(TxIvrStatus != SipSuccess)
{
// handle the error.
}
}
}
|
|
|
SipFarEndHoldOn and SipFarEndHoldOff virtual handlers:
You are correct! Good eye. We will update the sample code for the next release.
Note: The samples are for elaboration. We don’t treat this code as mission critical and provide it “as is”.
Again, thank you for pointing out these issues.
Support
|
Back to Top |
|
|
Jalal Vetran
Joined: April 24 2006 Location: Iran Posts: 188
|
Posted: February 27 2007 at 7:41am | IP Logged
|
|
|
Hi
You >>>
Note: The samples are for elaboration. We don’t treat this code as mission critical and provide it “as is”.
Me >>>
You are correct and I know this. But sometimes the bugs that exist in the samples makes customers confused so that they think that this is the DLL bug. We always check your sample binaries as a reference when we encounter a problem in our implemented Media Engine softwares. So when a bug is seen in both our software and your sample the first think is that this is the Media Engine DLL bug. As far as the samples are bug free we can decide whether we have implemented incorrectly or it is the Media Engine bug.
I think most of your customers including us use the sample common codes in their own softwares.
Do you know how much does it help you, when you know there is a bug in some part of your software that would be fixed in your next release? An example of this situation would be http://www.lanscapecorp.com/forum/forum_posts.asp?TID=250&PN =1 thread.
Thanks
Jalal Abedinejad
|
Back to Top |
|
|
support Administrator
Joined: January 26 2005 Location: United States Posts: 1666
|
Posted: February 27 2007 at 8:59am | IP Logged
|
|
|
Hi Jalal,
Yes. Your points are correct and well taken.
Support
|
Back to Top |
|
|