FreeSWITCH Click-to-Dial

dial.lua

local api = freeswitch.API();
local destNumber = argv[1];
local sourceNumber = argv[2];
local fsIP = "10.10.0.52";

if (sourceNumber) then
    local sourceDialString = "sofia/default/" .. sourceNumber .. "@" .. fsIP;
    local reply = api:execute("originate", "{'absolute_codec_string=PCMA',origination_caller_id_number=" .. destNumber .. "}" .. sourceDialString .. " " .. destNumber .. " XML default");
end

Rufaufbau für User 130 an Zielrufnummer 08003301000 initiieren:

fs_cli -x "luarun dial.lua 08003301000 130"

apiban.org

Fred Posner hat ein großartiges Projekt ins Leben gerufen, mit dem sich SIP-Traffic von unerwünschten IP-Adressen effektiv blockieren läßt:

https://www.apiban.org/

Das Projekt setzt auf global verteilte Honeypots, die IP-Adressen von SIP-Angreifern sammeln. Diese werden in einer Datenbank gespeichert und mit Hilfe einer REST-API bereitgestellt.

Es gibt Beispiele zur Integration in Kamailio, Homer, SIP3 sowie einen Open Source Client für iptables.

DTMF inband automatisch aktivieren

QoS mit Diffserv und iptables

So werden mit Hilfe von iptables RTP-Streams mit Diffserv-Tags versehen:

In diesem Beispiel werden udp-Pakete aus den Quellports 14000-15000 und 16384-32768 mit dem DCSP-Tag EF (expedited forwarding) markiert.

RTCP Packet Loss und Jitter anzeigen

Zur Fehlersuche im Zusammenhang mit RTP ist RTCP eine große Hilfe.

Wenn auf dem VoIP-System RTCP aktiviert ist, lassen sich mit tshark gezielt Packet Loss und Jitter-Probleme herausfiltern:

 

FreeSWITCH mit Deutsche Telekom SIP-Trunk

Beispielkonfiguration für den Betrieb eines SIP-Trunks der Deutschen Telekom an FreeSWITCH 1.6.20:

Patton SmartNode: Deutsche Telekom SIP-Trunk

Dieses Config Snippet zeigt, wie ein Patton SmartNode mit Trinity-Firmware korrekt an einem DeutschlandLAN SIP-Trunk der Deutschen Telekom betrieben wird:

Patton SmartNode: umgeleiteten ISDN-Anruf an bestimmtes Ziel routen

Wenn ein ankommender Anruf aufgrund einer Rufumleitung (CF) des Anschlusses 030123456789 am SmartNode eintrifft, soll dieser an die Rufnummer 089234567890 an die SIP-PBX geroutet werden.

 

Patton SmartNode: Network provided CGPN aus ISDN an SIP-PBX übermitteln

Im ISDN wird neben der vom Anrufer gesetzten Rufnummer (user-provided, not screened) auch die tatsächliche Anschlussrufnummer (network-provided) übermittelt. Diese beiden Rufnummern weichen z.B. voneinander ab, wenn der Anrufer mit clip no screening eine komplett von der Anschlussrufnummer abweichende Rufnummer spooft (in diesem Beispiel 08001234567).

Mit der nachfolgenden Konfiguration kann ein Patton SmartNode Gateway beide Rufnummern an die SIP-PBX weiterleiten.

Im SIP-INVITE werden die Rufnummern dann so zugeordnet:

P-Asserted-Identity = ISDN network provided
P-Preferred-Identity = ISDN user provided, not screened

So sieht das Ganze dann im SIP-INVITE aus: