DTMF and running a feature

Hi All,

I’ve got here a beginner problem.

Although I’ve read many, many Guides and HowTos I’m not able to solve the problem.

Here the background:

  • Asterisk makes a call (with use of .call File) and plays a sound (message).
  • The other side recevices a call and submits the fact of hearing the message by pressing a key (doesn’t matter what key) on the phone.
  • Asterisk detecets pressing that key and runs a local script.

I’ve tried many approaches, but I cannot get the message line “-- Feature Found: test exten: test“. The only thing which I get is DTMF begin, DTMF begin passthrough, DTMF end received, DTMF end accepted, DTMF end passthrough and that’s it:

[Feb 24 12:31:59] DEBUG[23620]: sig_pri.c:1017 sig_pri_request: sig_pri_request 1 [Feb 24 12:31:59] DEBUG[23620]: sig_pri.c:6668 sig_pri_call: CALLER NAME: NUM: -- Requested transfer capability: 0x00 - SPEECH > Channel DAHDI/i1/0151xxxxxxxx-23 was answered. -- Executing [100@play_sound:1] Set("DAHDI/i1/0151xxxxxxxx-23", "__DYNAMIC_FEATURES=bindmanager") in new stack -- Executing [100@play_sound:2] Wait("DAHDI/i1/0151xxxxxxxx-23", "22") in new stack [Feb 24 12:32:10] DTMF[23620]: channel.c:4194 __ast_read: DTMF begin '8' received on DAHDI/i1/0151xxxxxxxx-23 [Feb 24 12:32:10] DTMF[23620]: channel.c:4204 __ast_read: DTMF begin passthrough '8' on DAHDI/i1/0151xxxxxxxx-23 [Feb 24 12:32:11] DTMF[23620]: channel.c:4109 __ast_read: DTMF end '8' received on DAHDI/i1/0151xxxxxxxx-23, duration 382 ms [Feb 24 12:32:11] DTMF[23620]: channel.c:4149 __ast_read: DTMF end accepted with begin '8' on DAHDI/i1/0151xxxxxxxx-23 [Feb 24 12:32:11] DTMF[23620]: channel.c:4178 __ast_read: DTMF end passthrough '8' on DAHDI/i1/0151xxxxxxxx-23 [Feb 24 12:32:20] DTMF[23620]: channel.c:4194 __ast_read: DTMF begin '8' received on DAHDI/i1/0151xxxxxxxx-23 [Feb 24 12:32:20] DTMF[23620]: channel.c:4204 __ast_read: DTMF begin passthrough '8' on DAHDI/i1/0151xxxxxxxx-23 [Feb 24 12:32:21] DTMF[23620]: channel.c:4109 __ast_read: DTMF end '8' received on DAHDI/i1/0151xxxxxxxx-23, duration 408 ms [Feb 24 12:32:21] DTMF[23620]: channel.c:4149 __ast_read: DTMF end accepted with begin '8' on DAHDI/i1/0151xxxxxxxx-23 [Feb 24 12:32:21] DTMF[23620]: channel.c:4178 __ast_read: DTMF end passthrough '8' on DAHDI/i1/0151xxxxxxxx-23 [Feb 24 12:32:23] DTMF[23620]: channel.c:4194 __ast_read: DTMF begin '8' received on DAHDI/i1/0151xxxxxxxx-23 [Feb 24 12:32:23] DTMF[23620]: channel.c:4204 __ast_read: DTMF begin passthrough '8' on DAHDI/i1/0151xxxxxxxx-23 [Feb 24 12:32:23] DTMF[23620]: channel.c:4109 __ast_read: DTMF end '8' received on DAHDI/i1/0151xxxxxxxx-23, duration 395 ms [Feb 24 12:32:23] DTMF[23620]: channel.c:4149 __ast_read: DTMF end accepted with begin '8' on DAHDI/i1/0151xxxxxxxx-23 [Feb 24 12:32:23] DTMF[23620]: channel.c:4178 __ast_read: DTMF end passthrough '8' on DAHDI/i1/0151xxxxxxxx-23 [Feb 24 12:32:25] DTMF[23620]: channel.c:4194 __ast_read: DTMF begin '#' received on DAHDI/i1/0151xxxxxxxx-23 [Feb 24 12:32:25] DTMF[23620]: channel.c:4204 __ast_read: DTMF begin passthrough '#' on DAHDI/i1/0151xxxxxxxx-23 [Feb 24 12:32:25] DTMF[23620]: channel.c:4109 __ast_read: DTMF end '#' received on DAHDI/i1/0151xxxxxxxx-23, duration 433 ms [Feb 24 12:32:25] DTMF[23620]: channel.c:4149 __ast_read: DTMF end accepted with begin '#' on DAHDI/i1/0151xxxxxxxx-23 [Feb 24 12:32:25] DTMF[23620]: channel.c:4178 __ast_read: DTMF end passthrough '#' on DAHDI/i1/0151xxxxxxxx-23 [Feb 24 12:32:26] DTMF[23620]: channel.c:4194 __ast_read: DTMF begin '8' received on DAHDI/i1/0151xxxxxxxx-23 [Feb 24 12:32:26] DTMF[23620]: channel.c:4204 __ast_read: DTMF begin passthrough '8' on DAHDI/i1/0151xxxxxxxx-23 [Feb 24 12:32:26] DTMF[23620]: channel.c:4109 __ast_read: DTMF end '8' received on DAHDI/i1/0151xxxxxxxx-23, duration 216 ms [Feb 24 12:32:26] DTMF[23620]: channel.c:4149 __ast_read: DTMF end accepted with begin '8' on DAHDI/i1/0151xxxxxxxx-23 [Feb 24 12:32:26] DTMF[23620]: channel.c:4178 __ast_read: DTMF end passthrough '8' on DAHDI/i1/0151xxxxxxxx-23 [Feb 24 12:32:27] DTMF[23620]: channel.c:4194 __ast_read: DTMF begin '*' received on DAHDI/i1/0151xxxxxxxx-23 [Feb 24 12:32:27] DTMF[23620]: channel.c:4204 __ast_read: DTMF begin passthrough '*' on DAHDI/i1/0151xxxxxxxx-23 [Feb 24 12:32:27] DTMF[23620]: channel.c:4109 __ast_read: DTMF end '*' received on DAHDI/i1/0151xxxxxxxx-23, duration 306 ms [Feb 24 12:32:27] DTMF[23620]: channel.c:4149 __ast_read: DTMF end accepted with begin '*' on DAHDI/i1/0151xxxxxxxx-23 [Feb 24 12:32:27] DTMF[23620]: channel.c:4178 __ast_read: DTMF end passthrough '*' on DAHDI/i1/0151xxxxxxxx-23 [Feb 24 12:32:27] DTMF[23620]: channel.c:4194 __ast_read: DTMF begin '8' received on DAHDI/i1/0151xxxxxxxx-23 [Feb 24 12:32:27] DTMF[23620]: channel.c:4204 __ast_read: DTMF begin passthrough '8' on DAHDI/i1/0151xxxxxxxx-23 [Feb 24 12:32:27] DTMF[23620]: channel.c:4109 __ast_read: DTMF end '8' received on DAHDI/i1/0151xxxxxxxx-23, duration 255 ms [Feb 24 12:32:27] DTMF[23620]: channel.c:4149 __ast_read: DTMF end accepted with begin '8' on DAHDI/i1/0151xxxxxxxx-23 [Feb 24 12:32:27] DTMF[23620]: channel.c:4178 __ast_read: DTMF end passthrough '8' on DAHDI/i1/0151xxxxxxxx-23 [Feb 24 12:32:30] WARNING[23620]: pbx.c:4706 pbx_extension_helper: No application '' for extension (play_sound, 100, 3) == Spawn extension (play_sound, 100, 3) exited non-zero on 'DAHDI/i1/0151xxxxxxxx-23' -- Hungup 'DAHDI/i1/0151xxxxxxxx-23' [Feb 24 12:32:30] NOTICE[23620]: pbx_spool.c:385 attempt_thread: Call completed to dahdi/1/0151xxxxxxxx

features.conf:

[code][globals]
DYNAMIC_FEATURES=>test

[…]

[applicationmap]

; Note that the DYNAMIC_FEATURES channel variable must be set to use the features
; defined here. The value of DYNAMIC_FEATURES should be the names of the features
; to allow the channel to use separated by ‘#’. For example:
;
; Set(__DYNAMIC_FEATURES=myfeature1#myfeature2#myfeature3)
Set(__DYNAMIC_FEATURES=test)
Set(DYNAMIC_FEATURES=test)

;testfeature => 1,peer,Playback,tt-monkeys
;acknowledge => #,peer,System,/opt/test.sh
;acknowledge => 1,peer,Playback,tt-monkeys
;acknowledge => 1,callee,Playback,tt-monkeys

test => 8,callee,Macro,jaracz
;test => 8,caller,Macro,jaracz
[/code]

extensions.conf:

[code][default]
exten => _XXX,1,Set(__DYNAMIC_FEATURES=test)
exten => _XXX,n,Dial(dahdi/1/${EXTEN})

[globals]
;DYNAMIC_FEATURES=acknowledge
;__DYNAMIC_FEATURES=acknowledge
;DYNAMIC_FEATURES=>f1#f2#f3#f4
DYNAMIC_FEATURES=test
__DYNAMIC_FEATURES=test

[play_sound]
;exten => 100,1,Set(repeatCount=5)
;exten => 100,n(playback),Playback(alert)
;exten => 100,n,Set(repeatCount=$[${repeatCount} - 1])
;exten => 100,n,GotoIf(GotoIf($[${repeatCount} = 0]]?exit:playback)
exten => 100,1,Set(__DYNAMIC_FEATURES=test)
;exten => 100,n,Dial(dahdi/1/0151xxxxxxxx,WwTtg)
;exten => 100,n,Dial(dahdi/1/0151xxxxxxxx)
;exten => 100,n,AGI(agi-dtmf.agi,signalonly)
;exten => 100,n,System(/opt/test.sh)
exten => 100,n,Wait(22)
exten => 100,n(exit)Hangup()

[macro-jaracz]
exten => s,1,System(/opt/test.sh)
[/code]

I think I’ve tried everything (that’s why you see so many “;” there) - but no clue, why it won’t work…

Have you got any ideas? My Asterisk version is 1.8.32.1.

Thank you in advance!

Best regards,

Jaracz

The use of Macros as features conflicts with the specification.

The statement of requirements doesn’t require a bridged call, so I don’t understand why you are using features.

Hi David!

Thank you for your answer!

I don’t have to use Macros - I’ve also tried with:

and many variations of System-Call, but without any effect.

But if I don’t need features to run a script after DTMF, how can I do it in other way?

Thank you in advance!

Best regards,

Jaracz

The requirement as specified requires an Originate target extension that does:

Playback
Read
GotoIf
application specific code.

Awesome, works like a charm!

Thank you very much!

Best regards,

Jaracz