Kamailio

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

Kamailio est un serveur SIP libre (anciennement OpenSER).

Historique[modifier | modifier le code]

Fonctionnalités[modifier | modifier le code]

Voici les fonctionnalités implémentées en 3.2.x dans le logiciel selon l'équipe du projet :

serveur SIP conforme à la RFC3261[modifier | modifier le code]

  • Serveur d'enregistrement,
  • Serveur de localisation,
  • Serveur proxy,
  • Serveur d'application SIP,
  • Serveur de redirection.


Flexibilité[modifier | modifier le code]

  • Faible consommation de ressources – idéal pour les applications embarquées – grâce à des binaires de faible taille,
  • Capacité de charger des modules sans toucher au cœur du logiciel,
  • Architecture modulaire,
  • plus de 150 modules.

Configuration[modifier | modifier le code]

Le fichier kamailio.cfg contient les informations principales de configuration de Kamailio. Les sections présentes sont les suivantes :

  • Définitions globales (Global Parameters) : Cette section du fichier liste les paramètres d'exécution du programme. On y trouve principalement le niveau de débogage, le type de couche de transport utilisé (UDP ou TCP), l'alias du serveur, les adresses IP et les ports d'écoute. Il faut redémarer kamailio pour recharger ces paramètres.
  • Paramètres locaux (Custom Parameters) : Ces paramètres peuvent être modifiés en cours d'exécution grâce au module 'cfg_rpc'.
  • Modules utilisés (Modules Section) : Cette section du fichier liste les modules chargés au démarrage de Kamailio, ainsi que le chemin pour trouver les modules (mpath). Pour définir des paramètres à ces modules, la commande modparam est utilisée. Les paramètres sont aussi listés dans cette section.
  • Routage et automate (Routing Logic) : Cette section définit comment le serveur réagit à un message SIP ou à un événement. C'est l'automate du serveur SIP. L'algorithme livré initialement est censé être conforme aux normes SIP, mais il peut être modifié dans cette section justement. La routine route permet de définir cela.

Les paramètres précédents ont été listés pour la version 3.2.x de Kamailio. Ils sont susceptibles d'évoluer.

Définitions globales (Global Parameters)[modifier | modifier le code]

  • debug : niveau de log compris entre -3 et 4. Le niveau par défaut est 2 et les logs sont inscrits dans /var/log/syslog. Les niveaux sont les suivants : -3 (alerte) : erreurs nécessitant une action immédiate ; -2 (critique) : erreur causant une situation critique ; -1 (erreur) : erreur pendant le traitement des données mais n'engendrant pas de dysfonctionnement ; 1 (warning) : warning ; 2 ( notice) : situation non usuelle ; 3 (informatif) : messages d'informations ; 4 (débogage) : pour le débogage,
  • fork : paramètre indiquant si le processus tournera lors de son lancement en tâche d'arrière-plan,
  • log_stderror : paramètre pour rediriger les messages d'erreur vers la sortie standard,
  • children : définit le nombre d'enfants (sous-processus) à créer par interface pour traiter les requêtes entrantes, il est utilisé uniquement pour les interfaces UDP et n'a pas d'impact sur les processus TCP.
  • tcp_max_connections :
  • alias :
  • listen :

Paramètres locaux (Custom Parameters)[modifier | modifier le code]

  • pstn.gw_ip  :

Modules utilisés (Modules Section)[modifier | modifier le code]

  • mpath : Le chemin pour trouver les bibliothèques des modules à charger (*.so en général). Voici la syntaxe pour ce paramètre : mpath="/tmp/blabla/:/home/ect/:/home/usw/:/home/aso/",
  • loadmodule : La commande loadmodule permet de charger les modules. La syntaxe est la suivante : loadmodule "module.so"
  • modparam : La commande modparam permet de configurer les modules chargés. La syntaxe est la suivante : modparam("nom_du_module","nom_du_paramètre_du_module","valeur_du_paramètre_du_module");

Chaque module possède un fichier de documentation appelé README, souvent sous le répertoire /usr/share/doc/kamailio/modules*/.

Routage et automate (Routing Logic)[modifier | modifier le code]

Chaque requête SIP reçue sera traitée dans la boucle commençant par :

route {

elle se termine avec :

}

Lorsqu'un mot clef MotClef est utilisé en paramètre, la fonction

route[MotClef] {
...
}

est exécutée[1]

Voir aussi[modifier | modifier le code]

Articles connexes[modifier | modifier le code]

Liens externes[modifier | modifier le code]

Notes et références[modifier | modifier le code]

  1. Pour plus de précisions, consulter la page de documentation mise à jour par l'équipe responsable du projet (en anglais): http://www.kamailio.org/wiki