DTMF digit Pattern

71 views
Skip to first unread message

Laurent Schweizer

unread,
Sep 3, 2014, 6:09:47 AM9/3/14
to sipme-med...@googlegroups.com
Hello,
 
 
an other question regarding digit pattern.
 
I try to specify some allowed digit but it seems not working, in the exemple bellow I set dp=1|2|3|9  but if I press key 7  the voice prompt is stoped and I get the event.
 
any idea ?
 
BR
 
 
 
U 95.128.80.91:2727 -> 95.128.80.91:2427
  RQNT 982567128 mobius/ivr/1...@95.128.80.91:2427  MGCP 1.0.N:95.128...@95.128.80.91:2727.X:1.S:AU/pc(ip=file:/home/peoplef
  one/sound/welcome.wav  cb iv=20 fdt=50  dp=1|2|3|9).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).
 
 
U 95.128.80.91:2427 -> 95.128.80.91:2727
  200 982567128 Success.
 
 
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/7(null).N:95.128...@95.128.80.91:2727.X:1.
 

Laurent Schweizer

unread,
Sep 3, 2014, 7:36:03 AM9/3/14
to sipme-med...@googlegroups.com

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?

 
BR
Laurent
 
03/09/2014 13:19:33,652 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]}
03/09/2014 13:19:33,672 INFO  [MGCP] tx=990923006 was executed normaly
03/09/2014 13:19:33,689 DEBUG [MgcpProvider] Receive  message 196 bytes length
03/09/2014 13:19:33,689 DEBUG [MgcpProvider] Parsing message: RQNT 990923007 mobius/ivr/4...@95.128.80.91:2427  MGCP 1.0
N:95.128...@95.128.80.91:2727
X:4
S:AU/pc(ip=file:/home/peoplefone/sound/welcome.wav  cb iv=20 fdt=50  dp=1|2|3|9)
R:AU/of (N),AU/oc (N)
03/09/2014 13:19:33,690 DEBUG [MgcpProvider] Dispatching message
03/09/2014 13:19:33,690 INFO  [MGCP] tx=990923007 Started, message= RQNT mobius/ivr/4...@95.128.80.91:2427, call agent = /95.128.80.91:2727
03/09/2014 13:19:33,709 INFO  [PlayCollect] (mobius/ivr/4) Prepare digit collect phase
03/09/2014 13:19:33,709 INFO  [PlayCollect] (mobius/ivr/4) Start prompt phase
03/09/2014 13:19:33,709 DEBUG [ResourcesPool] Allocated new player,pool size:5,free:1
03/09/2014 13:19:33,710 INFO  [MGCP] tx=990923007 was executed normaly
03/09/2014 13:19:33,711 INFO  [DtmfBuffer] (detector) Flush, buffer size: 0
03/09/2014 13:19:33,870 INFO  [JitterBuffer] Format has been changed: 0 AudioFormat[PCMU,8000,8,mono]
03/09/2014 13:19:44,969 INFO  [EventBuffer] Receive 1 tone
03/09/2014 13:19:44,969 INFO  [PlayCollect] (mobius/ivr/4) Tone '1' has been detected
03/09/2014 13:19:44,970 INFO  [PlayCollect] (mobius/ivr/4) Tone '1' has been detected: prompt phase interrupted
03/09/2014 13:19:44,970 INFO  [DetectorImpl] (mobius/ivr/4) (detector) Delivered '1' tone

oifa.yulian

unread,
Sep 4, 2014, 3:37:00 AM9/4/14
to
Hello
Thats because you include also all the D package in request.
So its not the dp that is firing event , but D package

As for your second post , collect phase is not start till prompt phase is either ended or interrupted.
However when prompt is ended collect phase should be activated where event should be triggered.Since i dont see end of log i can not tell what happened there.Basically it supposed to interrupt prompt phase , start collect phase and then fire an event

Best regards
Yulian Oifa
Message has been deleted

Laurent Schweizer

unread,
Sep 4, 2014, 8:51:35 AM9/4/14
to sipme-med...@googlegroups.com
 
Hi,  so question is:
 
is that possible to play a voice with DTMF detection, if the user enter a valid input stop the voice and send a notify but if entry is not ok  continue to play the initial voice ?
 
BR
 
Laurent
 
 

Laurent Schweizer

unread,
Sep 4, 2014, 9:00:36 AM9/4/14
to sipme-med...@googlegroups.com
One more question :)
 
in the example bellow ,  I start to play a file with DTMF detection and after 20 second I change the played file.  
 to change the played file I send a new request and I also request DTMF notification, the issue is that I get 2 NOTIFY for the dtmf event.
 
I will try to send the second request without the DTMF  but is that correct, how can I remove DTMF notification ?
(I have tried to send an empty request to FLUSH  but same :( )
 
any idea ?
 
  CRCX 9060587 mobius/ivr/$@95.128.80.91:2427 MGCP 1.0.C: 1.M: sendrecv..v=0..o=- 20064 20064 IN IP4 95.128.80.10..s=SDP data..c=IN IP4 95.128.80.10..t=0 0..m=audio 9770 RTP/AVP 0 8 9 10
  1..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 9060587 Success.I:10.Z:mobius/ivr/1...@95.128.80.91:2427..v=0.o=- 1409834500899 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=r
  tpmap:0 PCMU/8000.a=rtpmap:101 telephone-event/8000.a=fmtp:101 0-15.

  RQNT 9060588 mobius/ivr/1...@95.128.80.91:2427  MGCP 1.0.N:95.128...@95.128.80.91:2727.X:1.S:AU/pc(ip=file:/home/peoplefone/sound/welcome.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 9060588 Success.
 
 
  RQNT 9060589 mobius/ivr/1...@95.128.80.91:2427  MGCP 1.0.N:95.128...@95.128.80.91:2727.X:2.
 
  RQNT 9060590 mobius/ivr/1...@95.128.80.91:2427  MGCP 1.0.N:95.128...@95.128.80.91:2727.X:3.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 9060589 Success.
  200 9060590 Success.
 

  NTFY 2 mobius/ivr/1...@95.128.80.91:2427 MGCP 1.0.O:D/3(null).N:95.128...@95.128.80.91:2727.X:3.
  NTFY 3 mobius/ivr/1...@95.128.80.91:2427 MGCP 1.0.O:D/3(null).N:95.128...@95.128.80.91:2727.X:3.

oifa.yulian

unread,
Sep 4, 2014, 9:00:45 AM9/4/14
to sipme-med...@googlegroups.com
No not in single request.
Its either announcement will be stopped after single press ( does not matters if its correct or not ) or it will wait till end of announcement does not matters how much digits are you pressing ( non interruptable ).
Thats the way AU works.

What you can do is to request pc with mx and mn ( min digits set to 10 and max digits set to 10 , you can use any other number you wish ) without dp at all , set ni=true, and request 4 events you want over D package.This way you will only get notification if correct single digit will be pressed or you will get to 10 digits.When you get notification on tone you can simply send au/es signal to end request.

Best regards
Yulian Oifa

oifa.yulian

unread,
Sep 4, 2014, 9:08:26 AM9/4/14
to sipme-med...@googlegroups.com
That have nothing to do with 2 requests , simply it detected 2 events of tone 3 ( one after another  and therefore sent you 2 notifications.
When you use dtmf package it does not stops after single notify but continues working , therefore to stop it you should use end signal or change it to another request.

Best regards
Yulian Oifa

Laurent Schweizer

unread,
Sep 4, 2014, 10:41:50 AM9/4/14
to sipme-med...@googlegroups.com
Thanks for the fast answer !
 
If I don't use the D package but I set the request with mx=1 mn=1   I will get the notification (oc) immediatly  after the first DTMF ?
 
BR
 
Laurent

oifa.yulian

unread,
Sep 4, 2014, 10:48:14 AM9/4/14
to sipme-med...@googlegroups.com
If its interruptable then yes.otherwise only if the digit pressed is end input key
Best regards
Yulian Oifa

Laurent Schweizer

unread,
Sep 4, 2014, 11:21:27 AM9/4/14
to sipme-med...@googlegroups.com
I'm realy sorry to send you so many question :(
 
I have also try with mx=1 mn=1 , the event is detected, voice is stoped but no notification is sent, any idea ?
 
for the es with the D package I will do a test in a moement :)
 
 
test with mn=1 mx=1
 
04/09/2014 17:14:42,043 INFO  [MainDeployer] [[[[[[[[[ Sipme Media Server: release.version=4.0.1 Started ]]]]]]]]]

04/09/2014 17:15:10,820 DEBUG [MgcpProvider] Receive  message 330 bytes length
04/09/2014 17:15:10,837 DEBUG [MgcpProvider] Parsing message: CRCX 18401517 mobius/ivr/$@95.128.80.91:2427 MGCP 1.0
C: 2
M: sendrecv
v=0
o=- 20078 20078 IN IP4 95.128.80.10
s=SDP data
c=IN IP4 95.128.80.10
t=0 0
m=audio 9156 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:15:10,837 DEBUG [MgcpProvider] Dispatching message

04/09/2014 17:15:10,855 INFO  [MGCP] tx=18401517 Started, message= CRCX mobius/ivr/$@95.128.80.91:2427, call agent = /95.128.80.91:2727
04/09/2014 17:15:10,856 DEBUG [EndpointQueue] Endpoint mobius/ivr/1 taken
04/09/2014 17:15:10,856 DEBUG [EndpointQueue] Free endpoints 4
04/09/2014 17:15:10,857 DEBUG [ResourcesPool] Allocated new rtp connection,pool size:10,free:9
04/09/2014 17:15:10,859 DEBUG [ResourcesPool] Allocated new dtmf detector,pool size:5,free:4
04/09/2014 17:15:10,861 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:15:10,881 INFO  [MGCP] tx=18401517 was executed normaly
04/09/2014 17:15:10,919 DEBUG [MgcpProvider] Receive  message 186 bytes length
04/09/2014 17:15:10,919 DEBUG [MgcpProvider] Parsing message: RQNT 18401518 mobius/ivr/1...@95.128.80.91:2427  MGCP 1.0
N:95.128...@95.128.80.91:2727
X:3
S:AU/pc(ip=file:/home/peoplefone/sound/welcome.wav  cb iv=20 mx=1 mn=1)
R:AU/of (N),AU/oc (N)
04/09/2014 17:15:10,920 DEBUG [MgcpProvider] Dispatching message
04/09/2014 17:15:10,920 INFO  [MGCP] tx=18401518 Started, message= RQNT mobius/ivr/1...@95.128.80.91:2427, call agent = /95.128.80.91:2727
04/09/2014 17:15:10,943 INFO  [PlayCollect] (mobius/ivr/1) Prepare digit collect phase
04/09/2014 17:15:10,943 INFO  [PlayCollect] (mobius/ivr/1) Start prompt phase
04/09/2014 17:15:10,943 DEBUG [ResourcesPool] Allocated new player,pool size:5,free:4
04/09/2014 17:15:10,945 INFO  [MGCP] tx=18401518 was executed normaly
04/09/2014 17:15:10,950 INFO  [DtmfBuffer] (detector) Flush, buffer size: 0
04/09/2014 17:15:11,080 INFO  [JitterBuffer] Format has been changed: 0 AudioFormat[PCMU,8000,8,mono]
04/09/2014 17:15:15,559 INFO  [EventBuffer] Receive 3 tone
04/09/2014 17:15:15,560 INFO  [PlayCollect] (mobius/ivr/1) Tone '3' has been detected
04/09/2014 17:15:15,560 INFO  [PlayCollect] (mobius/ivr/1) Tone '3' has been detected: prompt phase interrupted
04/09/2014 17:15:15,560 INFO  [DetectorImpl] (mobius/ivr/1) (detector) Delivered '3' tone
04/09/2014 17:15:16,999 INFO  [EventBuffer] Receive 3 tone
04/09/2014 17:15:16,999 INFO  [PlayCollect] (mobius/ivr/1) Tone '3' has been detected
04/09/2014 17:15:17,000 INFO  [PlayCollect] (mobius/ivr/1) Tone '3' has been detected: prompt phase interrupted
04/09/2014 17:15:17,000 INFO  [DetectorImpl] (mobius/ivr/1) (detector) Delivered '3' tone
 
 
  CRCX 18401517 mobius/ivr/$@95.128.80.91:2427 MGCP 1.0.C: 2.M: sendrecv..v=0..o=- 20078 20078 IN IP4 95.128.80.10..s=SDP data..c=IN IP4 95.128.80.10..t=0 0..m=audio 9156 RTP/AV
  P 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 18401517 Success.I:10.Z:mobius/ivr/1...@95.128.80.91:2427..v=0.o=- 1409843710862 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.
 
  RQNT 18401518 mobius/ivr/1...@95.128.80.91:2427  MGCP 1.0.N:95.128...@95.128.80.91:2727.X:3.S:AU/pc(ip=file:/home/peoplefone/sound/welcome.wav  cb iv=20 mx=1 mn=1).R:AU/of (N)
  ,AU/oc (N).
 
  200 18401518 Success.
 
 

Laurent Schweizer

unread,
Sep 4, 2014, 12:14:49 PM9/4/14
to sipme-med...@googlegroups.com
so I have also tested to send an es siglal after I get the DTMF event   but I think I do something wrong as I don't get the of or oc signal. and I'm still get 2 notify
 
any idea ?
 
Laurent
 
 

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

RQNT 18483363 mobius/ivr/1...@95.128.80.91:2427  MGCP 1.0

N:95.128...@95.128.80.91:2727

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)

200 18483363 Success

RQNT 18483364 mobius/ivr/1...@95.128.80.91:2427  MGCP 1.0

N:95.128...@95.128.80.91:2727

X:2

S:AU/es

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

N:95.128...@95.128.80.91:2727

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

N:95.128...@95.128.80.91:2727

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.

 

 

 

 

 

Laurent Schweizer

unread,
Sep 5, 2014, 4:51:42 AM9/5/14
to sipme-med...@googlegroups.com
for the option without the D package, so with mx=1  ,   I have done more test and I still don't get any notification.
 
in the log  of MMS I also don't see  any indication that a notify is sent.
 if I do test with a wrong file (to get an of notification) then in the log I can see that a notification is sent .
 
 
any idea ?
 
BR
Laurent
 
 
key 3 is pressed, detected but no notification:
 
05/09/2014 10:38:04,294 DEBUG [MgcpProvider] Parsing message: RQNT 8553030 mobius/ivr/5...@95.128.80.91:2427  MGCP 1.0
N:95.128...@95.128.80.91:2727
X:23
S:AU/pc(ip=file:/home/peoplefone/sound/users/ivr/35232_RfPUjuRJfOLQdRxx_main.wav  cb=true iv=20 mx=1 mn=1)
R:AU/of (N),AU/oc (N)
05/09/2014 10:38:04,294 DEBUG [MgcpProvider] Dispatching message
05/09/2014 10:38:04,294 INFO  [MGCP] tx=8553030 Started, message= RQNT mobius/ivr/5...@95.128.80.91:2427, call agent = /95.128.80.91:2727
05/09/2014 10:38:04,313 INFO  [PlayCollect] (mobius/ivr/5) Prepare digit collect phase
05/09/2014 10:38:04,313 INFO  [PlayCollect] (mobius/ivr/5) Start prompt phase
05/09/2014 10:38:04,313 DEBUG [ResourcesPool] Allocated new player,pool size:5,free:4
05/09/2014 10:38:04,314 INFO  [MGCP] tx=8553030 was executed normaly
05/09/2014 10:38:04,315 INFO  [DtmfBuffer] (detector) Flush, buffer size: 0
05/09/2014 10:38:04,474 INFO  [JitterBuffer] Format has been changed: 0 AudioFormat[PCMU,8000,8,mono]
05/09/2014 10:38:09,694 INFO  [EventBuffer] Receive 3 tone
05/09/2014 10:38:09,694 INFO  [PlayCollect] (mobius/ivr/5) Tone '3' has been detected
05/09/2014 10:38:09,707 INFO  [PlayCollect] (mobius/ivr/5) Tone '3' has been detected: prompt phase interrupted
05/09/2014 10:38:09,708 INFO  [DetectorImpl] (mobius/ivr/5) (detector) Delivered '3' tone
 
 
test with a wrong file name, an of notification is sent:
 
05/09/2014 10:44:08,735 DEBUG [MgcpProvider] Receive  message 221 bytes length
05/09/2014 10:44:08,736 DEBUG [MgcpProvider] Parsing message: RQNT 10127593 mobius/ivr/2...@95.128.80.91:2427  MGCP 1.0
S:AU/pc(ip=file:/home/peoplefone/sound/users/ivr/35232_RfPUjuRJfOLQdRxx_main.wav  cb=true iv=20 mx=1 mn=1)
R:AU/of (N),AU/oc (N)
05/09/2014 10:44:08,736 DEBUG [MgcpProvider] Dispatching message
05/09/2014 10:44:08,737 INFO  [MGCP] tx=10127593 Started, message= RQNT mobius/ivr/2...@95.128.80.91:2427, call agent = /95.128.80.91:2727
05/09/2014 10:44:08,755 INFO  [PlayCollect] (mobius/ivr/2) Prepare digit collect phase
05/09/2014 10:44:08,755 INFO  [PlayCollect] (mobius/ivr/2) Start prompt phase
05/09/2014 10:44:08,755 DEBUG [ResourcesPool] Allocated new player,pool size:5,free:4
05/09/2014 10:44:08,755 ERROR [AudioPlayerImpl] (mobius/ivr/2) error occured
java.io.FileNotFoundException: /home/peoplefone/sound/users/ivr/35232_RfPUjuRJfOLQdRxx_main.wav (No such file or directory)
        at java.io.FileInputStream.open(Native Method)
        at java.io.FileInputStream.<init>(FileInputStream.java:120)
        at java.io.FileInputStream.<init>(FileInputStream.java:79)
        at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:70)
        at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:161)
        at java.net.URL.openStream(URL.java:1010)
        at ua.mobius.media.server.impl.resource.mediaplayer.audio.wav.WavTrackImpl.<init>(WavTrackImpl.java:78)
        at ua.mobius.media.server.impl.resource.mediaplayer.audio.AudioPlayerImpl.setURL(AudioPlayerImpl.java:176)
        at ua.mobius.media.server.mgcp.pkg.au.PlayCollect.startPromptPhase(PlayCollect.java:202)
        at ua.mobius.media.server.mgcp.pkg.au.PlayCollect.execute(PlayCollect.java:172)
        at ua.mobius.media.server.mgcp.controller.Request.execute(Request.java:142)
        at ua.mobius.media.server.mgcp.tx.cmd.NotificationRequestCmd$Executor.perform(NotificationRequestCmd.java:219)
        at ua.mobius.media.server.scheduler.Task.run(Task.java:127)
        at ua.mobius.media.server.scheduler.Scheduler$WorkerThread.run(Scheduler.java:425)
05/09/2014 10:44:08,756 INFO  [PlayCollect] Received URL can not be found , firing of
05/09/2014 10:44:08,773 INFO  [MGCP] tx=3 Started, message= NTFY
mobius/ivr/2...@95.128.80.91:2427, call agent = /95.128.80.91:2727
05/09/2014 10:44:08,773 INFO  [MGCP] tx=10127593 was executed normaly
05/09/2014 10:44:08,774 INFO  [MGCP] tx=3 was executed normaly

oifa.yulian

unread,
Sep 9, 2014, 2:23:34 AM9/9/14
to sipme-med...@googlegroups.com
Hi
Well as it looks it tries to play next segment ( therefore you have second prompt phase completed ).
Try to remove iv parameter , extra spaces , etc in request
Also add logging here :
https://code.google.com/p/sipme-media-server/source/browse/controls/mgcp/src/main/java/ua/mobius/media/server/mgcp/pkg/au/PlayCollect.java#558

After ending prompt it should reach the stop event of player and from there start collect phase.
If after cleaning params it still does not fires an event use logging to see where exactly it stops ( player event not fired , some trigger in event , etc )

Best regards
Yulian Oifa

Laurent Schweizer

unread,
Sep 9, 2014, 5:50:09 AM9/9/14
to sipme-med...@googlegroups.com
Hi,
 
the process method is not called after the tone is detected so the problem is the active flag  that is set to false in: 
 
 
 public void process(DtmfEvent event) {
        logger.info("Receive " + event.getTone() + " tone");
        if(!listener.tone(event.getTone()))
                return;
        //process event immediately if collect phase is active
        if (this.isActive) {
                logger.info("is active");
            process(event.getTone());
        } else {
                 logger.info("is not active");
            //buffer tone if collect phase is not activated yet
            queue.offer(event);
        }
    }
any idea when this flag is set ?
 

09/09/2014 11:43:01,873 INFO  [MGCP] tx=421054839 Started, message= CRCX mobius/ivr/$@95.128.80.91:2427, call agent = /95.128.80.91:2727
09/09/2014 11:43:01,880 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]}
09/09/2014 11:43:02,006 INFO  [MGCP] tx=421054839 was executed normaly
09/09/2014 11:43:02,042 INFO  [MGCP] tx=421054840 Started, message= RQNT mobius/ivr/1...@95.128.80.91:2427, call agent = /95.128.80.91:2727
09/09/2014 11:43:02,154 INFO  [PlayCollect] (mobius/ivr/1) Prepare digit collect phase
09/09/2014 11:43:02,155 INFO  [PlayCollect] (mobius/ivr/1) Start prompt phase
09/09/2014 11:43:02,157 INFO  [MGCP] tx=421054840 was executed normaly
09/09/2014 11:43:02,162 INFO  [PlayCollect] PLAYER PROCESS
09/09/2014 11:43:02,162 INFO  [DtmfBuffer] (detector) Flush, buffer size: 0
09/09/2014 11:43:02,227 INFO  [JitterBuffer] Format has been changed: 0 AudioFormat[PCMU,8000,8,mono]
09/09/2014 11:43:03,082 INFO  [AudioPlayerImpl] (mobius/ivr/1) End of file reached
09/09/2014 11:43:03,082 INFO  [PlayCollect] PLAYER PROCESS
09/09/2014 11:43:03,083 INFO  [PlayCollect] PLAYER STOP
09/09/2014 11:43:03,083 INFO  [PlayCollect] (mobius/ivr/1) Processing player next with url - file:/home/peoplefone/sound/tools/no_voice/05sec.wav
09/09/2014 11:43:03,602 INFO  [AudioPlayerImpl] (mobius/ivr/1) End of file reached
09/09/2014 11:43:03,602 INFO  [PlayCollect] PLAYER PROCESS
09/09/2014 11:43:03,602 INFO  [PlayCollect] PLAYER STOP
09/09/2014 11:43:03,603 INFO  [PlayCollect] (mobius/ivr/1) Processing player next with url - file:/home/peoplefone/sound/users/ivr/35232_RfPUjuRJfOLQdRxx_main.wav
09/09/2014 11:43:10,701 INFO  [EventBuffer] Receive 5 tone
09/09/2014 11:43:10,702 INFO  [PlayCollect] (mobius/ivr/1) Tone '5' has been detected
09/09/2014 11:43:10,702 INFO  [PlayCollect] (mobius/ivr/1) Tone '5' has been detected: prompt phase interrupted
09/09/2014 11:43:10,702 INFO  [PlayCollect] tone return
09/09/2014 11:43:10,703 INFO  [EventBuffer] is not active
09/09/2014 11:43:10,703 INFO  [DetectorImpl] (mobius/ivr/1) (detector) Delivered '5' tone
 

Laurent Schweizer

unread,
Sep 10, 2014, 9:20:18 AM9/10/14
to sipme-med...@googlegroups.com
Hi,
 
I place some trace in function  activate()  and passivate()  (  file: controls/mgcp/src/main/java/ua/mobius/media/server/mgcp/pkg/au/EventBuffer.java  )  and they are not called.
 
so if the default value of   isActive  si changed from false to true  then the DTMF seems ok.
 
Laurent
 

oifa.yulian

unread,
Sep 10, 2014, 10:22:37 AM9/10/14
to sipme-med...@googlegroups.com
That should be this way.
Events should not process till prompt is active.
As soon as prompt ends it starts collect phase which calls activate and then flushes all events received before that.
See
https://code.google.com/p/sipme-media-server/source/browse/controls/mgcp/src/main/java/ua/mobius/media/server/mgcp/pkg/au/PlayCollect.java#289
So once again the quest is whats going on in Player Event and not Tone Event Listener.
Best regards
Yulian Oifa

oifa.yulian

unread,
Sep 10, 2014, 10:34:51 AM9/10/14
to sipme-med...@googlegroups.com
Please make the following changes in pc:
1)
https://code.google.com/p/sipme-media-server/source/browse/controls/mgcp/src/main/java/ua/mobius/media/server/mgcp/pkg/au/PlayCollect.java#234
Replace
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


Laurent Schweizer

unread,
Sep 15, 2014, 8:12:23 AM9/15/14
to sipme-med...@googlegroups.com
Hi Yulian,
 
I test the change that you indicate me  and it's OK :)
 
 
Thanks
 
Laurent

oifa.yulian

unread,
Sep 15, 2014, 4:05:14 PM9/15/14
to sipme-med...@googlegroups.com
Did you opened an issue?
Best regards
Yulian Oifa

Sean H

unread,
Mar 20, 2015, 3:46:41 PM3/20/15
to sipme-med...@googlegroups.com
For playRecord.java, the following should also be added after startCollectPhase() correct?

                        if(!isCompleted)
                            startRecordPhase(options);

Reply all
Reply to author
Forward
0 new messages