Skip to content

2. Routing Grundlagen

spag edited this page Mar 6, 2013 · 4 revisions

Gemeinschaft 5.0

Basics

Wenn Sie verschiedene Gateways haben und Gespräche anhand der Zielrufnummern routen möchten, so geht das mit Einträgen in der /opt/GS5/misc/freeswitch/scripts/ini/routes.ini

[outbound]
^%+49(1%d+)$ , class=gateway, endpoint=gateway1, 0%1
^%+49(%d+)$  , class=gateway, endpoint=gateway2, 0%1
^%+(%d+)$    , class=gateway, endpoint=gateway2, 00%1

Least cost routing mit verschiedenen "Billig"-Vorwahlen

Nehmen wir einmal an, das alle Gespräche an Handys über eine imaginäre Billig-Vorwahl 0999999 geführt werden sollen. Dann müssten Sie in der /opt/GS5/misc/freeswitch/scripts/ini/routes.ini folgenden Eintrag machen:

[outbound]
^%+49(1%d+)$ , class=gateway, endpoint=gateway, 0999999%1

Routing in Gemeinschaft 5.1

  • Table: Routing-Tabelle, gibt an zu welchem Zeitpunkt der Eintrag ausgefuehrt wird.
  • Name: Zum leichteren Erkennen des Eintrages
  • Endpoint: Gibt an, was mit dem Ergebnis passieren soll. D.h. an welches Gateway es gesendet werden soll, oder dass es sich um eine Funktion oder Telefonnummer handelt.

Ein Eintrag kann mehrere Elemente umfassen:

Die Elemente werden dabei von oben nach unten durchlaufen.

  • var_in: Gibt an, aus welcher Variable der Wert kommen soll, der mit "pattern" verglichen wird.
  • var_out: Gibt an, in welche variable das Ergebnis gespeichert wrden soll, welches mit Hilfe von "replacement" erzeugt wurde.
  • pattern: Lua pattern, z.B. %+49(%+)$ wird aus +491234567 die 1234567 herausschneiden und in %1 speichern.
  • replacement: Erlaubt das setzen der in "var_out" angegebenen Variable. Im obigen Beispiel wuerde 0%1 also 01234567 ergeben.
  • action: Gibt an, was der Eintrag bewirken soll.
  • mandatory: Gibt an, ob die Verarbeitung des Routingeintrages (also nicht nur des Elements) sofort abgebrochen werden soll, wenn die Bedungung nicht erfuellt wird.

Actions

  • none: das Element wird ignoriert
  • match: das Element setzt das "match" Flag fuer die Route auf = 'true', wenn die Beingung erfuellt wird.
  • not_match: das Element setzt das "match" Flag fuer die Route auf = 'true', wenn die Beingung nicht erfuellt wird.
  • set: das Element beeinflusst das "match" Flag der Route nicht.

Alle Actions bis auf "none" setzen dabei die in "var_out" angegebene Variable auf den durch "replacement" festgelegten Wert sofern das "match" Flag von irgend einem Element gesetzt wurde. Bei "set" ist die Angabe von "var_in" und "pattern" dabei optional.

Wenn eine Route also nur "set" Actions enthaelt, hat sie daher keinerlei Wirkung.

Beispiel: Outbound Sipgate

Clone this wiki locally