Bonjour Reaper,
J'ai trouvé la solution pour les Dynamic Features : comme j'utilise FreePBX comme interface, j'ai mis
Code:
[globals]
DYNAMIC_FEATURES=>FlashCmd
dans globals_custom.conf
et
Code:
[applicationmap]
FlashCmd => *6,callee,Macro,CmdFlash
dans features_general_custom.conf.
Je l'avais mis dans features_applicationmap_custom.conf, qui semble être sa place logique, mais dans ce cas, il n'est pas pris en compte. Étrange...
EDIT : J'ai compris pourquoi il n'est pas pris en compte. Il ne faut pas spécifier [applicationmap] dans le fichier features_applicationmap_custom.conf. En effet, la section [applicationmap] figure déjà dans le fichier features.conf de FreePBX.
Ma macro :
Code:
[macro-CmdFlash]
exten => s,1,Playback(wait-moment)
exten => s,n,Flash()
exten => s,n,Wait(0.2)
exten => s,n,Flash()
En tous cas, je me retrouve dans la même situation que mon précédent post. Dès que le premier flash est envoyé sur la ligne, Asterisk détecte une erreur et raccroche :
Code:
-- SIP/33-0000006c is ringing
-- SIP/33-0000006c answered DAHDI/2-1
-- Executing [s@macro-auto-blkvm:1] Set("SIP/33-0000006c", "__MACRO_RESULT=") in new stack
-- Executing [s@macro-auto-blkvm:2] Macro("SIP/33-0000006c", "blkvm-clr,") in new stack
-- Executing [s@macro-blkvm-clr:1] Set("SIP/33-0000006c", "SHARED(BLKVM,DAHDI/2-1)=") in new stack
-- Executing [s@macro-blkvm-clr:2] Set("SIP/33-0000006c", "GOSUB_RETVAL=") in new stack
-- Executing [s@macro-blkvm-clr:3] MacroExit("SIP/33-0000006c", "") in new stack
-- Executing [s@macro-auto-blkvm:3] ExecIf("SIP/33-0000006c", "0?Set(MASTER_CHANNEL(CONNECTEDLINE(num))=33)") in new stack
-- Executing [s@macro-auto-blkvm:4] ExecIf("SIP/33-0000006c", "0?Set(MASTER_CHANNEL(CONNECTEDLINE(name))=Personnel)") in new stack
-- Feature Found: FlashCmd exten: FlashCmd
-- Executing [s@macro-CmdFlash:1] Playback("DAHDI/2-1", "wait-moment") in new stack
-- <DAHDI/2-1> Playing 'wait-moment.gsm' (language 'fr')
-- Executing [s@macro-CmdFlash:2] Flash("DAHDI/2-1", "") in new stack
-- Flashed channel DAHDI/2-1
-- Executing [s@macro-CmdFlash:3] Wait("DAHDI/2-1", "0.2") in new stack
== Spawn extension (macro-CmdFlash, s, 3) exited non-zero on 'DAHDI/2-1' in macro 'CmdFlash'
-- Executing [h@macro-dial:1] Macro("DAHDI/2-1", "hangupcall") in new stack
-- Executing [s@macro-hangupcall:1] GotoIf("DAHDI/2-1", "1?theend") in new stack
-- Goto (macro-hangupcall,s,3)
-- Executing [s@macro-hangupcall:3] Hangup("DAHDI/2-1", "") in new stack
== Spawn extension (macro-hangupcall, s, 3) exited non-zero on 'DAHDI/2-1' in macro 'hangupcall'
== Spawn extension (macro-dial, h, 1) exited non-zero on 'DAHDI/2-1'
-- Hanging up on 'DAHDI/2-1'
-- Hungup 'DAHDI/2-1'
[2012-08-02 17:06:23] WARNING[29393]: chan_dahdi.c:7745 handle_alarms: Detected alarm on channel 2: Red Alarm
Grrrrrr.....
Ma seule issue serait d'empêcher la détection de l'erreur par Asterisk, le temps d'envoyer le second flash. Penses-tu que cela soit possible ?