Neue Benutzer

Freeswitch hat per Default 20 User vordefiniert. Wenn Sie welche hinzufügen möchten, erfordert das nur zwei Schritte in der Konfiguration:

  • ein neuer Eintrag pro User in »$CONF/directory/default/«
  • den Dialplan erweitern, damit der User auch angerufen werden kann.

Um einen neuen Benutzer "Herbert" mit der Durchwahl 1500 anzulegen, wechseln Sie in »$CONF/directory/default« und kopieren die Datei »1000.xml« nach »1500.xml« . Öffnen Sie die neue Datei im Editor und ersetzen Sie »1000« durch »1500« . Den Parameter »effective_caller_id_name« setzen Sie auf »Herbert« .

Bearbeiten Sie dann »$CONF/dialplan/default.xml« und suchen Sie den Eintrag mit dem Namen »Local_Extension« . Wer mit Regular Expressions vertraut ist, wird erkennen, dass in der Zeile

<condition field="destination_number" ↩
expression="^(10[01][0-9])$">

der Ausdruck »(10[01][0-9])« auf vierstellige Zahlen zutrifft, die mit 10 beginnen, während die dritte Stelle nur 0 oder 1 sein kann und die letzte Stelle zwischen 0 und 9. Die Regular Expression matcht also Zahlen zwischen 1000 und 1019.

Der einfachste Weg, diesen Ausdruck um die neue Durchwahl zu erweitern, ohne die Regular Expression von Grund auf zu zu konstruieren, ist sie einfach dahinterzuschreiben, getrennt durch ein Pipe-Symbol, das als logisches Oder dient:

<condition field="destination_number" ↩
expression="^(10[01][0-9]|1500)$">

Verbinden Sie die Konsole »fs_cli« mit dem Server und geben Sie dort »reloadxml« ein, um die Konfiguration neu zu laden.

Zum Testen verbinden Sie ein Hard- oder Softphone mit dem Freeswitch-Server und geben ihm die Durchwahlnummer 1500. Ein zweites Telefon konfigurieren Sie mit der Nummer 1000 und schon können Sie einen Testanruf starten. Die komplette Konfiguration zeigt Listing 1 .

Listing 1

<C>1500.xml<C>

<include>
  <user id="1500" mailbox="1500">
    <params>
      <param name="password" value="$${default_password}"/>
      <param name="vm-password" value="1500"/>
    </params>
    <variables>
      <variable name="toll_allow" value="domestic,international,local"/>
      <variable name="accountcode" value="1500"/>
      <variable name="user_context" value="default"/>
      <variable name="effective_caller_id_name" value="Katherine"/>
      <variable name="effective_caller_id_number" value="1500"/>
      <variable name="outbound_caller_id_name" value="$${outbound_caller_name}"/>
      <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/>
      <variable name="callgroup" value="techsupport"/>
    </variables>
  </user>
</include

Weite Welt

Lokale Anrufe über VoIP abzuwickeln, ist zwar eine technische Herausforderung, aber nicht unbedingt sehr sinnvoll. Ihre Vorteile entfaltet die Technologie, indem sie preisgünstige Telefongespräche übers Internet ermöglicht. NAT-Firewalls verursachen alle möglichen Probleme für Anrufe mit SIP-Signalisierung, aber Freeswitch kann viele davon umgehen.

In den meisten Fällen wird die Default-Konfiguration einfach funktionieren. Ein einfacher Test ist, den öffentlichen Freeswitch-Konferenzserver anzurufen. Dessen SIP-URI ist »sip:888@conference.freeswitch.org« . Sie erreichen ihn aber mit dem Default-Dialplan einfach über die Nummer 9888.

Bei einem erfolgreichen Anruf ertönt eine computergenerierte Stimme, die Ihre Caller-ID oder Nummer ansagt. Wenn Sie der einzige Teilnehmer der Konferenz sind, teilt Ihnen die Stimme das ebenfalls mit. Der folgende Befehl ruft die Konferenz mit Portaudio an:

pa call sip:888@conference.freeswitch.org

Eine Reihe von Providern bietet den Übergang vom Internet in das normale Telefonnetz an. Freeswitch verwendet so genannte Gateways, um ausgehende Anrufe mit solchen Providern zu herzustellen. Das Freeswitch-Wiki bietet Beispielkonfigurationen für einige SIP-Provider an [5] . Im Beispiel soll ein Gateway für http://iptel.org entstehen, das freie SIP-Accounts anbietet.

Zuerst brauchen besorgen Sie sich auf der Site einen Account und notieren Benutzernamen und Passwort. Dann legen Sie eine neue Datei mit dem Namen »iptel.org.xml« im Verzeichnis »$CONF/sip_profiles/external« an. Die fertige Datei soll so aussehen wie Listing 2 .

Listing 2

Gateway für einen SIP-Account

<include>
  <gateway name="iptel"> <!-- used in dialstrings -->
    <param name="username" value="Benutzername"/>
    <param name="realm" value="iptel.org"/>
    <param name="password" value="Passwort"/>
    <param name="proxy" value="sip.iptel.org"/>
  </gateway>
</include>

Wenn die Datei gespeichert ist, geben Sie in der Freeswitch-Konsole diesen Befehl ein:

sofia profile external restart reloadxml

"Sofia" ist der Name der externen SIP-Bibliothek, die von Freeswitch verwendet wird [7] . Deshalb heißen auch die internen Freeswitch-Kommandos für SIP-Funktionen so. Geben Sie einfach »sofia« ein, um mehr über die Syntax zu erfahren. Der obige Befehl weist Freeswitch an, das Profil »external« neu zu starten, nachdem es die XML-Daten geladen hat. Das »reloadxml« ist dabei optional, aber wenn Sie die XML-Konfiguration verändert haben, benutzen Sie sie besser. Um zu sehen, ob http://iptel.org richtig registriert wurde, geben Sie ein:

sofia status

War sie erfolgreich, antwortet das System mit einer Zeile der Art:

iptel gateway sip:myusername@sip.iptel.↩
org
REGED

Der Zustand »REGED« bedeutet, dass das Freeswitch-Gateway sich beim Provider registrieren konnte. Wenn stattdessen »FAIL_WAIT« dort steht, sollten Sie die Konfiguration noch einmal überprüfen.

Der letzte Schritt in der Konfiguration eingehender Anrufe besteht darin, sie im Dialplan zuzulassen. Die Default-Einstellungen bewerten alle Anrufe aus dem Internet als unsicher. Als erstes erlauben Sie eingehende Anrufe für den neuen Iptel-Benutzer, dann legen Sie noch fest, wohin sie geroutet werden. Dazu legen Sie eine neue Datei mit dem Namen »$CONF/dialplan/public/00_inbound_iptel.xml« an, oder Sie kopieren die bestehende »00_inbound_did.xml« . Wichtig ist es, den Iptel-Benutzernamen in der Regular Expression einzutragen ( Listing 3 ). Der Benutzername ist dann die »destination_number« (diese sind nicht auf Zahlen beschränkt). Freeswitch routet den Anruf weiter zu der Durchwahl, die in den Parametern aufgeführt sind, die an die Anwendung weitergereicht werden.

Im Beispielfall führt das Routing zur Pausenmusik, um damit gut testen zu können. Alternativ können Sie natürlich auch zum Softphone routen. Wenn es mit der Durchwahl 1000 registriert ist, hat der Transfer-Parameter in Zeile 5 den Wert »1000 XML Default« . Ist die Datei gespeichert, lädt der Befehl »reloadxml« im Freeswitch-Prompt die Konfiguration neu.

Listing 3

<C>00_inbound_iptel.xml<C>

<include>
  <extension name="iptel-inbound">
    <condition field="destination_number" expression="^(YOUR_IPTEL.ORG_USERNAME)$">
      <action application="set" data="domain_name=$${domain}"/>
      <action application="transfer" data="9999 XML default"/>
    </condition>
  </extension>
</include>

_Am besten Sie lassen jemand anders einen Anruf auf Ihrer Iptel-SIP-URI tätigen, um das Setup zu testen. Oder, wenn es gar nicht anders geht, testen Sie selbst mit Portaudio. Am Freeswitch-Prompt sieht das so aus:

pa call sip:myusername@sip.iptel.org

Klappt alles, klingelt es bei der entsprechenden Durchwahl.

comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023