Hi,
Although I apply the patch, I don!t have any DTMF event when remote device
sends dtmf. What should i do to have MEDIA_REMOTE_DTMF event work with sipxtapi
3.2 stable branch.
Regards,
Mert
Hi,
here is a patch for the DTMF problem.
I am still trying to figure out how to best solve the supervised transfer
problem.
...Carsten
Index: sipXtapi-3.2/sipXmediaLib/src/mp/MprDecode.cpp
===================================================================
--- sipXtapi-3.2/sipXmediaLib/src/mp/MprDecode.cpp (revision 10928)
+++ sipXtapi-3.2/sipXmediaLib/src/mp/MprDecode.cpp (working copy)
@@ -219,11 +219,17 @@
// Initialize JB estimator.
mpJbEstimationState->init(mStreamState.sampleRate);
- // Update jitter state data
- mpJbEstimationState->update(&pRtp->getRtpHeader(),
- mStreamState.rtpStreamPosition,
- mStreamState.playbackStreamPosition,
- &mStreamState.rtpStreamHint);
+ // DTMF telephone-events may have a different rtp->timestamp
+ // and mess up the jitter state calculation, causing audio and
+ // DTMF to stop working.
+ if (!pDecoderInfo->isSignalingCodec())
+ {
+ // Update jitter state data
+ mpJbEstimationState->update(&pRtp->getRtpHeader(),
+ mStreamState.rtpStreamPosition,
+ mStreamState.playbackStreamPosition,
+ &mStreamState.rtpStreamHint);
+ }
mStreamState.rtpStreamPosition += mStreamState.rtpStreamHint;
@@ -234,11 +240,17 @@
// Sample rate mustn't change during the live stream.
assert(pDecoderInfo->getSampleRate() == mStreamState.sampleRate);
- // Update jitter state data
- mpJbEstimationState->update(&pRtp->getRtpHeader(),
- mStreamState.rtpStreamPosition,
- mStreamState.playbackStreamPosition,
- &mStreamState.rtpStreamHint);
+ // DTMF telephone-events may have a different rtp->timestamp
+ // and mess up the jitter state calculation, causing audio and
+ // DTMF to stop working.
+ if (!pDecoderInfo->isSignalingCodec())
+ {
+ // Update jitter state data
+ mpJbEstimationState->update(&pRtp->getRtpHeader(),
+ mStreamState.rtpStreamPosition,
+ mStreamState.playbackStreamPosition,
+ &mStreamState.rtpStreamHint);
+ }
}
RTL_EVENT(str_fg+"_MprDecode_pushPacket_rtp_stream_hint",
_______________________________________________
sipxtapi-dev mailing list
[email protected]
List Archive: http://list.sipfoundry.org/archive/sipxtapi-dev/