Projet

Général

Profil

Actions

Configuration du serveur

Architecture de FreeSWITCH

Freeswitch est construit de manière modulaire ce qui permet d'étendre ses fonctionnalités sans interrompre son fonctionnement ou sans à avoir à déployer un effort de recodage massif. Chaque module fournit un ensemble de fonctionnalités spécifiques et de commandes apparentées. Vous devrez activer ou désactiver les modules en fonction des fonctionnalités désirées. FreeSWITCH vient par défaut avec un ensemble de modules chargés, activant la plupart des fonctionnalités de base.

Configuration

Les sections suivantes vous montreront chaque étape nécessaires pour rendre votre serveur fonctionnel.

Noyau

Si vous n'utilisez pas la fonctionnalité timerfd, le noyau devra contenir ceci :

CONFIG_HZ_1000=y
CONFIG_HZ=1000

Firewall

Si vous routez votre trafic au travers de votre réseau, vous devez vous assurer que vous ne bloquez pas le trafic sur les ports utilisés par FreeSWITCH. D'habitude, les firewalls sont installés aux points de sortie du réseau, là où le réseau local se connecte à Internet. Ce n'est pas toujours le cas dans certaines organisations. Si vous n'êtes pas le responsable du réseau, contactez l'administrateur système en charge de celui-ci.

Si vous avez un souci avec un protocole qui ne fonctionne pas, il est recommandé de désactiver le firewall et de relancer un appel de test pour voire si le problème persiste. Un firewall mal confioguré peut être à l'origine de bien des problèmes.

Port Protocole réseau Protocole d'application Description
1719 UDP H.323 Gatekeeper RAS port
1720 TCP H.323 Call Signaling
3478 UDP STUN service Used for NAT traversal
3479 UDP STUN service Used for NAT traversal
5002 TCP MLP protocol server
5003 UDP Neighborhood service
5060 UDP & TCP SIP UAS Utilisé pour le signal SIP (port SIP standard, for default Internal Profile)
5070 UDP & TCP SIP UAS Utilisé pour le signal SIP (For default "NAT" Profile)
5080 UDP & TCP SIP UAS Utilisé pour le signal SIP (For default "External" Profile)
8021 TCP ESL Utilisé pour mod_event_socket
16384-32768 UDP RTP/ RTCP multimedia streaming Utilisé pour les données audio/video par le protocole SIP entre autres.

Fichiers de configuration

Les fichiers de configuration de FreeSWITCH™ sont au format XML. Ces fichiers sont placés dans le dossier conf situé dans le répertoire d'installation de FreeSWITCH™, si vous avez suivi le guide d'installation le dossier aura le chemin suivant /usr/local/freeswitch/conf. Des balises de préprocessing indiqueront au noyau de FreeSWITCH d'effectuer certaines tâches comme inclure d'autres fichiers avant que le XML ne soit analysé. Il peut valoir le coup de jeter un oeil à Default_Configuration_Overview qui décrit la configuration par défaut, puis d'ajuster quelques fichiers pour commencer. Il peut être utile de régler certains d'entre eux. FreeSWITCH est composé d'un grand nombre de fichiers de configuration et comprendre leur fonctionnement global peut prendre un peu de temps.

Description des dossiers

autoload_configs Ces fichiers de configurations sont chargés automatiquement au lancement de FreeSWITCH. Ils contiennent la configuration de presque tous les modules du noyau.
dialplan C'est ici que vous configurerez le dialplan. Quelques exemples de configuration sont inclus par défaut.
directory Contient tous les fichiers de configurations des comptes utilisateurs.
jingle_profiles Jingle is the mod that FreeSWITCH uses to handle XMPP. Profiles tell FreeSWITCH how to use the protocol. Each profile has its own ip port.
lang repertoire de configuration des spécificités linguistiques et régionales.
mrcp_profiles MRCP permet à FreeSWITCH d'utiliser la reconnaissance et la synthèse vocale.
sip_profiles indique à FreeSWITCH comment communiquer avec le protocole SIP. Chaque profil utilise son propre port.

Gestion de vos fichiers de configuration

Vous devriez envisager d'utiliser un système de contrôle de version pour la gestion des fichiers de configuration FreeSwitch ™, le but étant de pouvoir garder facilement la trace des modifications apportées et d'être capable de repasser facilement vers une configuration plus ancienne. En outre, il est possible de fusionner les changements de la configuration de l'arbre git des source officielle dans votre arborescence de configuration propre.

Git est utilisé pour gérer l'arbre officiel des sources de FreeSwitch. Bien que l'usage de git ne soit pas obligatoire, c'est une bonne idée de s'en servir car une fois que vous êtes familiarisé avec, vous aurez les compétences pour gérer même l'arbre source FreeSwitch.

Pour configurer votre propre référentiel git, utilisez cette séquence de commandes:

cd freeswitch/conf
git init
git add .
git commit -m "Initial commit."

Pour afficher les logs de git il suffit d'utiliser la commande suivante:

git log

Après avoir modifié votre configuration, pour voir les modifications apportées tapez :

git diff

Unfortunately it is not so easy to have git merge the conf subdirectory in the original source tree of FreeSWITCH™ into your running conf directory. There are some approaches for this where the most promising would be to use the git subtree script with a complicated setup.

A workaround would be to create a complete clone of the FreeSWITCH™ git source tree and use the conf directory of the clone as your personal conf while compiling FreeSWITCH™ in a complete other clone of the git source directory tree. You feel the overhead.

Configuration de FreeSWITCH

Le but de ce guide est de vous décrire la configuration par défaut de FreeSWITCH et comment l'ajuster à votre guise. Jetez un oeil à cette page pour plus d'informations.

Cette disposition n'est en aucune façon nécessaire, vous pouvez minimiser la configuration à un seul fichier si nécessaire. Le fichier de configuration principal est appelé freeswitch.xml, vous n'avez pas besoin de le changer en aucune façon, il charge simplement tous les autres fichiers de configuration.

vars.xml

vars.xml est utilisé pour définir une paire de variables qui seront employées par l'ensemble du système.

ATTENTION Vous ne pouvez pas commenter les lignes X-PRE-PROCESS. Elles seront encore actives dans un commentaire XML.

Voire cette page du wiki officiel pour plus d'exemples.

Dans la configuration par défaut le fichier vars.xml est utilisé pour définir des variables du préprocesseur. Dans une première configuration vous souhaiterez probablement régler les directives pour l'utilisation d'autres parties de la configuration.

  <X-PRE-PROCESS cmd="set" data="outbound_caller_name=FreeSWITCH"/>
  <X-PRE-PROCESS cmd="set" data="outbound_caller_id=8777423583"/>
  <X-PRE-PROCESS cmd="set" data="call_debug=false"/>

Le port par défaut du FreeSwitch est également défini ici:

<param name="sip-port" value="5060" />

Conseils de sécurité

Soyez prudent avec vos mots de passe. Une bonne idée serait d'utiliser des variables du préprocesseur pour tous vos mots de passe et de tous les définir dans un seul fichier accessible en lecture/écriture par l'utilisateur root local FS/conf/PASSWORDS.xml (dans le répertoire de config de haut niveau de freeSWITCH). Comme avantage, vous aurez un fichier de référence idéal pour tous les mots de passe.

Pour avoir lu ces mots de passe, vous devez mettre la ligne suivante au bas de FS/conf/vars.xml:

Ensuite, vous définissez la charge des mots de passe comme ceci:

Dans cet exemple, le default_password est défini dans FS/vars.xml, mais redéfini à la fin où nous incluons le fichier PASSWORDS.xml contenant un autre default_password. La redéfinition est fait pour que le FS/conf/vars.xml peut même être partagée sans compromettre le mot de passe défini ailleurs.

N'oubliez pas de chmod votre FS/conf/PASSWORDS.xml:

chmod 600 PASSWORD. xml

You should define all your passwords with a fixed scheme like this:


Notez que les mots de passe par défaut sont définis en premier, ils sont la première chose à envisager de modifier/supprimer.

Vous pouvez utiliser vos variables de mot de passe dans le plan de numérotation comme ceci (notez bien le double "$"):

autoload_configs

autoload_configs est un répertoire où beaucoup de la configuration FreeSwitch réside,il se trouve dans FS/conf/autoload_configs. Le fichier freeswitch.xml par défaut prétraite les fichiers XML du repertoire FS/conf/autoload_configs/

modules.conf.xml

Voire cette page du wiki officiel pour un exemple de modules.conf.xml.

modules.conf.xml indique à FreeSwitch les modules à charger. Il y a certains modules nécessaires au fonctionnement de sorte que vous ne devez pas modifier ce fichier sauf si vous savez que vous souhaitez ajouter ou supprimer un module spécifique.

sofia.conf.xml

mod_sofia est utilisé pour créer les points de terminaison SIP dans FreeSWITCH. Si vous êtes familier avec Asterisk, chaque profil SIP dans mod_sofia est similaire à chan_sip dans Asterisk, mais beaucoup plus puissant.

Le fichier sofia.conf.xml contient une directive "X-PRE-PROCESS" qui inclut d'autres fichiers XML (par défaut, à l'intérieur de conf/sip_profiles/) qui définissent un ou plusieurs "profils SIP". Un profil SIP est un UA SIP (User Agent ou un critère d'évaluation), qui communique avec d'autres terminaux SIP.

En termes pratiques, les fichiers qui parlent à votre fournisseur de services devrait être placés dans conf/sip_profiles/external/ et peut-être nommés nom_du_fournisseur.com.xml

Un "User Agent" ("UA") est une application utilisée pour exécuter un protocole de réseau particulier. Les UA Sofia utilisent le protocole SIP.

Voire cette page du wiki officiel pour un exemple de sofia.conf.xml.

Voire aussi la page SIP de wikipedia.

Rôle des profils SIP

Les profils SIP dans FreeSwitch peut souvent prêter à confusion. Contrairement à d'autres commutateurs logiciels (comme Asterisk), FreeSwitch vous permet de gérer les médias (appels, vidéo, etc) de façon différente selon l'endroit où l'équipement est connecté à votre réseau. Ceci accroit la sécurité et fournit également des fonctionnalités ajoutées.

Les profils SIP vous permettent de définir des chemins vers des dispositifs ou des appareils qui peuvent se situer à l'intérieur ou l'extérieur de votre réseau. Ces chemins peuvent être de différents types, mais doivent consister en une combinaison unique de ports d'adresse IP. Vous pourriez avoir des profils SIP pour votre réseau interne, ou plusieurs profils pour chaque sous-réseau de votre réseau interne, ou des protocoles, même complètement différents comme IPv6 en tant que définitions de profils. Cela permet à FreeSWITCH de déterminer comment router les différents types d'appels si besoin, et vous donne également la souplesse nécessaire pour adapter vos DialPlans selon la provenance et/ou la destination d'un appel.

Dans la configuration par défaut, il y a trois emplacements où peuvent résider les profil SIP. Chaque profil est détaillé ci-dessous.

SIP_Profiles

Les profils par défaut sont «internes» et «externes», chacun desservant un large usage général. Les profils SIP externes sont généralement utilisés pour communiquer avec votre fournisseur de services de «passerelle», comme la société OVH ou similaire offrant un service de téléphonie via le protocole SIP pour vous. sip_profile interne - Je ne sais pas ce qui est un excellent exemple de cela.

Profils internes

Emplacement du fichier: FS/conf/sip_profiles/internal.xml

Ce profil se réfère généralement à des dispositifs qui se trouvent sur votre réseau local. Ces dispositifs vont hériter de toutes les options de configuration dans le profil interne vous configurez. Il s'agit généralement de vos téléphones internes avec les extensions. Par défaut, ces dispositifs doivent utiliser l'authentification SIP.

Le profil SIP interne (anciennement appelé "default") est configuré pour écouter sur l'adresse IP locale de la machine (sauf si vous définissez autre chose pour ${domain} dans vars.xml) sur le port 5060 (port SIP par défaut). Le profil SIP interne authentifie les appels et n'est pas adapté à la configuration de troncs de fournisseurs de servcices téléphoniques externes, dans la plupart des cas (c.-à-utiliser le profil externe pour la configuration de troncs de fournisseurs de servcices téléphoniques externes).

Le profil interne doit être utilisé si vous avez l'intention d'avoir la main sur les manipulation d'inscription pour les clients SIP (ie, un registraire SIP). Vous pouvez passez directement à la section Guide_de_démarrage pour configurer d'autres clients SIP.

Les utilisateurs authentifiés de ce profil sont normalement configurés (par l'intermédiaire de la variable user_context) pour utiliser le plan de numérotation défini dans le contexte par défaut.

Profils externes

Emplacement du fichier: FS/conf/sip_profiles/external.xml

Ce profil se réfère généralement à des dispositifs ou des passerelles qui résident en dehors de votre réseau. En général c'est là que vous définissez vos troncs externes, opérateurs VoIP, etc. Encore une fois, ces dispositifs vont hériter de toutes les options de configuration dans le profil extérieur que vous configurez.

Le profil externe (anciennement "sortant") gère les enregistrements sortants à un fournisseur SIP. Le fournisseur SIP vous envoie des appels, et vous envoyez des appels à votre fournisseur, par l'intermédiaire du profil externe. Le profil externe permet les appels anonymes, ce qui est nécessaire étant donné que votre fournisseur ne s'authentifiera jamais pour vous envoyer un appel.

Afin de sécuriser votre FreeSwitch il est sage de lier votre profil de sortie à un contexte autre que dialplan «par défaut», qui, dans la configuration par défaut est l'endroit où les utilisateurs authentifiés sont placés.

REMARQUE: Le port par défaut pour les connexions externes est 5080. Cela signifie également si vous essayez de vous connecter un téléphone à distance à votre serveur FreeSwitch, vous devrez le configurer pour se connecter sur le port 5080, ou changer votre configuration de ports. Ceci induit en erreur beaucoup de gens. A titre d'exemple, dans X-Lite, si vous vous connectez à FreeSWITCH de l'extérieur, configurez votre serveur en tant que "mon.serveur.com: 5080".

Le dialplan pour ce profil (par défaut) est défini dans le contexte public

NAT

Le fichier nat.xml (et le profil correspondant) sont désormais obsolètes et ne sont plus utilisés. Utilisez le profil externe et le port

D'autres concepts de profils

Idées pour d'autres profils SIP vous pourriez finir par créer:

  • routage IPv6

  • Avoir plusieurs profils pour les différents réseaux ou sous-réseaux

  • Avoir plusieurs profils pour différents hôtes/terminaux distants (les bâtiments distants, etc)

dialplan

Le dialplan FreeSWITCH est un mécanisme complet, à base de XML de routage des appels. (Il existe également un support pour les dialplans Asterisk-like DialPlans ainsi que de fantaisie vraiment en temps réel et/ou base de données back-end axées DialPlans.) Le meilleur endroit pour se lancer dans l'apprentissage de la dialplan FreeSwitch est la page de Dialplan ici sur le wiki . Il explique les bases de l'dialplan FreeSwitch. Si vous avez besoin d'une amorce XML vérifier les informations sur la page Basic_XML qui obtiendra vous l'avez souligné dans la bonne direction. Il ya deux autres ressources importantes pour vous en apprendre davantage sur le diaplan: la page petite mais croissante Dialplan_Recipes ainsi que le plan de numérotation par défaut qui vient avec une installation standard FreeSwitch.

The FreeSWITCH dialplan is a full-featured, XML-based call-routing mechanism. (There also exists support for Asterisk-like dialplans as well as really fancy real-time and/or back-end database-driven dialplans.) The best place to get started in learning about the FreeSWITCH dialplan is the Dialplan page here on the wiki. It discusses the basics of the FreeSWITCH dialplan. If you need an XML primer check out the information on the Basic_XML page which will get you pointed in the right direction. There are two other important resources for you to learn more about the diaplan: the small-but-growing Dialplan_Recipes page as well as the default dialplan that comes with a standard FreeSWITCH installation.

It is recommended that you compile FreeSWITCH with the default configuration and make sure it works before you start making customizations. Note that the default config files, including the default.xml dialplan, are still being updated. It makes sense to put your custom diaplan entries into the extensions subdirectory under conf/dialplan. You may create one or more XML files in this subdirectory, all of which will be included in the dialplan thanks to an "include" directive in the default.xml file. By keeping your customized extensions separate from default.xml you will be able to update default.xml without having to re-enter your custom extensions.

Some common extensions for testing

1000, 1001, ..., 1019 - Generic SIP extensions

5000 - demo IVR (requires sounds and music files to be installed)

9195 - five second delay echo test

9196 - standard echo test

9197 - milliwatt extension

9198 - tetris extension for demo TGML generation

9664 - music on hold (requires music files to be installed)

Voir aussi :

Dialplan Basics

Dialplan_XML

directory

See Config_directory.xml for a sample configuration.

The directory holds authentication credentials for other sip endpoints that will register to freeswitch (most commonly users). The directory configuration default is configured to process the glob $PREFIX/conf/directory/default/.xml by the configuration included in freeswitch.xml $PREFIX/conf/directory/.xml.

This may seem confusing but the default will work in most cases. Feel free to look at the examples in: $PREFIX/conf/directory/

User Configuration

see Config_1000.xml for a simple (1000.xml) configuration of a user (endpoint) which will register to freeswitch.

Sample Gateway Configuration

See SIP Provider Examples for sample gateway configurations for different providers.

outbound registrations to providers can also be made in the outbound profile. see Clarification:gateways this page for a clarification

Dialing out via Gateway

Add the following to default.xml (in prefix/conf/dialplan) for 11 digit dialing (US) via your newly created gateway configuration above. Remember, the default configuration provided by FreeSWITCH does not include a diaplan rule for outbound calls via the gateway you've defined. You will need to add something similar to the following.

   <!-- Dial any 10 digit number (2223334444) or 1+10 number (12223334444) here -->
   <extension name="Long Distance - voicepulse">
    <condition field="destination_number" expression="^(1{0,1}\d{10})$">
      <action application="set" data="effective_caller_id_number=12223334444"/>
      <!-- If your provider does not provide ringback (180 or 183) you may simulate
        ringback by uncommenting the following line. -->
      <!-- action application="ringback" /-->
      <action application="bridge" data="sofia/gateway/voicepulse/$1"/>
     </condition>
   </extension>

Receiving an inbound call from a Gateway

Add the following to public.xml (in prefix/conf/dialplan) to receive inbound calls via your newly created gateway configuration above. Make sure to set destination_number to a DID defined for this gateway. This will route all inbound calls to extension 1001. Remember, you can have multiple endpoints register to one account ( See Multiple Registrations ). You will need to add something similar to the following. Please note, this will only redirect to an extension, you will also need to have the extension bridge with an endpoint/user if that is your desire (See Dialplan_XML#Example_9 ).

   <extension name="Voicepulse">   <!-- your provider or any name you'd like to call it -->
    <condition field="destination_number" expression="15555551212">  <!-- your DID for this gateway-->
     <action application="transfer" data="1001 XML default"/>
    </condition>
   </extension>

If you want users to register with something other than the number that will reach them, then contact mapping is for you.

**Note: Not all providers work this way, if you have difficulty with routing incoming calls from your provider look in the Wiki section for SIP Provider Examples.

Mis à jour par francois-xavier.lesaffre il y a environ 12 ans · 11 révisions