I have also tried to not request DTMF signal event (see bellow) , so I have think to get in the oc signal the dialed DTMF (matching the pattern) but it's not the case.
When a key is pressed the prompt is interrupted but no oc signal is transmitted.
What I need is to specify allowed dtmf key and only interrupt the initial prompt if the pressed key is a valid one, is that possible?
CRCX 18483362 mobius/ivr/$@95.128.80.91:2427 MGCP 1.0
C: 1
M: sendrecv
v=0.
o=- 20084 20084 IN IP4 95.128.80.10.
s=SDP data.
c=IN IP4 95.128.80.10.
t=0 0.
m=audio 19718 RTP/AVP 0 8 9 101.
a=rtpmap:0 PCMU/8000.
a=rtpmap:8 PCMA/8000.
a=rtpmap:9 G722/8000.
a=fmtp:101 0-15.
a=rtpmap:101 telephone-event/8000.
a=ptime:20.
a=sendrecv.
200 18483362 Success
I:10
Z:mobius/ivr/1...@95.128.80.91:2427
v=0
o=- 1409845694180 1 IN IP4 95.128.80.91
s=Sipme Media Server
c=IN IP4 95.128.80.91
t=0 0
m=audio 65534 RTP/AVP 0 101
a=rtpmap:0 PCMU/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
S:AU/pc(ip=file:/home/peoplefone/sound/welcome.wav cb iv=20 mx=1 mn=1)
R:AU/of (N),AU/oc (N),D/0 (N),D/1 (N),D/2 (N),D/3 (N),D/4 (N),D/5 (N),D/6 (N),D/7 (N),D/8 (N),D/9 (N),D/A (N),D/B (N),D/C (N),D/D (N),D/* (N),D/# (N)
200 18483363 Success
RQNT 18483365 mobius/ivr/1...@95.128.80.91:2427 MGCP 1.0
S:AU/pc(ip=file:/home/peoplefone/sound/moh/users/35232_phpPxgoJV.wav cb iv=20 fdt=50 )
R:AU/of (N),AU/oc (N),D/0 (N),D/1 (N),D/2 (N),D/3 (N),D/4 (N),D/5 (N),D/6 (N),D/7 (N),D/8 (N),D/9 (N),D/A (N),D/B (N),D/C (N),D/D (N),D/* (N),D/# (N)
200 18483364 Success
200 18483365 Success
NTFY 3 mobius/ivr/1...@95.128.80.91:2427 MGCP 1.0
O:D/3(null)
U 95.128.80.91:2427 -> 95.128.80.91:2727
NTFY 2 mobius/ivr/1...@95.128.80.91:2427 MGCP 1.0
O:D/3(null)
U 95.128.80.91:2727 -> 95.128.80.91:2427
200 3 The requested transaction was executed normally.
04/09/2014 17:48:14,135 DEBUG [MgcpProvider] Receive message 331 bytes length
04/09/2014 17:48:14,152 DEBUG [MgcpProvider] Parsing message: CRCX 18483362 mobius/ivr/$@95.128.80.91:2427 MGCP 1.0
C: 1
M: sendrecv
v=0
o=- 20084 20084 IN IP4 95.128.80.10
s=SDP data
c=IN IP4 95.128.80.10
t=0 0
m=audio 19718 RTP/AVP 0 8 9 101
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:9 G722/8000
a=fmtp:101 0-15
a=rtpmap:101 telephone-event/8000
a=ptime:20
a=sendrecv
04/09/2014 17:48:14,152 DEBUG [MgcpProvider] Dispatching message
04/09/2014 17:48:14,172 INFO [MGCP] tx=18483362 Started, message= CRCX mobius/ivr/$@95.128.80.91:2427, call agent = /95.128.80.91:2727
04/09/2014 17:48:14,173 DEBUG [EndpointQueue] Endpoint mobius/ivr/1 taken
04/09/2014 17:48:14,173 DEBUG [EndpointQueue] Free endpoints 4
04/09/2014 17:48:14,175 DEBUG [ResourcesPool] Allocated new rtp connection,pool size:10,free:9
04/09/2014 17:48:14,177 DEBUG [ResourcesPool] Allocated new dtmf detector,pool size:5,free:4
04/09/2014 17:48:14,179 INFO [RtpConnectionImpl] FormatsRTPFormats{0 AudioFormat[PCMU,8000,8,mono],8 AudioFormat[PCMA,8000,8,mono],101 AudioFormat[telephone-event,8000,mono],9 AudioFormat[G722,8000,mono]}
04/09/2014 17:48:14,199 INFO [MGCP] tx=18483362 was executed normaly
04/09/2014 17:48:14,255 DEBUG [MgcpProvider] Receive message 314 bytes length
04/09/2014 17:48:14,255 DEBUG [MgcpProvider] Parsing message: RQNT 18483363 mobius/ivr/1...@95.128.80.91:2427 MGCP 1.0
X:1
S:AU/pc(ip=file:/home/peoplefone/sound/welcome.wav cb iv=20 mx=1 mn=1)
R:AU/of (N),AU/oc (N),D/0 (N),D/1 (N),D/2 (N),D/3 (N),D/4 (N),D/5 (N),D/6 (N),D/7 (N),D/8 (N),D/9 (N),D/A (N),D/B (N),D/C (N),D/D (N),D/* (N),D/# (N)
04/09/2014 17:48:14,255 DEBUG [MgcpProvider] Dispatching message
04/09/2014 17:48:14,256 INFO [MGCP] tx=18483363 Started, message= RQNT mobius/ivr/1...@95.128.80.91:2427, call agent = /95.128.80.91:2727
04/09/2014 17:48:14,371 INFO [PlayCollect] (mobius/ivr/1) Prepare digit collect phase
04/09/2014 17:48:14,371 INFO [PlayCollect] (mobius/ivr/1) Start prompt phase
04/09/2014 17:48:14,371 DEBUG [ResourcesPool] Allocated new player,pool size:5,free:4
04/09/2014 17:48:14,373 INFO [MGCP] tx=18483363 was executed normaly
04/09/2014 17:48:14,376 INFO [DtmfBuffer] (detector) Flush, buffer size: 0
04/09/2014 17:48:14,442 INFO [JitterBuffer] Format has been changed: 0 AudioFormat[PCMU,8000,8,mono]
04/09/2014 17:48:34,255 DEBUG [MgcpProvider] Receive message 100 bytes length
04/09/2014 17:48:34,255 DEBUG [MgcpProvider] Parsing message: RQNT 18483364 mobius/ivr/1...@95.128.80.91:2427 MGCP 1.0
X:2
S:AU/es
04/09/2014 17:48:34,255 DEBUG [MgcpProvider] Dispatching message
04/09/2014 17:48:34,256 INFO [MGCP] tx=18483364 Started, message= RQNT mobius/ivr/1...@95.128.80.91:2427, call agent = /95.128.80.91:2727
04/09/2014 17:48:34,256 DEBUG [MgcpProvider] Receive message 330 bytes length
04/09/2014 17:48:34,256 DEBUG [MgcpProvider] Parsing message: RQNT 18483365 mobius/ivr/1...@95.128.80.91:2427 MGCP 1.0
S:AU/pc(ip=file:/home/peoplefone/sound/moh/users/35232_phpPxgoJV.wav cb iv=20 fdt=50 )
R:AU/of (N),AU/oc (N),D/0 (N),D/1 (N),D/2 (N),D/3 (N),D/4 (N),D/5 (N),D/6 (N),D/7 (N),D/8 (N),D/9 (N),D/A (N),D/B (N),D/C (N),D/D (N),D/* (N),D/# (N)
04/09/2014 17:48:34,256 DEBUG [MgcpProvider] Dispatching message
04/09/2014 17:48:34,257 INFO [MGCP] tx=18483365 Started, message= RQNT mobius/ivr/1...@95.128.80.91:2427, call agent = /95.128.80.91:2727
04/09/2014 17:48:34,277 INFO [MGCP] tx=18483365 was executed normaly
04/09/2014 17:48:34,277 INFO [PlayCollect] (mobius/ivr/1) Prepare digit collect phase
04/09/2014 17:48:34,277 INFO [PlayCollect] (mobius/ivr/1) Start prompt phase
04/09/2014 17:48:34,278 INFO [MGCP] tx=18483364 was executed normaly
04/09/2014 17:48:34,279 INFO [DtmfBuffer] (detector) Flush, buffer size: 0
04/09/2014 17:48:44,193 INFO [MGCP] tx=2 Started, message= NTFY mobius/ivr/1...@95.128.80.91:2427, call agent = /95.128.80.91:2727
04/09/2014 17:48:44,210 INFO [MGCP] tx=3 Started, message= NTFY mobius/ivr/1...@95.128.80.91:2427, call agent = /95.128.80.91:2727
04/09/2014 17:48:44,210 INFO [EventBuffer] Receive 3 tone
04/09/2014 17:48:44,211 INFO [PlayCollect] (mobius/ivr/1) Tone '3' has been detected
04/09/2014 17:48:44,211 INFO [PlayCollect] (mobius/ivr/1) Tone '3' has been detected: prompt phase interrupted
04/09/2014 17:48:44,212 INFO [DetectorImpl] (mobius/ivr/1) (detector) Delivered '3' tone
04/09/2014 17:48:44,212 INFO [MGCP] tx=3 was executed normaly
04/09/2014 17:48:44,212 INFO [MGCP] tx=2 was executed normaly
04/09/2014 17:48:44,255 DEBUG [MgcpProvider] Receive message 55 bytes length
04/09/2014 17:48:44,255 DEBUG [MgcpProvider] Parsing message: 200 3 The requested transaction was executed normally.
player.deactivate();
player.removeListener(promptHandler);
With
player.removeListener(promptHandler);
player.deactivate();
2)
Before
https://code.google.com/p/sipme-media-server/source/browse/controls/mgcp/src/main/java/ua/mobius/media/server/mgcp/pkg/au/PlayCollect.java#739
terminatePrompt();
Add
isPromptActive = false;
After
terminatePrompt();
Add
logger.info(String.format("(%s) Prompt phase terminated, start collect phase", getEndpoint().getLocalName()));
startCollectPhase();
Same changes should be done to PlayRecord file ( different raws but same changes ).
Please test that it works , if yes modify 2 files and create issue with patch.
Best regards
Yulian Oifa