Client SIP non grafico, con comandi da tastiera/tastierino

sezione dedicata alle tecnologie Voice Over IP

Client SIP non grafico, con comandi da tastiera/tastierino

Messaggio da leggereda root » 30/01/2015, 23:12

Dato che ho sviluppato questa guida per il sistema Openwrt (linux per routers) in lingua Inglese: https://forum.openwrt.org/viewtopic.php?id=53874 , ho pensato bene di fare anche una guida in Italiano per utilizzare questo client SIP "non grafico" sul nostro centralino (o anche su PC desktop con Linux) in modo da avere un telefono Voip a tutti gli effetti e a "costo zero", per fare e ricevere chiamate senza necessita' di altro che una tastiera e una cornetta USB o cuffia o altoparlante con microfono.

Il programma si chiama Baresip ed e' tanto potente quanto completamente privo di documentazione, come la maggior parte dei piccoli programmi Linux sembra programmato da "Autistici" che ti sfornano un ottimo programma, ma nessuno sa come farlo funzionare perche' i docs fanno letteralmente pena o mancano del tutto! :evil:

Dopo un paio di giorni di studio e prove sono riuscito a capire come funziona, ad installarlo su OpenWRT (un router che diventa un centralino Asterisk e telefono Voip) e infine anche sul nostro Ubuntu server 10.04 32 bit :)

Ecco le istruzioni per installarlo:

wget http://creytiv.com/pub/re-0.4.11.tar.gz
wget http://creytiv.com/pub/baresip-0.4.12.tar.gz
wget http://creytiv.com/pub/rem-0.4.6.tar.gz

tar -zxvf re-0.4.11.tar.gz
tar -zxvf baresip-0.4.12.tar.gz
tar -zxvf rem-0.4.6.tar.gz

cd re-0.4.11
make
sudo make install
cd ..
cd rem-0.4.6
make
sudo make install
cd ..
cd baresip-0.4.12
cd ..

cp /usr/local/lib/libre.a /usr/lib
cp /usr/local/lib/libre.so /usr/lib
cp /usr/local/lib/librem.a /usr/lib
cp /usr/local/lib/librem.so /usr/lib


Ora che il programma e' installato lo lanciamo una prima volta affinche' crei la cartella "./baresip" nella nostra "home" con dentro i files di configurazione di default:

baresip

fermiamo dopo pochi secondi il programma con Ctrl+C e andiamo ad editare i due files di configurazione:

cd .baresip
nano accounts


cancelliamo tutto e dentro inseriamo quanto segue:

<sip:user:password@sip-provider.com:port>;stunserver=stun:stun.ekiga.net

esempio: <sip:011635348494:miapassword@voip.eutelia.it:5060>;stunserver=stun:stun.ekiga. net

nota: questa riga esegue l'autenticazione SIP su un server remoto, se sulla stessa macchina e' installato Asterisk e vogliamo collegarci a lui, la riga cambia cosi':

<sip:user:password@localhost>;answermode=manual

ora modifichiamo il secondo file:

nano config

cancelliamo tutto e dentro inseriamo quanto segue:

# baresip configuration
#------------------------------------------------------------------------------
# Core
poll_method epoll # poll, select, epoll ..
# SIP
sip_trans_bsize 128
#sip_listen 0.0.0.0:5060
#sip_certificate cert.pem
# Audio
audio_player alsa,default
audio_source alsa,default
audio_alert alsa,default
audio_srate 8000-48000
audio_channels 1-2
#ausrc_srate 48000
#auplay_srate 48000
#ausrc_channels 0
#auplay_channels 0
# Video
#video_source v4l2,/dev/video0
#video_display x11,nil
video_size 352x288
video_bitrate 500000
video_fps 25
# AVT - Audio/Video Transport
rtp_tos 184
#rtp_ports 10000-20000
#rtp_bandwidth 512-1024 # [kbit/s]
rtcp_enable yes
rtcp_mux no
jitter_buffer_delay 10-30 # frames
rtp_stats no
# Network
#dns_server 10.0.0.1:53
#net_interface wlan0
# BFCP
#bfcp_proto udp
#------------------------------------------------------------------------------
# Modules
module_path /usr/local/lib/baresip/modules
# UI Modules
module stdio.so
#module cons.so
module evdev.so
#module httpd.so
# Audio codec Modules (in order)
#module opus.so
#module silk.so
#module amr.so
#module g7221.so
#module g722.so
#module g726.so
module g711.so
#module gsm.so
#module l16.so
#module speex.so
#module bv32.so
# Audio filter Modules (in encoding order)
#module vumeter.so
#module sndfile.so
#module speex_aec.so
#module speex_pp.so
#module plc.so
# Audio driver Modules
module alsa.so
#module portaudio.so
# Video codec Modules (in order)
#module avcodec.so
#module vpx.so
# Video filter Modules (in encoding order)
#module selfview.so
# Video source modules
#module v4l.so
#module v4l2.so
#module x11grab.so
#module cairo.so
# Video display modules
#module x11.so
#module sdl2.so
# Audio/Video source modules
#module rst.so
#module gst.so
# Media NAT modules
module stun.so
module turn.so
module ice.so
#module natpmp.so
# Media encryption modules
#module srtp.so
#module dtls_srtp.so
#------------------------------------------------------------------------------
# Temporary Modules (loaded then unloaded)
module_tmp uuid.so
module_tmp account.so
#------------------------------------------------------------------------------
# Application Modules
module_app auloop.so
module_app contact.so
module_app menu.so
#module_app mwi.so
#module_app natbd.so
#module_app presence.so
#module_app syslog.so
module_app vidloop.so
#------------------------------------------------------------------------------
# Module parameters
cons_listen 0.0.0.0:5555
evdev_device /dev/input/event0
# Speex codec parameters
speex_quality 7 # 0-10
speex_complexity 7 # 0-10
speex_enhancement 0 # 0-1
speex_vbr 0 # Variable Bit Rate 0-1
speex_vad 0 # Voice Activity Detection 0-1
speex_agc_level 8000
# NAT Behavior Discovery
natbd_server creytiv.com
natbd_interval 600 # in seconds
# Selfview
video_selfview window # {window,pip}
#selfview_size 64x64
# ICE
ice_turn no
ice_debug no
ice_nomination regular # {regular,aggressive}
ice_mode full # {full,lite}


A questo punto possiamo lanciare Baresip da console comandi ( baresip ) e utilizzarlo come un normale telefono Voip digitando i numeri da comporre sul tastierino numerico (o tastiera) seguiti da "Enter" per iniziare la chiamata, l'audio si sentira' in cuffia o in altoparlante (modalita' vivavoce),
oppure per rispondere ad una chiamata in arrivo (baresip ci avvisa con un messaggio audio dalla voce divertente) premendo sempre "Enter",
il tasto "Fine" o "Del" chiude e/o annulla la chiamata,
i tasti 0-9 e * durante una chiamata in corso funzionano normalmente come tasti DTMF, purtroppo manca il cancelletto #,
il tasto / in alcune tastiere mostra l'help comandi (oppure anche il tasto "?"), in altre mostra l'elenco dei contatti predefiniti inseriti in "contacts" (sempre nella directoy .baresip)

Per lanciare Baresip in modalita' daemon (servizio in background), usare il comando:

baresip -d

Per lanciare una chiamata automatica da uno script e/o da shell ecco il comando:

(echo sip:user@voip-provider.com;sleep 60; echo q) | baresip -e d

nota:
sip:user@voip-provider.com e' il numero o l'utente SIP da chiamare, ad esempio per chiamare il nostro cellulare 339547356 dal nostro account eutelia/clouditalia inserito in "accounts", diventa: 339547356@voip.eutelia.it ,
sleep 60 determina la durata massima della telefonata dopodiche' viene inviato il comando "q" (quit) a Baresip che si chiude ed esce, chi riceve la chiamata e risponde, sente l'audio remoto che arriva dalla zona del nostro server catturato dal microfono, se parla la sua voce e' ritrasmessa dall'altoparlante o dalla cuffia collegati al server (monitoraggio remoto).

Per fare in modo che Baresip risponda automaticamente a tutte le chiamate ecco la riga da inserire nel file di configurazione "accounts":

<sip:user:password@sip-provider.com:5060;transport=udp>;answermode=auto;stunserver=stun:stun.ekiga.net

(quella sopra e' una riga unica)

il volume dell'audio della cuffia/altoparlante/microfono, se non disponiamo di un'interfaccia grafica, lo settiamo con il comando:

alsamixer

Nota bene: per il funzionamento di Baresip e' necessario che Alsa sia installato sul sistema e che non ci sia il canale Skype+FreeSwitch perche' quest'ultimo disabilita' la funzionalita' audio di ALSA.

Alcune considerazioni aggiuntive sulla configurazione di Baresip

Se si vuole avere l'audio in cuffia/telefono Voip, ma la suoneria per le chiamate in altoparlante, occorre modificare il file "config" come segue:

audio_player alsa,default:CARD=devicename # audio speaker device
audio_source alsa,default:CARD=devicename # audio microphone device
audio_alert alsa,default:CARD=devicename # audio ring device


il devicename lo trovate con il comando aplay -L
ovviamente occorrono due diversi dispositivi audio per fare questoSe si nota un echo eccessivo nella comunicazione audio, oppure se si usa Baresip con il server asterisk collegato sulla stessa macchina, occorre commentare con "#" la riga:

jitter_buffer_delay 10-30

che diventa:

# jitter_buffer_delay 10-30

Maggiori dettagli e configurazioni aggiuntive le potete trovare sul mio post originale in inglese al link sopra indicato.
Maurizio
Avatar utente
root
Amministratore
 
Messaggi: 347
Iscritto il: 10/04/2012, 10:55
Località: Ovada

Torna a Asterisk e VOIP

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite