Kamailio e RTPEngine, un SBC Open Source
Un SBC (Session Border Controller) SIP permette di separare il traffico VoIP esterno alla nostra subnet dal traffico generato all’interno della subnet stessa, assicurando i corretti flussi di segnalazione e media tra esterno ed interno e viceversa. Il termine “Border” infatti, sta proprio ad indicare questa funzione, dato che un SBC si trova ai bordi della rete e rappresenta il confine tra una network interna ed Internet. Supponiamo ad esempio di avere un telefono VoIP (che usa il protocollo SIP) all’interno di una LAN e che tale telefono debba ricevere chiamate da un VoIP Provider pubblico, che necessariamente si troverà su Internet. Per poter comunicare direttamente, il telefono dovrebbe avere un IP pubblico e questo rappresenterebbe un problema dal punto di vista della sicurezza della nostra rete. L’alternativa si chiama SBC, che posto tra la LAN e Internet disaccoppia il leg di chiamata pubblico dal Provider alla sua interfaccia pubblica, dal leg di chiamata privato tra la sua interfaccia privata e gli elementi interni alla LAN.
Kamailio permission module
Il modulo permission rende disponibili una serie di funzionalità e controlli per implementare ACL basate su IP sorgente, From, Request Uri. Questo ci permette di controllare chi può fare cosa, ad esempio se richieste che arrivano da un certo IP sorgente possono essere ruotate a destinazione, oppure se una certa SIP Uri può essere gestita o deve essere rifiutata.
Kamailio SecureSIP gateway con rtpengine
Nei post precedenti abbiamo già parlato di rtpengine e di come usarlo con Kamailio per gestire il NAT o la transcodifica audio. In questo articolo invece vediamo come utilizzare Kamailio con il modulo TLS e rtpengine per realizzare un TLS/SRTP proxy, che sul primo leg di chiamata utilizza il SIP sicuro con TLS e SRTP e sul secondo leg utilizza UDP e RTP. In questo modo avremo la possibilità di aggiungere il supporto del Secure SIP anche a media server che supportano il solo trasporto UDP con RTP in chiaro e renderli quindi sicuri. Il protocollo SRTP (Secure RTP) è utilizzato con SIP su TLS e trasporta la voce in pacchetti IP crittografati, in modo da non permettere l’intercettazione e la decodifica dei pacchetti audio.
Kamailio TLS module
Il modulo “tls” è pensato appositamente per aggiungere il supporto di TLS (Transport Layer Security) a livello di trasporto TCP e permettere di gestire traffico che fa uso di SIPS (SIP Secure), cioè traffico SIP criptato. Tutti i dettagli sono disponibili sulla documentazione ufficiale di Kamailio relativa al modulo tls. Qui vedremo brevemente come attivarlo sulla nostra installazione di Kamailio.
Genesys Cloud integrazione con ChatBot esterno
Con l’introduzione in Genesys Cloud delle WebChat APIs è possibile integrare un proprio ChatBot esterno con la piattaforma Genesys offrendo un’interessante user experience per gli utenti. Sfruttando le WebChat APIs si può ad esempio sviluppare un proprio ChatBot che accoglie gli utenti con la possibilità di switching tra ChatBot e Agente reale su Genesys Cloud, rendendo anche disponibile all’agente l’history della conversazione che l’utente ha avuto con il BOT prima di essere trasferito.
Genesys Cloud integrazione SIP con IVR esterno, trasferire indietro la chiamata
Nell’articolo precedente abbiamo configurato un BYOC SIP Trunk su Genesys Cloud e trasferito una chiamata da un flusso Genesys ad un IVR esterno. Qui vedremo invece come far ritornare la chiamata sul flusso Genesys dopo averla gestita sull’IVR esterno.
Quindi ricapitolando, abbiamo un utente che viene accolto su un flusso vocale Architect in Genesys Cloud, l’utente viene poi trasferito via SIP ad un IVR esterno dal quale è possibile farlo rientrare in Genesys Cloud, sullo stesso flusso o su un qualsiasi altro flusso.
Genesys Cloud integrazione SIP con IVR esterno
In questi giorni mi è capitato di giocare un po’ con la piattaforma Genesys Cloud ed ho deciso di scrivere un paio di articoli sugli aspetti di integrazione con sistemi esterni, in particolare sulla possibilità di trasferire una chiamata ad un IVR esterno per poi farla rientrare sul flusso Genesys, e sulla possibilità di trasferire ad una coda chat un utente precedentemente accolto su un chatbot esterno. Qui vedremo come gestire il primo caso, quindi trasferire una chiamata da un flusso Genesys ad un IVR esterno.
Bilanciare il traffico verso Galera Cluster con HAProxy
Abbiamo già visto qui le caratteristiche di Galera Cluster, che permette di realizzare una topologia multi-master active-active di database con replica sincrona dei dati, abilitando le operazioni di lettura e scrittura su tutti i nodi del cluster.
Criptare la comunicazione tra i nodi di un Cluster Galera con MySQL
Per rendere sicura la comunicazione tra client e server e tra gli stessi server che compongono un Cluster Galera si può (e si deve) agire a diversi livelli.
Utilizzare rtpengine come transcoder in scenari SIP con Kamailio
Curiosando tra i miei post precedenti avrete avuto modo di scoprire le potenzialità di rtpengine, dalla procedura di installazione alla configurazione per utilizzarlo con kamailio. Qui andremo ad approfondire ulteriormente le funzionalità di rtpengine e lo utilizzeremo come transcoder audio, cioè per adattare gli stream audio generati da due endpoint RTP che utilizzano codec audio diversi.