• Les extensions dans le fichier extension.conf

      Voici quelques lignes pour rappeler les bases des extensions dans le fichier extensions.conf....

      Pour rappel, les extensions sont la première parties dans les lignes présentes dans le fichier extensions.conf (en rouge dans les exemples suivant) :

      Code:
      exten = 1234,1,Dial(SIP/1234)
      exten = _XXXX,1,Dial(IAX2/${EXTEN})
      exten = s,1,NoOp(Test)
      exten = h,1,Hangup()

      Alors, commençons par la base, une extension peut être composée de Chiffre, ou de Lettre (Moins pratique pour composer depuis un GSM ) Elle correspondent a ce que l'appelant compose pour joindre quelqu'un, par exemple :

      Si je souhaite joindre le compte sip 1234 sur mon serveur lorsque l'on compose le 1234, je mettrais la ligne suivante :

      Code:
      exten = 1234,1,Dial(SIP/${EXTEN})
      Et ainsi de suite pour les comptes suivant par exemple :

      Code:
      exten = 1234,1,Dial(SIP/${EXTEN})
      exten = 1234,1,Dial(SIP/${EXTEN})
      exten = 1234,1,Dial(SIP/${EXTEN})
      exten = 1234,1,Dial(SIP/${EXTEN})
      exten = 1234,1,Dial(SIP/${EXTEN})
      exten = 1234,1,Dial(SIP/${EXTEN})
      exten = 1234,1,Dial(SIP/${EXTEN})
      exten = 1234,1,Dial(SIP/${EXTEN})
      Facile, vite fais, enfin presque mais quand est-il pour des installations comprenant plusieurs dizaines, voir centaines de comptes Sip ?

      Et bien la, on utilise les templates...... Kesako Une ancienne torture chinoise ? Une nouvelle drogue ? .....

      Et non, c'est tout simple, et cela permet des faire matcher des extensions en une seule ligne..... voici comment les utiliser :

      Les templates, commence toujours par le sigle :
      Code:
      _
      Et on les composes, avec les caractères suivants :

      X, Z, N, [], ., !

      Voici comment les utiliser :
      Code:
      X Correspond à un chiffre entre 0 et 9
      
      Y Correspond à un chiffre entre 1 et 9
      
      Z Correspond à un chiffre entre 2 et 9
      
      [1247-9] Correspond à un chiffre dans la liste suivante : 1,2,4,7,8,9
      
      . Correspond à un chiffre/lettre et plus
      
      ! Correspond à un chiffre/lettre et plus, ou à rien
      Ci-dessous quelques exemples :

      Code:
      _XX = 12, 34, 45, 68, 25, 43,00, 01,...
      _ZX = 12, 24, 34, 64, 44, 45,.... (Mais pas par exemple 01,02,03,04,...,09)
      _NN = 22, 33, 23, 45, 68, ... (Mais pas par exemple 01,02,03,04,...,09, 11, 15, 17, 19)
      _[7-9]X = 71,78,91,85,81, (Mais pas par exemple 01,02,03,04,...,09, 11, 15, 17, 19,54,68)
      _[a-z] = Correspond à toutes lettre entre a et z en minuscule
      _. = Attention peut être dangereux, il donne accès à tout ce qui correspond à un chiffre, ou une lettre au moins (Utiliser plutôt : _X.)
      Ainsi pour notre exemple précédent, pour nos connexions, nous pouvons utiliser la ligne suivante :

      Code:
      exten = _XXXX,1,Dial(SIP/${EXTEN})
      ou 
      exten = _12XX,1,Dial(SIP/${EXTEN})

      Continuons sur quelques extensions particulière :

      h : Correspond à l'extension qui est appelée dans le contexte lors d'un hangup (Pour faire un traitement lors du raccrochement)
      i : Correspond à l'extension qui est appelée lorsque l'appelant compose une extension invalide (Par exemple une extension non présente dans le contexte)
      s : Correspond à l'extension appelée, lorsque l'on a pas d'information sur le numéro appelé, dans un contexte (Appel entrant, sur une ligne analogique par exemple)
      t : Correspond à l'extension appelée, lorsque l'appelant arrive à un timeout, après un fichier son par exemple dans un menu vocal, sans action de la part de l'appelant.

      fax : extension utilisée pour la détection de fax arrivant sur un canal DAHDI.

      a : Extension appelée lors de la pression de la touche *

      Et pour finir, ce petit rappel, vous pouvez utiliser pour vos extensions, des match aussi sur le callerid(num) de l'appelant avec le caractère : / :
      Code:
      exten = 9876,1,NoOp(Ne Sert A Rien Du Tout)
      exten = 9876/1234,n,NoOp(1234 est le meilleur)
      exten = 9876,n,Hangup()
      On peut bien entendu utiliser des templates, pour les correspondances sur le callerid(num), par exemple :

      Code:
      exten = s,1,NoOp(Appel Entrant)
      exten = s,n,Set(CALLERID(name)=Autre)
      exten = s/_0041XX.,n,Set(CALLERID(name)=Suisse)
      exten = s/_0033XX.,n,Set(CALLERID(name)=France)
      exten = s,n,Dial(SIP/Support)
      Voilà, j'espère que cela pourras vous aider un peu
      Cet article a été publié à l'origine dans la discussion du forum : Les extensions dans le fichier extension.conf commencé(e) par cedricscha Afficher le message original
      Commentaires 7 Commentaires
      1. Avatar de UncleBuzz
        UncleBuzz -
        Juste pour être sur de comprendre le fonctionnement, sur le dernier exemple :

        Code:
        exten = s,1,NoOp(Appel Entrant)
        exten = s/_0041XX.,n,Set(CALLERID(name)=Suisse)
        exten = s/_0033XX.,n,Set(CALLERID(name)=France)
        exten = s,n,Set(CALLERID(name)=Autre)
        exten = s,n,Dial(SIP/Support)
        Moi j'aurai mis dans cet ordre :

        Code:
        exten = s,1,NoOp(Appel Entrant)
        exten = s,n,Set(CALLERID(name)=Autre)
        exten = s/_0041XX.,n,Set(CALLERID(name)=Suisse)
        exten = s/_0033XX.,n,Set(CALLERID(name)=France)
        exten = s,n,Dial(SIP/Support)
        car qu'est ce qui empêche après avoir mis "France" ou "Suisse" dans le CALLERID de passer à la priorité suivante qui mettra par dessus "Autre" ?
        Il manque soit un goto, ou alors en mettant "Autre" en 1er et en l'écrasant si une extension suivante correspond non ?

        Est-ce que c'est valable pour toute les versions d'asterisk ? de la 1.4 à 1.8 ? Je pense que même si aujourd'hui c'est valable pour toute les versions, il faudrait préciser les versions concernées, pour le cas ou la 2.0 ou ultérieure ne reprenne pas ce principe sans devoir revenir sur cette page pour préciser à postériori que ça n'est plus valable pour toutes les versions
      1. Avatar de ffossard
        ffossard -
        Si la 2.0 est compatible, il faudra dans ce cas aussi revenir ici pour le rajouter
        Comme il y'a bien plus de chance que ça soit compatible que le contraire (au pire ça sera "deprecated" mais fonctionnel), autant laisser tel quel.

        On peut aussi précisé qu'en 1.2 la syntaxe est différente, mais franchement qui va en installer une aujourd'hui ... Ceux qui ont encore des 1.2 en prod sont des "vieux" de l'Asterisk donc il connaissent ça ou sauront voir que ça n'est pas compatible.
      1. Avatar de cedricscha
        cedricscha -
        Citation Envoyé par UncleBuzz Voir le message
        Juste pour être sur de comprendre le fonctionnement, sur le dernier exemple :

        Code:
        exten = s,1,NoOp(Appel Entrant)
        exten = s/_0041XX.,n,Set(CALLERID(name)=Suisse)
        exten = s/_0033XX.,n,Set(CALLERID(name)=France)
        exten = s,n,Set(CALLERID(name)=Autre)
        exten = s,n,Dial(SIP/Support)
        Moi j'aurai mis dans cet ordre :

        Code:
        exten = s,1,NoOp(Appel Entrant)
        exten = s,n,Set(CALLERID(name)=Autre)
        exten = s/_0041XX.,n,Set(CALLERID(name)=Suisse)
        exten = s/_0033XX.,n,Set(CALLERID(name)=France)
        exten = s,n,Dial(SIP/Support)
        car qu'est ce qui empêche après avoir mis "France" ou "Suisse" dans le CALLERID de passer à la priorité suivante qui mettra par dessus "Autre" ?
        Il manque soit un goto, ou alors en mettant "Autre" en 1er et en l'écrasant si une extension suivante correspond non ?

        Est-ce que c'est valable pour toute les versions d'asterisk ? de la 1.4 à 1.8 ? Je pense que même si aujourd'hui c'est valable pour toute les versions, il faudrait préciser les versions concernées, pour le cas ou la 2.0 ou ultérieure ne reprenne pas ce principe sans devoir revenir sur cette page pour préciser à postériori que ça n'est plus valable pour toutes les versions

        Oups je corrige, j'ai inversé quelques lignes.....

        Merci du retour
      1. Avatar de UncleBuzz
        UncleBuzz -
        Citation Envoyé par ffossard Voir le message
        Si la 2.0 est compatible, il faudra dans ce cas aussi revenir ici pour le rajouter
        Comme il y'a bien plus de chance que ça soit compatible que le contraire (au pire ça sera "deprecated" mais fonctionnel), autant laisser tel quel.

        On peut aussi précisé qu'en 1.2 la syntaxe est différente, mais franchement qui va en installer une aujourd'hui ... Ceux qui ont encore des 1.2 en prod sont des "vieux" de l'Asterisk donc il connaissent ça ou sauront voir que ça n'est pas compatible.
        Il suffit de dire qu'elles versions existent au moment de la rédaction et quelles versions sont concernées. Il est logique que les versions ultérieures ne peuvent pas être prises en compte, personnellement, quand je fais une recherche pour asterisk ou n'importe quel sujet et que je trouve des tonnes de réponses, j'aime bien voir à quel version ça se rapporte plutôt que de rechercher si à l'époque la version que j'utilise existait déjà... Il y a même des sites ou n'apparait même pas la date de publication de l'info pour avoir une idée de la pertinence de celle-ci au moment où je la consulte...

        Ca ne coute pas grand chose à la rédaction, et si aujourd'hui ça parait futile, dans 3-5 ans ça pourrait permettre de juger rapidement de la pertinence de l'article... Je dis juste ça rapport à mon expérience avec google et les infos qui restent en général à vie sur le net...

        En l'occurrence l'article ne dit pas si c'est une nouveauté de la 1.6 ou 1.8 par exemple (ce qui pourrait être la cas), la 1.4 est très utilisé, la 1.6 aussi, pour la 1.2 je suis d'accord, mais je parle juste de principe général
      1. Avatar de tigervroum
        tigervroum -
        Code:
        X Correspond à un chiffre entre 0 et 9
        
        Y Correspond à un chiffre entre 1 et 9
        
        Z Correspond à un chiffre entre 2 et 9
        
        [1247-9] Correspond à un chiffre dans la liste suivante : 1,2,4,7,8,9
        
        . Correspond à un chiffre/lettre et plus
        
        ! Correspond à un chiffre/lettre et plus, ou à rien
        bonjour,
        est ce que ça ne serait pas plutôt ça ?
        X Correspond à un chiffre entre 0 et 9
        Z Correspond à un chiffre entre 1 et 9
        N Correspond à un chiffre entre 2 et 9

        Bonne journée
      1. Avatar de aliamini
        aliamini -
        bonjour
        je suis etudiant en licence3 je traite un sujet pour asterisk j aimerai bien mettre en place une aplication pour les bank (par exemple recuperer un solde de credit transfer d'argent )s il vous plait est c que vous pouvez m'aider a m envoiyer un raport
        sael@hotmail.fr
        merci
      1. Avatar de oyebam
        oyebam -
        Bonjour les amis, je suis nouveau sur ce site, je profite de l'occasion pour expliquer mon problème.
        En fait je débute sur asterisk, mon soucis se trouve au niveau du fichier extensions.conf et sip.conf.
        le problème est le suivant ;je n'arrive pas à creer des utilisateurs et les associer à un numero.
    • A propos d'Asterisk

      Asterisk

      Asterisk est un IPBX open source (logiciel libre) pour Linux originellement créé en 1999 par Mark Spencer, fondateur de la société Digium.

      logo asterisk
    • Downloads populaires

    • Articles récents

    • Utilisateurs actuellement connectésUtilisateurs actuellement connectés

      0 membre(s) et 149 invité(s)

      Le record de connectés est de 2 678, 22/07/2022 à 11h34.

    • Ils nous soutiennent

      logo digium
      logo alter-it
      logo avencall
      logo beronet
      logo celya
      logo cnsi
      logo dolmen
      logo easypyro
      logo eyepea
      logo keyyo
      logo opcom
      logo openip
      logo ovh
      logo qualigaz
      qualistream
      logo voip-asterisk
      logo voxity
      logo yealink