Mon cas ne vous inspire pas ?!
Mon cas ne vous inspire pas ?!
C'est un peu contradictoire , tu veux appeler normalement chez toi mais tu veux aussi pouvoir faire autre chose.
Il y a un moment ou il faut donc dire que tu veux faire l'action 1 ( appel normal ) ou l'action 2:
Plusieurs solutions:
- Plusieurs numeros avec 1 numero dedié à un scenario.
- Identifier ton numero appelant et lance un IVR ou un petit read avec timeout pour rediriger vers l'action 2 dans le dialplan correspondant.
- Lors d'un appel , faire un answer , utiliser Background avec predecroché ou sonnerie fake , par defaut , appel normal ( dial ) apres le message/sonnerie tres court, une touche appuyée rapidement deroutera vers un IVR avec un mot de passe pour y acceder.
Francois.
Je vais suivre vos pistes, mais je pense que c'est ma question que je pose mal...
Imaginons que mon numéro publique soit 0912345678.
Je souhaite appeler et faire sonner les téléphones de façon normale en appelant le 0912345678.
De plus, imaginons que mon ivr soit joignable sur l'extension 8000 dans un contexte interne
Je veux pouvoir appeler directement le 8000 depuis l'extérieur
J'imaginais que cela était possible ?? est-ce possible ? comment ?
En appelant le 0912345678#8000 ou qq chose de similaire ???
Est-ce possible ???
Si ma question n'a pas de solution...
Comment faire pour tester le numéro appelant et rediriger en fonction ??
On peut faire des expressions régulières sur les appels entrants ??
exten => s_0...
Merci par avance si vous avez des exemples de extensions.conf
Je me réponds tout seul...
Je teste le numéro comme ceci:
exten => s,1,GotoIf($["${CALLERID(num)}" = "06xxxxxxxx"]?OK:KO)
ça marche nickel
Si toutefois je pouvais joindre directement une extension depuis l'extérieur je reste intéressé par la solution.
Une possibilité comme énoncée plus haut :
- faire une comparaison avec une liste pour savoir si le numéro qui appel est autorisé ou non à gérer la domotique
- Si c'est le cas le rediriger vers un message qui lui propose de soit composer le 1 pour joindre normalement la maison
- Soit le 2 pour joindre le menu domotique
Et voilà , cela devrait correspondre à ton besoin.
Cédric
---------------------------------------------------------------
Rejoignez l'Association Asterisk France : http://www.asterisk-france.org
Envie de mettre des étoiles dans les yeux de vos clients : EasyPyro.ch
On a pas inventé l'électricité en cherchant à améliorer la bougie...
---------------------------------------------------------------
Merci pour votre réponse, je suis parti avec cette idée, mais j'ai un soucis.
Je teste le numéro appelant, si c'est un numéro lamba je fais sonner les téléphones, pas de soucis ça marche.
Si c'est mon numéro, je dirige alors vers mon ivr, je veux que 9 m'en fasse sortir et fasse ensuite sonner les téléphones
=> marche pas, lorsque je fais le choix 9 ça me raccroche au nez sans faire sonner !
Je ne vois rien dans les logs qui pourrait me donner une piste.
Pour sortir de mon ivr avec 9, j'ai testé ceci (soit Ringing directement, soit retourner au label KO qui est le branchement où un appelant quelconque arrive... marche pas...)
;exten => 9,1,Ringing
exten => 9,1,Goto(depuis-free,s,KO)
Cela semble s’exécuter correctement vu les logs, mais ça raccroche au lieu de faire sonner les téléphones, pourquoi ???
Log d'un appelant quelconque, tout fonctionne comme je veux:
== Using SIP RTP CoS mark 5
-- Executing [s@depuis-free:1] AGI("SIP/vers-free-00000034", "/usr/bin/python,"/var/lib/asterisk/agi-bin/Asterisk2xPL.agi"") in new stack
-- Launched AGI Script /usr/bin/python
-- <SIP/vers-free-00000034>AGI Script /usr/bin/python completed, returning 0
-- Executing [s@depuis-free:2] GotoIf("SIP/vers-free-00000034", "0?OK:KO") in new stack
-- Goto (depuis-free,s,4)
-- Executing [s@depuis-free:4] Ringing("SIP/vers-free-00000034", "") in new stack
-- Auto fallthrough, channel 'SIP/vers-free-00000034' status is 'UNKNOWN'
Log lorsque j'appelle:
== Using SIP RTP CoS mark 5
-- Executing [s@depuis-free:1] AGI("SIP/vers-free-00000035", "/usr/bin/python,"/var/lib/asterisk/agi-bin/Asterisk2xPL.agi"") in new stack
-- Launched AGI Script /usr/bin/python
-- <SIP/vers-free-00000035>AGI Script /usr/bin/python completed, returning 0
-- Executing [s@depuis-free:2] GotoIf("SIP/vers-free-00000035", "1?OK:KO") in new stack
-- Goto (depuis-free,s,3)
-- Executing [s@depuis-free:3] Goto("SIP/vers-free-00000035", "ivr-domojimbo,s,1") in new stack
-- Goto (ivr-domojimbo,s,1)
-- Executing [s@ivr-domojimbo:1] Answer("SIP/vers-free-00000035", "") in new stack
-- Executing [s@ivr-domojimbo:2] Set("SIP/vers-free-00000035", "TIMEOUT(response)=10") in new stack
-- Response timeout set to 10.000
-- Executing [s@ivr-domojimbo:3] AGI("SIP/vers-free-00000035", "googletts.agi,"bienvenu sur le serveur vocal de l'appartement du bonheur",fr,any") in new stack
-- Launched AGI Script /var/lib/asterisk/agi-bin/googletts.agi
-- Playing '/tmp/2ca9a4c757c2b56d71d83d9746c2a1b6' (escape_digits=0123456789#*) (sample_offset 0)
-- <SIP/vers-free-00000035>AGI Script googletts.agi completed, returning 0
-- Executing [s@ivr-domojimbo:4] AGI("SIP/vers-free-00000035", "googletts.agi,"Pour allumer tapez 1",fr,any") in new stack
-- Launched AGI Script /var/lib/asterisk/agi-bin/googletts.agi
-- Playing '/tmp/d4759183e1d614b0e1f92444ab035d43' (escape_digits=0123456789#*) (sample_offset 0)
-- <SIP/vers-free-00000035>AGI Script googletts.agi completed, returning 0
-- Executing [s@ivr-domojimbo:5] AGI("SIP/vers-free-00000035", "googletts.agi,"Pour eteindre tapez 2",fr,any") in new stack
-- Launched AGI Script /var/lib/asterisk/agi-bin/googletts.agi
-- Playing '/tmp/d8de607d7cb459fe33155ea786216a93' (escape_digits=0123456789#*) (sample_offset 0)
-- <SIP/vers-free-00000035>AGI Script googletts.agi completed, returning 0
-- Executing [s@ivr-domojimbo:6] AGI("SIP/vers-free-00000035", "googletts.agi,"Pour sortir tapez 9",fr,any") in new stack
-- Launched AGI Script /var/lib/asterisk/agi-bin/googletts.agi
-- Playing '/tmp/fb10166de1cd36a57af65aa5b7f3784e' (escape_digits=0123456789#*) (sample_offset 0)
-- <SIP/vers-free-00000035>AGI Script googletts.agi completed, returning 0
-- Executing [s@ivr-domojimbo:7] AGI("SIP/vers-free-00000035", "googletts.agi,"Appuyez sur dieze si vous souhaitez r▒▒couter ce message",fr,any") in new stack
-- Launched AGI Script /var/lib/asterisk/agi-bin/googletts.agi
-- Playing '/tmp/b7136cab12555092586884c0978b76e6' (escape_digits=0123456789#*) (sample_offset 0)
-- <SIP/vers-free-00000035>AGI Script googletts.agi completed, returning 0
-- Executing [9@ivr-domojimbo:1] Ringing("SIP/vers-free-00000035", "") in new stack
-- Auto fallthrough, channel 'SIP/vers-free-00000035' status is 'UNKNOWN'
Voici mon extension.conf
[depuis-free]
exten => s,1,agi(/usr/bin/python,"/var/lib/asterisk/agi-bin/monscript.agi")
exten => s,2,GotoIf($["${CALLERID(num)}" = "06xxxxxxxx"]?OK:KO)
exten => s,n(OK),Goto(ivr,s,1)
exten => s,n(KO),Ringing
[ivr]
exten => s,1,Set(TIMEOUT(response)=10)
exten => s,2,agi(googletts.agi,"bienvenu sur le serveur vocal de l'appartement du bonheur",fr,any)
exten => s,3,agi(googletts.agi,"Pour allumer tapez 1",fr,any)
exten => s,4,agi(googletts.agi,"Pour eteindre tapez 2",fr,any)
exten => s,5,agi(googletts.agi,"Pour sortir tapez 9",fr,any)
exten => s,6,agi(googletts.agi,"Appuyez sur dieze si vous souhaitez réécouter ce message",fr,any)
exten => s,7,WaitExten()
exten => 1,1,agi(googletts.agi,"ok j'allume",fr,any)
exten => 1,2,AGI(/usr/bin/python,"/var/lib/asterisk/agi-bin/ON.agi")
exten => 1,1,agi(googletts.agi,"ok j'eteins",fr,any)
exten => 2,2,AGI(/usr/bin/python,"/var/lib/asterisk/agi-bin/OFF.agi")
;exten => 9,1,Ringing
exten => 9,1,Goto(depuis-free,s,KO)
exten => _[3-8#],1,Goto(ivr,s,3)
exten => t,1,Goto(ivr,s,3)
Merci par avance, si quelqu'un peut m'aider