Autore Topic: Video sorveglianza con openwrt motion su VS  (Letto 10794 volte)

truthahn

  • Global Moderator
  • Hero Member
  • *****
  • Post: 1546
    • Mostra profilo
Re: Video sorveglianza con openwrt motion su VS
« Risposta #75 il: Maggio 03, 2011, 03:38:19 pm »
ci son due aspetti da considerare:
1:  motion rileva un movimento e chiama un numero, e questo ci sei
2: da remoto dobbiamo essere in grado di attivare o disattivare l'allarme

exten => s,1,Answer()
   exten => s,n,Read(INPUT|agent-pass|0||3|10)
   exten => s,n,SayDigits(${INPUT})
   exten => s,n,AGI(allarme.sh,${INPUT})
   exten => s,n,Hangup()

questa parte semplicemente passa a allarme.sh la pass inserita con il telefono (tieni presente che con la vs per asterisk io mi appoggiavo ad un server esterno)

Asterisk ca a cercare allarme.sh in /usr/lib/asterisk/agi-bin (quindi le agi-bin devono essere incluse nei moduli di asterik)

e...

#!/bin/sh
lynx http://ip_della_vs/cgi-bin/gesallarme.sh?pass=$1
exit

chiaramente punta al file della cengtralina gesallarme.sh passando la pass $1... e qui fai tu quello che vuoi.

Se asterisk risiede sulla stessa vs le cose naturalmente cambiano..



lupin73

  • Full Member
  • ***
  • Post: 128
    • Mostra profilo
    • E-mail
Re: Video sorveglianza con openwrt motion su VS
« Risposta #76 il: Maggio 03, 2011, 08:02:03 pm »
ci son due aspetti da considerare:
1:  motion rileva un movimento e chiama un numero, e questo ci sei
2: da remoto dobbiamo essere in grado di attivare o disattivare l'allarme

exten => s,1,Answer()
   exten => s,n,Read(INPUT|agent-pass|0||3|10)
   exten => s,n,SayDigits(${INPUT})
   exten => s,n,AGI(allarme.sh,${INPUT})
   exten => s,n,Hangup()

questa parte semplicemente passa a allarme.sh la pass inserita con il telefono (tieni presente che con la vs per asterisk io mi appoggiavo ad un server esterno)

Asterisk ca a cercare allarme.sh in /usr/lib/asterisk/agi-bin (quindi le agi-bin devono essere incluse nei moduli di asterik)

e...

#!/bin/sh
lynx http://ip_della_vs/cgi-bin/gesallarme.sh?pass=$1
exit

chiaramente punta al file della cengtralina gesallarme.sh passando la pass $1... e qui fai tu quello che vuoi.

Se asterisk risiede sulla stessa vs le cose naturalmente cambiano..



Allora le modifiche fondamentali che ho fatto riguardano la parte che nei tuoi script facevano uso di scp.
Nel mio caso non occorre visto che asterisk risiede sul router. E' bastato cambiare i percorsi assoluti dei file e qualche modifica all'asterisk.conf per evitare che asterisk salvi alcuni file nella memoria volatile del router che non si ritroverebbero al riavvio.
Ho verificato i vari script e non vedo errori.
Quello a cui sono arrivato adesso è che telefonando al numero geografico asterisk risponde (senza dire una parola  :lol: e inoltre dalla cornetta non sento gli squilli di chiamata) e si mette in attesa di ricevere un input.
Sia che io digiti qualcosa o no si avvia motion che poi non riesco a killare nemmeno con il bazooka  :-D in quanto fra i processi vedo anche elinks (non ho usato lynx perchè come sappiamo non c'è su wrt) che anche se killato resuscita  :x.

Codice: [Seleziona]
#!/bin/sh
elinks http://127.0.0.1/cgi-bin/gesallarme.sh?pass=$1
exit

Questo il debug di asterisk
Codice: [Seleziona]
*CLI>       
       > doing dnsmgr_lookup for 'voip.eutelia.it'
       > ast_get_srv: SRV lookup for '_sip._udp.voip.eutelia.it' mapped to host                                                                                                                 voip.eutelia.it, port 5060
       > doing dnsmgr_lookup for 'voip.eutelia.it'
       > ast_get_srv: SRV lookup for '_sip._udp.voip.eutelia.it' mapped to host                                                                                                                              voip.eutelia.it, port 5060
    -- Executing [0917481324@macro-allarme:1] Macro("SIP/EuteliaVoIP-00000000", "allarme,205") in new stack
    -- Executing [s@macro-allarme:1] Answer("SIP/EuteliaVoIP-00000000", "") in new stack
    -- Executing [s@macro-allarme:2] Read("SIP/EuteliaVoIP-00000000", "INPUT|agent-pass |0||3|10") in new stack
[May  3 17:25:51] WARNING[1597]: pbx.c:1348 pbx_exec: The application delimiter is now the comma, not the pipe.  Did you forget to convert your  your dialplan?
(Read  (INPUT|agent-pass |0||3|10))

    -- User entered nothing.
    -- Executing [s@macro-allarme:3] SayDigits("SIP/EuteliaVoIP-00000000", "") in new stack
    -- Executing [s@macro-allarme:4] AGI("SIP/EuteliaVoIP-00000000", "allarme.sh ,") in new stack
    -- Launched AGI Script /usr/lib/asterisk/agi-bin/allarme.sh   


Un errore effettivamente potrebbe essere questo:
[May  3 17:25:51] WARNING[1597]: pbx.c:1348 pbx_exec: The application delimiter is now the comma, not the pipe.  Did you forget to convert your  your dialplan?
(Read  (INPUT|agent-pass |0||3|10))


    -- User entered nothing.

Nel frattempo asterisk chiude la chiamata.
Inutile dire che anche la webif s'impalla....

« Ultima modifica: Maggio 03, 2011, 08:03:36 pm da lupin73 »

lupin73

  • Full Member
  • ***
  • Post: 128
    • Mostra profilo
    • E-mail
Re: Video sorveglianza con openwrt motion su VS
« Risposta #77 il: Maggio 03, 2011, 08:13:42 pm »
uhm ho fatto la modifica richiesta dall'errore e ottengo questo:

Codice: [Seleziona]

*CLI>       
       > doing dnsmgr_lookup for 'voip.eutelia.it'
       > ast_get_srv: SRV lookup for '_sip._udp.voip.eutelia.it' mapped to host voip.eutelia.it, port 5060
       > doing dnsmgr_lookup for 'voip.eutelia.it'
       > ast_get_srv: SRV lookup for '_sip._udp.voip.eutelia.it' mapped to host voip.eutelia.it, port 5060
  == Using SIP RTP CoS mark 5
    -- Executing [0917481324@macro-allarme:1] Macro("SIP/EuteliaVoIP-00000000", "allarme,205") in new stack
    -- Executing [s@macro-allarme:1] Answer("SIP/EuteliaVoIP-00000000", "") in new stack
    -- Executing [s@macro-allarme:2] Read("SIP/EuteliaVoIP-00000000", "INPUT|agent-pass 0,,3,10") in new stack
    -- Accepting a maximum of 3 digits.
    -- User entered nothing.
    -- Executing [s@macro-allarme:3] SayDigits("SIP/EuteliaVoIP-00000000", "") in new stack
    -- Executing [s@macro-allarme:4] AGI("SIP/EuteliaVoIP-00000000", "allarme.sh,") in new stack
    -- Launched AGI Script /usr/lib/asterisk/agi-bin/allarme.sh



Adesso come si vede l'errore non ? pi? presente:
    -- Executing [s@macro-allarme:2] Read("SIP/EuteliaVoIP-00000000", "INPUT|agent-pass 0,,3,10") in new stack
    -- Accepting a maximum of 3 digits.
    -- User entered nothing.

Ho cambiato:

Codice: [Seleziona]
INPUT|agent-pass |0||3|10
in

Codice: [Seleziona]
INPUT|agent-pass 0,,3,10

ma il risultato e che sembra non leggere l'input da tastiera  :x




truthahn

  • Global Moderator
  • Hero Member
  • *****
  • Post: 1546
    • Mostra profilo
Re: Video sorveglianza con openwrt motion su VS
« Risposta #78 il: Maggio 03, 2011, 08:20:27 pm »
prima cosa: se utilizzi asterisk sulla vs non ha senso chiamare elinks, basta fare uno script direttamente nell' agi-bin, quindi sotituisci questo

#!/bin/sh
elinks http://127.0.0.1/cgi-bin/gesallarme.sh?pass=$1
exit

con lo script per gestire motion...

esempio, senza pass, dall' interno 101:

Codice: [Seleziona]
[101];
   exten => *666,1,Answer
   exten => *666,n,Wait(1)
   exten => *666,n,AGI(allarmestart.sh)
   exten => *666,n,Wait(1)
   exten => *666,n,Hangup()
   exten => *777,1,Answer
   exten => *777,n,Wait(1)
   exten => *777,n,AGI(allarmestop.sh)
   exten => *777,n,Wait(1)
   exten => *777,n,Hangup()
   ......  

quindi con *666 attivi l'allarme e con *777 lo disattivi facendo partire i relativi script.

Invece per l'errore tu stai evidentemente utilizzando asterisk 1.6 che a differenza dell'1.4 usa le virgole al posto del "|"... sostituisci e vedrai che funzia.






truthahn

  • Global Moderator
  • Hero Member
  • *****
  • Post: 1546
    • Mostra profilo
Re: Video sorveglianza con openwrt motion su VS
« Risposta #79 il: Maggio 03, 2011, 08:24:53 pm »
ci siamo sormontati... hai un altro errore...

  non
 exten => s,n,Read(INPUT|agent-pass,0,,3,10)

ma
   exten => s,n,Read(INPUT,agent-pass,0,,3,10)
   

lupin73

  • Full Member
  • ***
  • Post: 128
    • Mostra profilo
    • E-mail
Re: Video sorveglianza con openwrt motion su VS
« Risposta #80 il: Maggio 03, 2011, 08:43:42 pm »
ci siamo sormontati... hai un altro errore...

  non
 exten => s,n,Read(INPUT|agent-pass,0,,3,10)

ma
   exten => s,n,Read(INPUT,agent-pass,0,,3,10)
   
caspita ? vero che senso aveva la password  :-o
adesso provo a fare le modifiche , grazie come sempre della gentilezza

truthahn

  • Global Moderator
  • Hero Member
  • *****
  • Post: 1546
    • Mostra profilo
Re: Video sorveglianza con openwrt motion su VS
« Risposta #81 il: Maggio 03, 2011, 08:47:51 pm »
la pass ha senso se chiami dall'esterno su un numero voip pubblico,  altrimenti se uno sbaglia numero e fa proprio quello dell'allarme te lo attiva o disattiva.

lupin73

  • Full Member
  • ***
  • Post: 128
    • Mostra profilo
    • E-mail
Re: Video sorveglianza con openwrt motion su VS
« Risposta #82 il: Maggio 03, 2011, 09:16:55 pm »
la pass ha senso se chiami dall'esterno su un numero voip pubblico,  altrimenti se uno sbaglia numero e fa proprio quello dell'allarme te lo attiva o disattiva.
aspetta io chiamo dall'esterno su un voip publlico!!!!
forse non mi sono spiegato bene

truthahn

  • Global Moderator
  • Hero Member
  • *****
  • Post: 1546
    • Mostra profilo
Re: Video sorveglianza con openwrt motion su VS
« Risposta #83 il: Maggio 03, 2011, 09:29:40 pm »
allora ti conviene utilizzare una pass, cos? utilizzi pure lo stesso numero.
e la conf sopra per la gestione interna.

lupin73

  • Full Member
  • ***
  • Post: 128
    • Mostra profilo
    • E-mail
Re: Video sorveglianza con openwrt motion su VS
« Risposta #84 il: Maggio 03, 2011, 09:33:03 pm »
ho fatto la modifica che mi avevi detto adesso asterisk risponde e ripete la password per? non si accende motion
*CLI> 
     == Using SIP RTP CoS mark 5
    -- Executing [0917481324@macro-allarme:1] Macro("SIP/EuteliaVoIP-00000000", "allarme,205") in new stack
    -- Executing [s@macro-allarme:1] Answer("SIP/EuteliaVoIP-00000000", "") in new stack
    -- Executing [s@macro-allarme:2] Read("SIP/EuteliaVoIP-00000000", "INPUT,agent-pass,0,,3,10") in new stack
    -- <SIP/EuteliaVoIP-00000000> Playing 'agent-pass.gsm' (language 'en')
    -- User entered '1111'
    -- Executing [s@macro-allarme:3] SayDigits("SIP/EuteliaVoIP-00000000", "1111") in new stack
    -- <SIP/EuteliaVoIP-00000000> Playing 'digits/1.gsm' (language 'en')
    -- <SIP/EuteliaVoIP-00000000> Playing 'digits/1.gsm' (language 'en')
    -- <SIP/EuteliaVoIP-00000000> Playing 'digits/1.gsm' (language 'en')
    -- <SIP/EuteliaVoIP-00000000> Playing 'digits/1.gsm' (language 'en')
    -- Executing [s@macro-allarme:4] AGI("SIP/EuteliaVoIP-00000000", "allarme.sh,1111") in new stack
    -- Launched AGI Script /usr/lib/asterisk/agi-bin/allarme.sh
    -- <SIP/EuteliaVoIP-00000000>AGI Script allarme.sh completed, returning 0
    -- Executing [s@macro-allarme:5] Hangup("SIP/EuteliaVoIP-00000000", "") in new stack
  == Spawn extension (macro-allarme, s, 5) exited non-zero on 'SIP/EuteliaVoIP-00000000' in macro 'allarme'
  == Spawn extension (macro-allarme, 0917481324, 1) exited non-zero on 'SIP/EuteliaVoIP-00000000'

lupin73

  • Full Member
  • ***
  • Post: 128
    • Mostra profilo
    • E-mail
Re: Video sorveglianza con openwrt motion su VS
« Risposta #85 il: Maggio 03, 2011, 10:06:25 pm »
domani ricontrollo gli script e vedo chi finge di lavorare mi stanno venendo i capelli cos?  :mrgreen:
 :-D

lupin73

  • Full Member
  • ***
  • Post: 128
    • Mostra profilo
    • E-mail
Re: Video sorveglianza con openwrt motion su VS
« Risposta #86 il: Maggio 06, 2011, 05:07:01 pm »
domani ricontrollo gli script e vedo chi finge di lavorare mi stanno venendo i capelli cos?  :mrgreen:
 :-D

Funziona!!!  :-D
Allora truthahn sostanzialmente ho eliminato:

allarme.sh cio?:
Codice: [Seleziona]
#!/bin/sh
elinks http://127.0.0.1/cgi-bin/gesallarme.sh?pass=$1
exit

ho spostato gesallarme.sh in /usr/lib/asterisk/agi-bin

e l'ho modificato cos?:

Codice: [Seleziona]
root@OpenWrt:/usr/lib/asterisk/agi-bin# cat gesallarme.sh
#!/bin/sh
FORM_pass=$1
file=/etc/centralina/allarme
passon="$(cat $file | awk '{split ($0, a, " ");print a[1]}')"
passoff="$(cat $file | awk '{split ($0, a, " ");print a[2]}')"


#attiva allarme
if [ "$FORM_pass" = "$passon" ];then
         /usr/bin/motion
fi
#Disattiva allarme
if [ $FORM_pass = "$passoff" ];then
        PID=`pidof motion`
        kill $PID
        killall gesallarme.sh
fi
exit

Senti visto che asterisk mi ha appassionato non ? che sai consigliarmi qualche libro o guida completa?
« Ultima modifica: Maggio 06, 2011, 05:46:47 pm da lupin73 »

truthahn

  • Global Moderator
  • Hero Member
  • *****
  • Post: 1546
    • Mostra profilo
Re: Video sorveglianza con openwrt motion su VS
« Risposta #87 il: Maggio 06, 2011, 11:30:26 pm »
Bene!!!
No, non ti so consigliare una guida... ma la rete ? una miniera di esempi per capire.

lupin73

  • Full Member
  • ***
  • Post: 128
    • Mostra profilo
    • E-mail
Re: Video sorveglianza con openwrt motion su VS
« Risposta #88 il: Maggio 08, 2011, 01:06:30 am »
Ho modificato un po di cose avendo la necessit? di comandare tutti i carichi della scheda rel? anche da telefono.
Al mio extensions.conf ho aggiunto le seguenti righe:
Codice: [Seleziona]
;attiva/disatttiva motion
[motion]      
   exten => 1,1,Read(INPUT,on_off,0,,3,5)
   exten => 1,n,SayDigits(${INPUT})
   exten => 1,n,AGI(gesallarme.sh,${INPUT})
   exten => 1,n,Set(IO=0)
   exten => 1,n,AGI(check_IO.sh,${IO})
   exten => 1,n,Playback(motion)
   exten => 1,n,Playback(${sorveglianza})
   exten => 1,n,Hangup()

;attiva/disatttiva luci
[luci]    
   exten => 2,1,Read(INPUT,on_off,0,,3,5)
   exten => 2,n,SayDigits(${INPUT})
   exten => 2,n,AGI(gesluci.sh,${INPUT})
   exten => 2,n,Set(IO=25)
   exten => 2,n,AGI(check_IO.sh,${IO})
   exten => 2,n,Playback(luci)
   exten => 2,n,Playback(${gpio_25})
   exten => 2,n,Hangup()

;attiva/disatttiva irrigazione
[irrigazione]
   exten => 3,1,Read(INPUT,on_off,0,,3,5)
   exten => 3,n,SayDigits(${INPUT})
   exten => 3,n,AGI(gesirrigazione.sh,${INPUT})
   exten => 3,n,Set(IO=6)
   exten => 3,n,AGI(check_IO.sh,${IO})
   exten => 3,n,Playback(irrigazione)
   exten => 3,n,Playback(${gpio_6})
   exten => 3,n,Hangup()

;attiva/disatttiva scaldabagno
[scaldabagno]
   exten => 4,1,Read(INPUT,on_off,0,,3,5)
   exten => 4,n,SayDigits(${INPUT})
   exten => 4,n,AGI(gesscaldabagno.sh,${INPUT})
   exten => 4,n,Set(IO=7)
   exten => 4,n,AGI(check_IO.sh,${IO})
   exten => 4,n,Playback(scaldabagno)
   exten => 4,n,Playback(${gpio_7})
   exten => 4,n,Hangup()

;controllo dello stato globale dei gpio e motion
[stato-gpio]
   exten => 5,1,AGI(check_stato.sh)
   exten => 5,n,Playback(luci)
   exten => 5,n,Playback(${gpio_25})
   exten => 5,n,Wait(2)
   exten => 5,n,Playback(irrigazione)
   exten => 5,n,Playback(${gpio_6})
   exten => 5,n,Wait(2)
   exten => 5,n,Playback(scaldabagno)
   exten => 5,n,Playback(${gpio_7})
   exten => 5,n,Wait(2)
   exten => 5,n,Playback(sorveglianza)
   exten => 5,n,Playback(${motion})
   exten => 5,n,Wait(1)
   exten => 5,n,Goto(macro-allarme,s,4)

;chiamata d'allarme su interno
[allarme]
   exten => s,1,Set(CHANNEL(language)=it)
   exten => s,n,Answer
   exten => s,n,Wait(2)
   exten => s,n,Playback(allarme)
   exten => s,n,Wait(1)
   exten => s,n,Playback(allarme)
   exten => s,n,Wait(1)
   exten => s,n,Playback(allarme)
   exten => s,n,Wait(1)
   exten => s,n,Playback(allarme)
   exten => s,n,Wait(1)
   exten => s,n,Playback(allarme)
   exten => s,n,Wait(1)
   exten => s,n,Hangup

;menu vocale attivazione carichi
[macro-allarme]
   exten => s,1,Answer()
   exten => s,n,Authenticate(1234)
   exten => s,n,Set(contatore=0)
   exten => s,n(menu),Background(menu)
   exten => s,n,WaitExten(6)
   exten => s,n,SayDigits()
   exten => s,n,Set(contatore=$[${contatore} + 1])
   exten => s,n,GotoIf($[${contatore} < 2]?menu:)
   exten => s,n,Playback(arrivederci)
   exten => s,n,Hangup()

;switc menu
   exten => 1,1,Goto(motion,1,1)
   exten => 2,1,Goto(luci,2,1)
   exten => 3,1,Goto(irrigazione,3,1)
   exten => 4,1,Goto(scaldabagno,4,1)
   exten => 5,1,Goto(stato-gpio,5,1)
   exten => 6,1,Goto(macro-allarme,s,10)

;numero da chiamare
exten => mio_numero,1,Macro(allarme,205)

Il file on_off.gsm ci indicher? di selezionare 1 per accendere la luce e 2 per spegnerla e poi passer? il valore selezionato a gesluci.sh che naturalmente gestisce i gpio.

Codice: [Seleziona]

#!/bin/sh
FORM_pass=$1

#accendi luce
if [ "$FORM_pass" = "1" ];then
        gpioctl dirout 25 > /dev/null
fi

#spegni luce
if [ "$FORM_pass" = "2" ];then
        gpioctl set 25 > /dev/null
fi
exit

Ho quindi creato tutti gli altri script e messi in :
Codice: [Seleziona]
root@OpenWrt:~# ls -la /usr/lib/asterisk/agi-bin/
drwxr-xr-x    2 root     root            0 May  8 00:47 .
drwxr-xr-x    6 root     root            0 Oct 29  2010 ..
-rwxr-xr-x    1 root     root           39 May  6 15:01 allarme.sh
-rwxr-xr-x    1 root     root          218 May  8 00:49 gesallarme.sh
-rwxr-xr-x    1 root     root            0 May  8 00:03 gesirrigazione.sh
-rwxr-xr-x    1 root     root          193 May  7 23:20 gesluci.sh
-rwxr-xr-x    1 root     root            0 May  8 00:03 gesscaldabagno.sh
-rwxr-xr-x    1 root     root            0 May  8 00:03 check_stato.sh
-rwxr-xr-x    1 root     root            0 May  8 00:03 check_IO.sh

Bello asterisk !   :-D
« Ultima modifica: Maggio 09, 2011, 04:09:54 pm da lupin73 »

lupin73

  • Full Member
  • ***
  • Post: 128
    • Mostra profilo
    • E-mail
Re: Video sorveglianza con openwrt motion su VS
« Risposta #89 il: Maggio 09, 2011, 04:50:02 pm »
uhm i problemi non finiscono mai!  :roll:

Premetto che il dialplan precedente funziona perfettamente ma c'è un piccolo neo.
Se analizziamo:
Codice: [Seleziona]
;attiva/disatttiva luci
[luci]   
   exten => 2,1,Read(INPUT,on_off,0,,3,5)
   exten => 2,n,SayDigits(${INPUT})
   exten => 2,n,AGI(gesluci.sh,${INPUT})
   exten => 2,n,Set(IO=25)
   exten => 2,n,AGI(check_IO.sh,${IO})
   exten => 2,n,Playback(luci)
   exten => 2,n,Playback(${gpio_25})
   exten => 2,n,Hangup()

Questo contesto non fa altro che prendere un input da tastiera (1 o 2) per accendere o spegnere le luci passando il parametro allo script gesluci.sh.
In seguito analizza lo stato del gpio corrispondente con lo script check_IO.sh e ci avviserà che la luce è stata accesa o spenta con un messaggio vocale.
Questo è check_IO.sh
Codice: [Seleziona]
#!/bin/sh
##############################################
##############################################
#Controllo dello stato di un gpio o di motion
##############################################
##############################################
n=$1

  if [ $n = 0 ]; then
        pimotion=`pidof motion`
        if [ "$pidmotion" -eq "" ]; then
               stato_motion="disattivo"
               echo -e "SET VARIABLE motion $stato_motion"
        else
               stato_motion="attivo"
               echo -e "SET VARIABLE motion $stato_motion"

        fi

  else

        gp="$(gpioctl get $n | sed -n '/Pin/p'| awk '{ print $4 }')"

        if [ $gp == "HIGH" ]; then
              VALUE="disattivo"
              echo -e "SET VARIABLE gpio_$n $VALUE"
        fi

        if [ $gp == "LOW" ]; then
                VALUE="attivo"
                echo -e "SET VARIABLE gpio_$n $VALUE"
        fi
  fi

exit 0

Qui tutto bene.
Il problema nasce con motion che ha un contesto simile:

Codice: [Seleziona]
;attiva/disatttiva motion
[motion]     
   exten => 1,1,Read(INPUT,on_off,0,,3,5)
   exten => 1,n,SayDigits(${INPUT})
   exten => 1,n,AGI(gesallarme.sh,${INPUT})
   exten => 1,n,Set(IO=0)
   exten => 1,n,AGI(check_IO.sh,${IO})
   exten => 1,n,Playback(motion)
   exten => 1,n,Playback(${sorveglianza})
   exten => 1,n,Hangup()

Il contesto funziona bene fino allo script gesallarme e si avvia motion ma poi non prosegue in quanto è come se l'AGI vedesse gesallarme.sh sempre in esecuzione e non procede ad eseguire il contesto:

Codice: [Seleziona]
    .
    .
   exten => 1,n,Set(IO=0)
   exten => 1,n,AGI(check_IO.sh,${IO})
   exten => 1,n,Playback(motion)
   exten => 1,n,Playback(${sorveglianza})
   exten => 1,n,Hangup()
quindi in poche parole non mi avvisa dello stato di motion e il telefono rimane muto fino a quando non chiudo la chiamata

Questo è gesallarme.sh:
Codice: [Seleziona]
root@OpenWrt:~# cat /usr/lib/asterisk/agi-bin/gesallarme.sh
#!/bin/sh

FORM_pass=$1
#attiva allarme
if [ $FORM_pass = "1" ];then
         /usr/bin/motion &> /dev/null
fi

#Disattiva allarme
if [ $FORM_pass = "2" ];then
        PID=`pidof motion`
        kill $PID
        killall gesallarme.sh
fi

exit

Qualcuno ha idea di come "forzare" l'AGI a considerare terminato lo script?

Forse sarebbe meglio cambiare il nome di questo 3d in: "Video sorveglianza con openwrt motion su VS,AGPF e Asterisk :-D
« Ultima modifica: Maggio 10, 2011, 06:15:04 pm da lupin73 »