Questa guida, non essendo nata per approfondire come è strutturata la rete Vodafone, si concentrerà esclusivamente sui passaggi da eseguire per portare a termine una corretta configurazione del vostro router. Per chiunque voglia capirne meglio o approfondirne il funzionamento, consiglio vivamente di consultare l’esaustivo articolo che ha scritto LukePicci qui
https://www.hwupgrade.it/forum/showthread.php?t=2812168.
COSA SERVE:1) Un router con accesso root Homeware >= 16.3 o OpenWRT >= 15.05
2) I dati di autenticazione VOIP (sono consultabili nell’area personale oppure è possibile richiederli direttamente a Vodafone)
3) I proxy a cui collegarsi utilizzati dalla vostra Vodafone Station
4) Il seriale della vostra Vodafone Station
1 – ESTRARRE I PROXY DALLA CONFIGURAZIONE DELLA VODAFONE STATIONSe avete una Vodafone Station 2 o una Vodafone Station Revolution, mentre è collegata con fonia funzionante, dovete entrare nella pagina di amministrazione, aprire una console Javascript (su chrome/firefox premete F12), incollare il seguente codice e dare invio:
function cwmp_get_values(target) {
var my_soap_obj=new SOAPObject("ParameterNames").val("<string>"+target+"</string>");
var my_next_level=new SOAPObject("NextLevel").val("1");
invoke_rpc("cwmp:GetParameterValues", new Array(my_soap_obj,my_next_level), function(xml){console.log(new XMLSerializer().serializeToString(xml))});
}
cwmp_get_values("InternetGatewayDevice.Services.VoiceService.1.VoiceProfile.")
dall’output che ne esce, prendete gli indirizzi di proxy primario, proxy secondario, registrar primario e registrar secondario. Dovreste trovarli scritti nella forma proxy1.****.vodafone.it e proxy2.****.vodafone.it. Mettete da parte questi 4 indirizzi (nel caso proxy e registrar coincidessero, saranno solo 2 diversi indirizzi proxy1/proxy2).
2 – SERIALE DELLA VODAFONE STATION E HOST-UNIQSul retro della Vodafone Station è presente un’etichetta che riporta il seriale, lo trovate scritto nella forma X123456789, dove il primo carattere indica il produttore della station mentre la parte finale è un codice numerico. Segnatevi il seriale e mettetelo da parte.
Ora dovete calcolare l’host_uniq facendo una conversione stringa-esadecimale del seriale che avete appena preso.
Per farlo, potete dare il seguente comando direttamente sul vostro router da una sessione SSH inserendo il vostro seriale al posto di X123456789:
echo -n X12345678912345 | hexdump -ve '/1 "%02X"'
Se avete a disposizione un computer con Linux installato, potete eseguire questo comando:
echo -n X12345678912345 |xxd -ps”
In alternativa potete usare un convertitore online come quello che trovate in questa pagina:
https://codebeautify.org/string-hex-converterIl risultato dovrà essere una stringa numerica di 30 caratteri. Mettete da parte anche l’host_uniq.
3 – CONFIGURAZIONE DELLA CONNESSIONE PPPOE DATI E VOCEOra dobbiamo sistemare la configurazione della connessione dati e creare un’atra connessione su vlan id 1035 per la voce.
Aprite il file
/etc/config/network.
Nella sezione
wan, modificate username/password e aggiungete il tag host_uniq:
config interface 'wan'
...
option password 'vodafone'
option username 'D-X12345678912345' # al posto di X123… inserite il seriale della vostra Vodafone Station
option host_uniq '583132333435363738393132333435' # inserite il vostro host_uniq di 30 caratteri (alfa)numerici
...
Salvate il file e riavviate il servizio network con “/etc/init.d/network restart”. A riavvio completato, verificate di avere ancora accesso ad internet, in caso contrario fermatevi e risolvete. Dobbiamo ora occuparci della creazione della seconda connessione pppoe per la voce. Per farlo, avrete bisogno di specificare un MAC ADDRESS tassativamente diverso fa quello dell'interfaccia wan. Se il MAC ADDRESS non è diverso la PPPoE non si riesce proprio a connettere. E' attiva tuttavia una sorta di whitelist sull'OUI del MAC ADDRESS usato sulla interfaccia voce. L'OUI sono le prime tre coppie di caratteri del MAC ADDRESS. Consiglio di usare lo stesso OUI della vostra Vodafone Station e di usare come restanti parti quelle del MAC address della wan sommando un +0x01 sull'ultimo byte.
Esempio:Mac Address wan = A4:91:B1:34:5D:9
AMac address voip = Mac Address wan
+1 = A4:91:B1:34:5D:9
BModificate (se già esistenti) o create ora queste due sezioni di configurazione:
config device 'voipptm0' # o voipeth4 con ONT o modem ethernet esterno
option type '8021q'
option name 'voipptm0' # o voipeth4 con ONT o modem ethernet esterno
option macaddr 'mac_address' # inserite il MA generato precedentemente
option ifname 'ptm0' # o eth4 con ONT o modem ethernet esterno
option ipv6 '0'
option vid '1035'
config interface 'voip'
option auto '1'
option proto 'pppoe'
option demand '0'
option macaddr 'mac_address' # inserite lo stesso MA di voipptm0
option ipv6 '0'
option keepalive_adaptive '0'
option ifname 'voipptm0' # o voipeth4 con ONT o modem ethernet esterno
option password 'vodafone'
option username 'V-X12345678912345' # al posto di X123… inserite il seriale della vostra Vodafone Station
option host_uniq '583132333435363738393132333435' # inserite il vostro host_uniq di 30 caratteri (alfa)numerici
option keepalive '4,20'
option defaultroute '0'
Salvate il file e riavviate il servizio network con “/etc/init.d/network restart”. Ora vi serve trovare il gateway della nuova connessione voip. Per farlo scrivete “route |grep voip”. L’output che ne uscirà sarà qualcosa tipo:
123.123.123.123 * 255.255.255.255 UH 0 0 0 pppoe-voip
L’IP della prima colonna è il vostro gateway (dovrebbe finire per .1), mettetelo da parte. Aprite ora nuovamente il file /etc/config/network e, subito dopo la sezione “wan”, inserite la seguente regola di route:
config route 'voip_private'
option interface 'voip'
option netmask '255.0.0.0'
option metric '1'
option target '10.0.0.0/8'
option gateway '123.123.123.123' # inserite qui il vostro gateway
Salvate il file e riavviate nuovamente il network con “/etc/init.d/network restart”. Se tutto è andato bene, dando nuovamente il comando “route |grep voip”, dovreste avere un output di questo tipo (naturalmente al posto di 123... avrete il vostro gateway):
123.123.123.123 * 255.255.255.255 UH 0 0 0 pppoe-voip
10.0.0.0 123.123.123.123 255.0.0.0 UG 1 0 0 pppoe-voip
4– REGOLE DEL FIREWALLAprite il file
/etc/config/firewall individuate la
config zone ‘wan’ ed aggiungete il network voip.
config zone 'wan'
option name 'wan'
list network 'wan'
list network 'wan6'
list network 'wwan'
list network 'voip'
option input 'DROP'
option output 'ACCEPT'
option forward 'DROP'
option masq '1'
option conntrack '1'
option mtu_fix '1'
option wan '1'
Potreste avere la configurazione di una zona per il voip che dovrete commentare. Verificate se avete un “config zone 'z_if1'” e un “config forwarding 'for_if1'” o una zona che contenga regole per l’interfaccia “voip”. Se le trovate, commentate le sezioni. Salvate il file.
Aprite ora il file
/etc/config/mwan e nella
policy if1_mwan cambiate interfaccia inserendo voip:
config policy 'if1_mwan'
option interface 'voip'
Salvate il file e riavviate il firewall con “/etc/init.d/firewall restart”.
Potrebbe essere che sia già presente l’interfaccia voip, se così fosse non dovete fare nulla.
E’ possibile anche che il file mwan sia vuoto o inesistente, anche in questo caso non dovete fare nulla.
5– DNS REBIND PROTECTION ED ECCEZIONE PER LA RISOLUZIONE DEI PROXYAffinché i proxy siano risolti correttamente, bisogna modificare la sezione
dnsmasq del file
/etc/config/dhcp. Riporto di seguito le righe da modificare/aggiungere per una corretta configurazione, sono solo quelle commentate:
config dnsmasq 'dnsmasq'
option domainneeded '...'
option boguspriv '...'
option filterwin2k '...'
option localise_queries '...'
option rebind_protection '1' # abilitazione rebind protection
option rebind_localhost '1' # abilitazione rebind protection
option local '...'
option domain '...'
option expandhosts '...'
option nonegcache '...'
option authoritative '...'
option cachelocal '1' # attiva
option cachesize '200' # abbastanza grande
option readethers '...'
option leasefile '...'
option resolvfile '...'
option strictorder '...'
option dhcpscript '...'
list hostname '...'
option allservers '...'
option addmac '...'
list server '/proxy.dsl.vodafone.it/91.80.35.167' #risolvi i proxy voip tramite dns vodafone/primario
list server '/proxy.dsl.vodafone.it/91.80.35.134' #risolvi i proxy voip tramite dns vodafone/secondario
list rebind_domain '/proxy.dsl.vodafone.it/' #ammetti rebind per nomi proxy voip
list dhcp_option_force '...'
list dhcp_option_force '...'
list dhcp_option_force '...'
6– CONFIGURAZIONE DI MMPBXResta ora l’ultimo passaggio, la configurazione di mmpbxd, il servizio che si occupa della gestione delle linee VOIP.
Aprite il file
/etc/config/mmpbxrvsipnet. Se non avete cambiato i nomi della sezione “network” e delle sezioni “profile”, valgono i nomi che riporto di seguito, altrimenti dovrete adeguare i seguenti snippet inserendo i nomi che avete cambiato.
Nella sezione
config network 'sip_net', effettuate queste variazioni, inserendo in primary proxy, primary registrar, secondary proxy e secondary registrar quelli che avete ottenuto in precedenza. Su Vodafone, gli indirizzi dei vostri registrar dovrebbero coincidere con quelli dei proxy, se così non fosse, specificate gli indirizzi che avete preso nella sezione 1)
option interface 'voip'
option local_port '5060'
option primary_registrar_port '5060'
option secondary_proxy_port '5060'
option transport_type 'UDP'
option session_timer 'disabled'
option primary_registrar 'proxy1-*****.vodafone.it'
option primary_proxy 'proxy1-*****.vodafone.it'
option domain_name 'ims.vodafone.it'
queste voci vanno invece aggiunte, inserendo al posto di “proxy2-*****.vodafone.it” gli indirizzi dei vostri proxy e registrar secondari. Di nuovo, su Vodafone, gli indirizzi dei vostri registrar dovrebbero coincidere con quelli dei proxy, se così non fosse, specificate gli indirizzi che avete preso nella sezione 1):
option secondary_proxy 'proxy2-*****.vodafone.it'
option secondary_registrar ' proxy2-*****.vodafone.it'
option secondary_registrar_port '5060'
La sezione
config profile 'sip_profile_0' va compilata come segue, inserendo al posto di “tuonumero” il vostro numero di telefono e al posto di 'tuapassword' la password per la configurazione del VOIP che vi ha mandato Vodafone o che avete preso dalla vostra area riservata:
config profile 'sip_profile_0'
option network 'sip_net'
option user_name '[email protected]'
option uri '+39tuonumero'
option display_name '+39tuonumero'
option enabled '1'
option password 'tuapassword'
Salvate il file e riavviate il router. Entrate nell’interfaccia grafica di gestione ed aprite la scheda “Telefonia”. Andate in “Mappatura ingresso/uscita” e mettete le due spunte su FXS 1 sia in ingresso che in uscita.
Andate ora in “Codec” e verificate che nell’”Assegnazione codec a FXS 1” lo stato di PCMA, G729 e G722 sia impostato su “Abilitato”. Andando ora su “linee telefoniche” dovreste vedere il “sip_profile_0” attivo e funzionante (pallino verde su Registrato e Stati chiamate).
7- INDIVIDUAZIONE EVENTUALI ERRORINel caso in cui si presentassero problemi, scrivo di seguito dei suggerimenti per verificare la corretta configurazione del sistema:
1) Verifica connessione voipControllate in ifconfig che siano presenti le seguenti interfacce:
voipptm0 Link encap:Ethernet HWaddr E4:8F:34:3A:04:2B
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:278 errors:0 dropped:0 overruns:0 frame:0
TX packets:276 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:17303 (16.8 KiB) TX bytes:17548 (17.1 KiB)
pppoe-voip Link encap:Point-to-Point Protocol
inet addr:123.123.123.231 P-t-P:123.123.123.1 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metric:1
RX packets:12 errors:0 dropped:0 overruns:0 frame:0
TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:5943 (5.8 KiB) TX bytes:9299 (9.0 KiB)
Se non avete un inet addr assegnato o se P-t-P non riporta il valore del gateway trovato nella sezione 3, verificate la vostra configurazione, avete sbagliato qualcosa.
2) Verifica corretto instradamento connessione voip:Eseguite il comando “route”, se non avete due righe riferite all’interfaccia voip come di seguito, avete sbagliato qualcosa nella configurazione delle regole di routing nella sezione 3 (naturalmente al posto di 123... avrete il vostro gateway):
123.123.123.123 * 255.255.255.255 UH 0 0 0 pppoe-voip
10.0.0.0 123.123.123.123 255.0.0.0 UG 1 0 0 pppoe-voip
Se il gateway appartiene alla classe 1.255 è probabile che abbiate sbagliato a generare ed impostare l’host_uniq in wan o voip, o che qualora wan fosse già stata connessa con lo stesso mac address ma con host_uniq errato/non impostato ora non sia possibile connettersi sulla rete voip. Ritornate alle sezioni 2 e 3, e verificate di aver fatto tutto correttamente. Se i problemi persistono, date a wan e voip dei nuovi mac address (ad esempio incrementateli entrambi di +0x0F).
3) Verifica risoluzione DNS dei proxy e risposta al pingProvate a risolvere l’host del proxy con “nslookup proxy1-****.vodafone.it” (naturalmente inserite l’indirizzo del vostro proxy) . L’host deve essere risolto in un indirizzo del tipo 10.123.123.123, di seguito l’output di esempio di una risoluzione host corretta:
Server: 127.0.0.1
Address 1: 127.0.0.1 localhost.homenet.telecomitalia.it
Name: proxy1-****.vodafone.it
Address 1: 10.174.0.32
Se il vostro proxy non viene risolto, avete sbagliato qualcosa nella configurazione del file dhcp, verificate la sezione 5.
Se la risoluzione è corretta, effettuate un ping al proxy: “ping proxy1-****.vodafone.it”
Se non avete risposta al ping, la causa più probabile è che l’host_uniq in wan o voip sia errato e che quindi vi sia stato assegnato un gateway sbagliato. Verificate di aver generato correttamente l’host_uniq, ritornate nella sezione 2 e verificate di aver fatto tutto correttamente.
4) Regole del firewall e configurazione mmpbxdSe le verifiche precedenti funzionano, il problema potrebbe essere nella configurazione del firewall o in quella di mmpbxd. Verificate le configurazioni nelle sezioni 4 e 6.
Perché queste indicazioni non combaciano con quelle ufficiali Vodafone?Questa guida nasce per un semplice motivo: provando a configurare la fonia su un router basato su OpenWRT con i parametri forniti da Vodafone si presenta un problema nelle chiamate in ingresso, che funzionano per circa un minuto, passato il quale la linea diventa non raggiungibile dall’esterno.
A quanto pare questo problema è dovuto ad una incompatibilità tra il gestore dei servizi VOIP (mmpbxd) e la soluzione alternativa creata da Vodafone per le persone che hanno intenzione di non usare una Vodafone Station.
Poiché i dati di autenticazione forniti per la soluzione alternativa di Vodafone funzionano anche con la soluzione standard (quella usata dalla Vodafone Station), è possibile configurare il router in modo tale che funzioni con tale soluzione.
In parole povere, è possibile collegarsi ai proxy utilizzati dalla Vodafone Station tramite una seconda connessione pppoe sul vlan id 1035 opportunamente configurata.
RingraziamentiNon sarebbe stato possibile creare questa guida senza il supporto e la revisione di
@LuKePicci