IlPuntoTecnico
Hardware e Software => Connessioni ADSL/VDSL/FTTC => Topic aperto da: effe77 - 06 Agosto 2019, 23:16
-
Ciao a tutti, premesso che non so se questa mia richiesta può essere fattibile ma avrei la necessità di inviare l'ID delle chiamate entranti voip (su un router Tim Hub) in tempo reale alla chiamata o leggera differita (va bene anche un polling ogni 60 secondi) verso l'esterno (per esempio attraverso mail) Ho provato un po' a spippolare ma non trovato assolutamente niente :-(
Nel registro delle chiamate il dato c'è...ma come si preleva??? Mi basterebbe anche la possibilta di accedere alla pagina http://192.168.1.1/modals/mmpbx-log-modal.lp senza auth!!!
Confido in voi!
-
/etc/config/web
togli tutti o aggiungi il role guest a quella pagina
-
Mi interesserebbe anche a me questa cosa ma mi puoi spiegare dettagliatamente il da farsi???
Grazie mille
-
La mia idea iniziare era di fare un grabbing della pagina indicata (http://192.168.1.1/modals/mmpbx-log-modal.lp) e sparare per mail i nuovi record.
Ho però trovato il file dove sono memorizzati questi dati, ovvero un database di sqlite 3.x su /etc/lasdb.db quindi voglio provare a lavorare direttamente su quello...vediamo se arrivo a qualcosa!
-
La mia idea iniziare era di fare un grabbing della pagina indicata (http://192.168.1.1/modals/mmpbx-log-modal.lp) e sparare per mail i nuovi record.
Ho però trovato il file dove sono memorizzati questi dati, ovvero un database di sqlite 3.x su /etc/lasdb.db quindi voglio provare a lavorare direttamente su quello...vediamo se arrivo a qualcosa!
edit
Se a qualcuno può servire, ecco lo script che ho messo sul TimHub (per adesso per l'invio delle mail mi appoggio a un'altra macchina) da far girare tramite cron
#!/bin/sh
db_rows2event()
{
db_sqlite=$1
from_id=$2
to_id=$3
sql="Select EntryIdentifier, case when ReadStatus = 255 then 'NO' else 'SI' end as risposta, Remote, Direction, Cast((JulianDay(endtime) - JulianDay(connectedTime)) * 24 * 60 * 60 as Integer) as durata, strftime('%s', connectedTime) as data from calllog where EntryIdentifier between $from_id and $to_id"
for row in `/usr/bin/sqlite3 $db_sqlite "$sql"` ;do
echo -e "GET http://192.168.xx.xx/event.php?$row HTTP/1.1\r\nHost: 192.168.xx.xx.eg\r\n\r\n" | nc 192.168.xx.xx 80 > /dev/null
done
}
db_sqlite=/etc/lasdb.db
file_last_id="/tmp/last-call-id"
last_id=0
new_id=0
if [ -f "$file_last_id" ]; then
last_id=`cat $file_last_id`
fi
new_id=`/usr/bin/sqlite3 $db_sqlite "Select max(EntryIdentifier) from calllog;"`
if [ "$new_id" -gt "$last_id" ]; then
#record da inviare
db_rows2event $db_sqlite $last_id $new_id
echo $new_id > $file_last_id
fi
Sul server poi faccio il parsing della chiamata "GET http://192.168.xx.xx/event.php?591|SI|12345789|1|186|1565179052 HTTP/1.1" 404 287 "-" "-"
dove i parametri sono, nell'ordine
ID del record
SI|NO indica se la telefonata ha avuto risposta
Numero chiamante o chiamato
1|2 chiamata in entrata/uscita
Durata telefonata (sec)
Timestamp telefonata