I have some problems on one Asterisk where I have many addons/script when trying catch event when I call to my self exten (selfcall). I disable this future and use Future codes.
Don’t check it but it should be like this:
extension_custom.conf:
[blf_all]
exten => _XXXX,hint,SIP/${EXTEN}&Custom:DND${EXTEN}
[blf_pickup]
exten => _**5XXXX,1,Pickup(${EXTEN:2})
exten => _**5XXXX,2,Hangup
[macro-mydnd-selfcall]
exten => s,1,GotoIf($["${CALLERID(num)}" = “${MACRO_EXTEN}”]?selfcall:nodndcall)
exten => s,n(selfcall),Noop(Toogle DND)
exten => s,n,Answer
exten => s,n,Wait(1)
exten => s,n,Macro(user-callerid,)
exten => s,n,GotoIf($["${DB(DND/${MACRO_EXTEN})}" = “”]?activate:deactivate);
exten => s,n(activate),Set(DB(DND/${MACRO_EXTEN})=YES)
exten => s,n,Set(STATE=BUSY)
exten => s,n,Gosub(app-dnd-toggle,sstate,1)
exten => s,n(hook_on),Playback(do-not-disturb&activated)
exten => s,n,Macro(hangupcall,)
exten => s,n(deactivate),Noop(Deleting: DND/${MACRO_EXTEN} ${DB_DELETE(DND/${MACRO_EXTEN})})
exten => s,n,Set(STATE=NOT_INUSE)
exten => s,n,Gosub(app-dnd-toggle,sstate,1)
exten => s,n(hook_off),Playback(do-not-disturb&de-activated)
exten => s,n,Macro(hangupcall,)
exten => s,n(nodndcall),Noop(Not self call, no DND toogle)
[from-internal-additional-custom]
include => blf_pickup
exten => _XXXX,1,Macro(mydnd-selfcall)
When Y have problem with call to your self extension to toggle DND, then leave this macro. Extension will be like that:
extension_custom.conf:
[blf_all]
exten => _XXXX,hint,SIP/${EXTEN}&Custom:DND${EXTEN}
[blf_pickup]
exten => _**5XXXX,1,Pickup(${EXTEN:2})
exten => _**5XXXX,2,Hangup
[from-internal-additional-custom]
include => blf_pickup