Semplice script per liberarsi dei fastidiosi callcenters su linea fissa TIM VoIP.
Se il numero chiamante appartiene alla blocklist Tellows, la chiamata viene rifiutata.
E' necessario essere in possesso di username e password per connettersi in SIP al Router TIM (Fibra)
Si possono facilmente ricavarli lanciando
curl -k -u 8Z6PlbuD6VFR8KLr:admin --data "Action=GetConfig&ClientID=XX:XX:XX:XX:XX:XX&Cli=XXXXXXXXXX" https://192.168.1.1:8443/SIPGwConfig
Se la password del router è stata cambiata, modifica 'admin' con quella attuale
- ClientID=XX:XX:XX:XX:XX:XX dove XX:XX:XX:XX:XX:XX è il MAC Address della macchina che farà da centralino e si connetterà al router.
- Cli=XXXXXXXXXX dove XXXXXXXXXX è il tuo numero di telefono fisso (senza +39)
Dopo qualche secondo il router risponderà con un XML contenente i dati cercati
<?xml version="1.0" encoding="UTF-8"?>
<SIPClientConfig>
<AuthUserName>**04</AuthUserName>
<AuthPassword>i3uCDw3r432fd3kdso4odob9we456fez05iiW2IrR143HHykQnkS7JK90k7dXqnwdVr</AuthPassword>
<AuthRealm>modemtelecom.homenet.telecomitalia.it</AuthRealm>
<Registrar>modemtelecom.homenet.telecomitalia.it</Registrar>
<RegistrarPort>5065</RegistrarPort>
<OutboundProxy>modemtelecom.homenet.telecomitalia.it</OutboundProxy>
<OutboundProxyPort>5065</OutboundProxyPort>
<TransportProtocol>UDP</TransportProtocol>
</SIPClientConfig>
E' necessario un PC con SO Linux (più info a piè pagina)
Creiamo un file docker-compose.yml sostituendo USERNAME e PASSWORD con quelle ricevute dal router:
version: '2'
services:
moby:
build: ./Asterisk
image: guglio/asterisk
container_name: asteriskTIM
environment:
- ROUTER_IP=192.168.1.1
- USERNAME=**04
- PASSWORD=i3uCDw3r432fd3kdso4odob9we456fez05iiW2IrR143HHykQnkS7JK90k7dXqnwdVr
network_mode: "host"
restart: always
fastagi:
build: ./FastAGI
image: guglio/fastagi
container_name: fastagi
ports:
- "127.0.0.1:4573:4573"
restart: always
Ora basta solo avviare il container:
docker-compose up -d
Utilizzare Java per fare un semplice controllo online è molto dispendioso in termini di risorse;
Si potrebbe eliminare la dipendenza da Java perdendo la possibilità di aggiungere facilmente nuove funzionalità al progetto