FIXME (à completer)

Préambule: Après avoir réalisé la même experience en utilisant IAX (le protocole de communication entre serveurs Asterisk), nous conseillons fortement cette dernière, bien plus simple à mettre en oeuvre que la methodologie qui suit.

En suivant les instructions de l'excellent Asterisk, the future of telephony, vous avez certainement reussi en quelques coups de cuiller a pot à monter un simple PBX sur lequel se connectent directement vos clients SIP, typiquement des softphones tels qu'ekiga.

Tahorg et moi avions envie de monter un truc qui nous permette :

1. de pouvoir communiquer entre nous et tous les lutins mais aussi 2. de garder nos PBX maison qui relient les differents soft / hardphones au sein de nos demeures et gèrent éventuellement differents accès téléphoniques.

Voici l'architecture simple que nous avons monté :

Voici le sip.conf d'un PBX client, celui chez soi donc, ne comportant que les informations nécessaires au dialogue avec le PBX “maitre”.

[general]
register => imil:mot_de_passe@host.pbx.public ; on enregistre son serveur SIP comme client sur le serveur PBX public
videosupport=yes ; on supporte le transport video
allow=all ; on authorise tous les codecs (uniquement pour les tests)

[monpbxpublic-out]
type=peer ; voir http://www.voip-info.org/wiki/view/Asterisk+SIP+user+vs+peer pour l'explication
secret=mot_de_passe
insecure=very ; nécessaire pour un peering SIP (à contrario d'IAX)
username=imil
host=host.pbx.public
nat=no ; le serveur est public
context=from-monpbxpublic ; contexte a renseigner dans extensions.conf

; à la suite du fichier, les definitions des postes locaux par exemple

Voici l'extensions.conf correspondant :

[maison]
exten => 100,1,Dial(SIP/imil) ; numero local
exten => _88299.,1,Dial(SIP/${EXTEN}@monpbxpublic-out,30,r) ; lorsque je compose un numero qui matche 88299 (voir e164.org), on utilise le lien monpbxpublic-out


[from-monpbxpublic]
exten => s,1,Dial(SIP/imil) ; par defaut (entrée "s"), lorsqu'on recoit un call depuis le pbx public, on appelle cette ligne.

Maintenant, voici le sip.conf du serveur Asterisk public :

[general]
videosupport=yes
allow=all

[imil]
type=friend ; on peut se connecter ici via un telephone ou via un peer asterisk
username=imil
secret=mot_de_passe
host=dynamic
context=pbxpublic

[tahorg]
type=friend
username=tahorg
secret=mod_de_passe
host=dynamic
context=pbxpublic

Et l'extensions.conf correspondant (les numeros ne sont pas les bons evidemment…) :

[pbxpublic]
exten => 8829900349801,1,Dial(SIP/imil)
exten => 8829900349802,1,Dial(SIP/tahorg)

Reste maintenant à démarrer votre asterisk sur le pbx public (préferablement en mode console pour le debug: asterisk -cvvv) et de placer les variables suivantes :

*CLI> set debug 25
*CLI> set verbose 25

Faites de même sur votre PBX maison, et vous deviez vous apparaitre :

-- Registered SIP 'imil' at xx.xx.xx.xx port 5063 expires 1800

…Et c'est maintenant que le cauchemar commence ;)

unix/peering_sip_asterisk.txt · Last modified: 2010/01/12 13:29 (external edit)