Investigare i problemi riguardanti il Voip – Asterisk debugging, può essere un task estremamente complesso, in quanto i fattori coinvolti sono molteplici dando vita ad una serie sterminata di variabili da dissipare una per una.
Il primo e unico punto di partenza per semplificarsi la vita, a monte di tutto, è la scelta di componentistica di prim’ordine, sia lato hardware che lato servizi (connettività, Hosting, Voice Provider), ciò proprio per non incorrere in problematiche talmente strane da apparire incomprensibili e senza logica.
Le macro aree di investigazione sono:
- Incompatibilità tra devices dovuta ad errata o parziale rispetto degli standard RFC
- Errori di negoziazione dovuti ad errata configurazione del percorso di rete (NAT) , errata scelta di negoziazione del codec, il puragatorio derivante dall’utilizzo di SDP come descritto qui
- Problemi di performance derivanti da errata configurazione di codec (transcoding massivo), hardware non adeguato al carico complessivo di chiamate, attacchi di rete con scanner (SIpVicious) o attacchi DDOS
- Problemi fisici a cavi, cornette, prese elettriche
La console di Asterisk consente con i comandi :
- core set verbose [0-9]
- core set sip debug [on -off]
il primo di aumentare la verbosità della console per rivelare informazioni sempre più dettagliate degli eventi all’ interno di Asterisk , ed il secondo di abilitare il debug del protocollo SIP e visualizzare il SIP data stream che passa “attraverso” Asterisk .
Nel caso in cui invece il problema non passasse direttamente attraverso Asterisk o non fosse rilevabile da console , lo scenario successivo riguarda il packet capturing, cioè l’analisi attraverso utility ad-hoc di tutto il traffico di rete attraverso tool quali TCPDUMP ed la succesiva analisi del logi ricavato attraverso software quali WIRESHARK.
L’abbinata TCPDUMP / WIRESHARK consente di monitorare tutto il traffico che passa da una determinata interfaccia di rete e di filtrarlo poi per porta/protocollo/ip per ricavarne dati statistici atti a scovare eventuali problematiche.
Il comando :
tcpdump -nqt -s 0 -A -i eth0 port 5060
lancia TCPDUMP in modalità display ascoltando tutto il traffico in transito sull’interfaccia eth0 riguradardante il protocollo SIP (porta 5060)
Per un Debug serio TCPDUMP dovrebbe essere lanciato il modalità collect, in modo da stoccare in un file tutte le informazioni in transito durante l’attività dell stesso.
Derminata la raccolta di informazioni queste possono essere passata a wireshark, sotto forma di file, per una visualizzazione e filtraggio che comprenda solo il traffico VoIp.