2017-06-13 2 views
0

Je veux exécuter un script sur raccrochage d'appel, donc je créé un contexte personnalisé dans extensions_custom.conf comme ci-dessous:Exécution du script dans l'extension h dans le contexte personnalisé

[coscon] 
exten => **5,1,NoOp() 
same => n,Answer() 
exten => h,1,System(/usr/local/src/myscript.php) 

le problème est après raccrochage extension h dans ce contexte ne s'exécute pas du tout. un conseil?

Mettre à jour

laissez-moi élaborer. dans le fichier extensions_custom.conf J'inclus le contexte coscon. c'est le contexte de extensions_custom.conf:

[from-internal-custom] 
exten => 1234,1,Playback(demo-congrats) ; extensions can dial 1234 
exten => 1234,2,Hangup() 
exten => h,1,Hangup() 
include => coscon 

[coscon] 
exten => **5,1,NoOp() 
same => n,Answer() 
exten => h,1,System(/usr/local/src/myscript.php) 

Maintenant, quand je l'appelle ** 5 d'un softphone c'est la sortie Astrisk CLI:

== Using SIP RTP TOS bits 184 
== Using SIP RTP CoS mark 5 
    -- Executing [**[email protected]:1] NoOp("SIP/102-00000035", "") in new stack 
    -- Executing [**[email protected]:2] Answer("SIP/102-00000035", "") in new stack 
    -- Executing [**[email protected]:3] Pickup("SIP/102-00000035","5&[email protected]") in new stack 
[2017-06-13 21:10:39] NOTICE[10676][C-00000035]: app_directed_pickup.c:302 pickup_exec: No target channel found for [email protected] 
[2017-06-13 21:10:39] NOTICE[10676][C-00000035]: app_directed_pickup.c:302 pickup_exec: No target channel found for [email protected] 
    -- Executing [**[email protected]:4] Hangup("SIP/102-00000035", "") in new stack 
    == Spawn extension (from-internal, **5, 4) exited non-zero on 'SIP/102-00000035' 
    -- Executing [[email protected]:1] Hangup("SIP/102-00000035", "") in new stack 
    == Spawn extension (from-internal, h, 1) exited non-zero on 'SIP/102-00000035' 

Je pense que l'extension par défaut h pour From- le contexte interne est en cours d'exécution mais je ne sais pas comment le remplacer.

+0

Où est sortie de débogage? Ça fonctionne de cette façon, c'est sûr. – arheops

+0

Veuillez afficher la sortie de la console lors du test d'un appel. dans l'état actuel des choses, nous n'avons pas assez de détails sur les erreurs pour vous aider. – user3788685

+0

J'ai mis à jour ma question. – Amir

Répondre

1

question Vous suit:

Disons que vous avez 2 contexte

[a] 
exten => h,1,Noop(a) 
exten => 1,1,Noop(1) 
include => b 
[b] 
exten => h,1,Noop(b) 
exten => 2,1,Noop(2) 

Si votre contexte est [a], il comprend [b], oui. MAIS si l'extension existe dans [a], elle sera exécutée dans [a], pas dans [b]. Donc, l'extension h sera exécutée à partir du contexte [a].

si vous voulez que le travail, vous avez comme cela:

[b] 
    exten =>h,1,Noop(b) 
    exten => 2,1,Goto(${EXTEN},2); now even if included, you WILL BE in context b 
    exten => 2,2,Noop(2);this one alway context b 
+0

Monsieur, comme vous pouvez le voir à partir de l'extension astérisque cli log ** 5 est en cours d'exécution. ce n'est pas le problème. mon problème est seulement h extension. J'ai essayé votre solution sans aucune chance. Merci quand même. – Amir

+0

Je vois de votre journal h @ from-internal: 1] Hangup ("SIP/102-00000035", ce qui signifie que le contexte a = de-interne exécuter FIRST h-extension (de-interne-custom). il DEVRAIT, pas de problème ici. – arheops