Daniel Pocock
2014-03-21 15:58:02 UTC
I've been looking at how recon handles DTMF and whether it can relay
DTMF from one participant to another
Without any explicit coding by the application developer, it appears
that recon swallows any out-of-band DTMF sent by a participant and does
not relay it to any other participant
The simplest solution is to modify MyConversationManager::onDtmfEvent(),
adding a call to createMediaResourceParticipant()
However, this also echoes the tone back to the participant who sent the tone
I suspect that calling modifyParticipantContribution() probably won't
help because the RFC 2833 tones would still be sent anyway
Looking at the interface to sipXtapi, it looks like sipXtapi also
insists on sending the tones to all channels in a flow graph (e.g. the
CpMediaInterface::startTone() method)
Scott, could you make any suggestions about how this could be
implemented or have I missed something in this analysis? My familiarity
with the sipX code is much less than with reSIProcate.
I thought it would be useful to have a new MediaParticipant URI
parameter (like the "remote-only" parameter) that would allow the tone
to exclude or include a specific participant, e.g.
tone:0;duration=200;exclude-participant=2
DTMF from one participant to another
Without any explicit coding by the application developer, it appears
that recon swallows any out-of-band DTMF sent by a participant and does
not relay it to any other participant
The simplest solution is to modify MyConversationManager::onDtmfEvent(),
adding a call to createMediaResourceParticipant()
However, this also echoes the tone back to the participant who sent the tone
I suspect that calling modifyParticipantContribution() probably won't
help because the RFC 2833 tones would still be sent anyway
Looking at the interface to sipXtapi, it looks like sipXtapi also
insists on sending the tones to all channels in a flow graph (e.g. the
CpMediaInterface::startTone() method)
Scott, could you make any suggestions about how this could be
implemented or have I missed something in this analysis? My familiarity
with the sipX code is much less than with reSIProcate.
I thought it would be useful to have a new MediaParticipant URI
parameter (like the "remote-only" parameter) that would allow the tone
to exclude or include a specific participant, e.g.
tone:0;duration=200;exclude-participant=2