..:: Domotique Store : Le Blog ::..
Articles Clients Guides et Tutoriels Open Source Raspberry Tous les articles

Raspberry, Asterisk, Freepbx, SPA3102, Freebox tout y est

rasp_ast

Mickael m’a proposé de me lancer dans un petit projet avec une raspberry-pi pour y faire tourner le serveur PABX Asterisk !

Du coup super motivé, je me lance dans la rédaction de cet article en espérant qu’il va vous aider

Voila  une petite description d’Asterisk  sortie tout droit de Wikipedia ! :

Asterisk est un autocommutateur téléphonique privé (PABX) open source et propriétaire (publié sous licence GPL et licence propriétaire1) pour systèmes GNU/Linux. Il permet, entre autres, la messagerie vocale, les files d’attente, les agents d’appels, les musiques d’attente et les mises en garde d’appels, la distribution des appels. Il est possible également d’ajouter l’utilisation des conférences par le biais de l’installation de modules supplémentaires et la recompilation des binaires.

Asterisk implémente les protocoles H.320, H.323 et SIP, ainsi qu’un protocole spécifique nommé IAX (Inter-Asterisk eXchange). Ce protocole IAX permet la communication entre deux serveurs Asterisk ainsi qu’entre client et serveur Asterisk. Asterisk peut également jouer le rôle de registrar et passerelle avec les réseaux publics (RTC, GSM, etc.) Asterisk est extensible par des scripts ou des modules en langage Perl,C, Python, PHP, et Ruby.

Rassurez vous, j’en vois déjà qui ont peur … je ne vais pas vous en mettre plein la tète sur la VOIP avec les différents protocoles.. le but de cet article est de faire que ca fonctionne 🙂

Installation

J’ai utilisé la distribution Raspbx, basée sur (Debian7 / Wheezy) avec dedans :

  • Asterisk 11.3.0
  • FreePBX 2.11.0.0rc1.2

Pour le téléchargement de la carte SD pré-installé, c’est sur le site de RAspberry-Atserisk : (elle fait 521mo)

Une fois téléchargée il faut la dézipper puis l’installer sur une carte SD (attention une carte au mini de 4gb, moi dans ma maquette j’ai pris une carte de 8gb)

Vous pouvez aussi acheter la SD Card avec Asterisk pré-installé directement sur la boutique : ICI

Depuis un pc sous Windows,  il faut utiliser un soft nommé Win32 Disk Imager :

image
https://sourceforge.net/projects/win32diskimager/

Ce soft va vous permettre de créer une SB Bootable pour votre raspberry Pi

Une fois le logiciel installé, il suffit de connecter sa carte SD sur son pc, la formater (pour moi d:\ ), choisir le répertoire ou vous avez dézipper l’image et ensuite appuyer sur le bouton WRITE (simple et efficace ;)) :

image

Cela prends un peu de temps …

Winking smile

Voila ! c’est bon l’image est sur la carte SD on peut lancer la raspberry pi … pour cela j’ai connecté la carte SD, un clavier USB, un écran, un câble réseau, et bien sur l’alimentation en dernier  (j’ai pris un câble micro-USB que j’ai relié à un pc )

Raspbx démarre …. attention, le clavier est en Qwerty (le login est root, mot de passe raspberry )

une fois connecté en Root, vous devez lancer la commande suivante : raspi-config

image

On va procéder dans l’ordre, les choix à faire :

Expand_rootfs afin d’agrandir automatiquement la partition sur l’ensemble de la carte SD,

Configure_keyboard, j’ai un clavier Logitech USB j’ai opté pour sélectionner un Généric 105 Touches, je n’ai pas besoin de toutes mes touches options…

Change_locale pour régler les paramètres locaux j’ai choisis l’ensemble fr_FR lol mais j’ai opté pour le fr_FR_UTF-8

Change_timezone il faut configurer Europe, puis Paris

et un petit dernier Update … puis un finish pour quitter l’utilitaire de configuration.

Je souhaite que ma raspberry dispose une ip fixe afin de l’administrer plus facilement pour cela j’ai récupéré l’adresse Mac en tapant : ifconfig

Après un petit tour sur l’interface de la freebox pour mettre une ip fixe à ma raspberry en configurant les « Baux statiques » dans la partie Réseau Local et Serveur DHCP.

On peu alors choisir d’affecter automatiquement une adresse IP en fonction de l’adresse MAC d’un périphérique.

Sachant qu’il y a eu des modifications du système un petit reboot va vous permettre de voir si tout est ok ! (pour cela taper directement dans la console : reboot)

On y est presque… la raspberry démarre 🙂

On va maintenant se plonger dans Asterisk, mais avant une mise à jour de la distrib  avec :

apt-get update / apt-get upgrade

image

Attention j’ai lu sur différents sites que les mises à jours de certain fichiers (Networking, Motd, Apache2..) ne sont pas conseillées.. du coup j’ai suivi les avis j’ai répondu Non afin de conserver la version actuelle.

Voila on y est !

pour afficher la console Asterisk (pour vérifier qu’il est bien lancé) en ligne de commande vous pouvez taper

asterisk –r

image

Si vous souhaitez quitter la console il suffit de taper : quit

Et si on passait à l’interface freePBX !

FreePBX est un outil de configuration graphique très convivial du logiciel de téléphonie libre Asterisk.

Un manuel francais est disponible à l’adresse suivante :

Pour s’y connecter rien de plus simple on rentre l’adresse Ip de la raspberry dans un navigateur

clip_image001
image
Winking smile

L’identifiant pour se connecter est admin mot de passe admin, (il faut penser à le changer )
Sur le haut à droite vous pouvez changer la langue (je penche pour le francais c’est mieux )

Voici la page d’accueil avec un affichage des ressources consommées :

image

Ci-dessous, je vous montre comment configurer le système en survolant les principes. Si vous avez des questions, n’hésitez pas à les poser dans les commentaires…

Dans les options

image

Il faut désactiver, le Nat (je trouve que c’est mieux pour la configuration …)

image

Ensuite dans les Codecs j’ai coché cela en plus

image

Pour chaque modif, il ne faut pas oublier de Soumettre les changements.

Bon maintenant je vais vous expliquer le cas concret que j’ai du mettre en production suivant le projet que m’a proposé Mickael !

Mickael voulait pouvoir utiliser sur son serveur Asterisk la prise téléphone situé à l’arrière de la Freebox, et ainsi avoir accès depuis son serveur à la téléphonie mobile illimitée. Ce que ne permet pas le SIP Free.

Il a donc fallu que je configure une passerelle Linksys SPA3102 avec la raspberry !
Cela permet d’utiliser sa ligne freebox depuis plusieurs DECT, mais également depuis des téléphones SIP (logiciel sur pc), faire des groupements d’appels, (bref faire un peu tout ce que l’on souhaite)

Voici ma marche à suivre ( ce n’est peut être pas la meilleure, j’ai regardé pas mal de site pas mal de tuto pour arriver à faire fonctionner l’ensemble sans soucis)

Sous Freepbx, il faut aller dans Applications

image

Puis ajouter une extension

image

Dans la configuration,
J’ai mis une extension Utilisateur : 1000
Un nom affiché (CID)

image

et un mot de passe (xxxx)
Voila rien d’autre !

image

on clique sur soumettre, puis sur le bouton qui va apparaitre en haut du menu

On va passer maintenant à l’étape la plus importante : la configuration du boitier SPA3102,

Winking smile

Mas d’abord, une petite description de ce produit :

Présentation

Le SPA3102 permet la connexion de téléphones standards et de fax à des réseaux de données IP et comporte également une connexion intégrée pour les applications de routage sur des réseaux téléphoniques standards.
Les utilisateurs du SPA3102 pourront gérer leurs services de téléphonie haut débit de manière optimale en acheminant automatiquement les appels locaux passés depuis des téléphones mobiles et des lignes terrestres via des fournisseurs d’accès VoIP et vice versa.
Si l’appareil n’est plus alimenté ou que le service Internet n’est plus disponible, les appels peuvent être redirigés automatiquement vers la ligne téléphonique classique par l’intermédiaire de l’interface FXO.
Un utilisateur appelant depuis un téléphone portable ou sur une ligne terrestre peut réduire voir même supprimer les frais d’appels internationaux ou longue distance en appelant d’abord son SPA3102 à l’aide d’un numéro de téléphone local.
L’intelligence d’authentification avancée et de routage d’appels programmée dans le SPA3102 achemine l’appel via Internet jusqu’au poste distant. De plus, lors de l’utilisation du SPA3102 sur le poste distant, les appels VoIP passés vers cet emplacement peuvent être soit pris, soit transférés et acheminés comme un appel local sur n’importe quelle ligne terrestre standard ou téléphone mobile.
Le SPA3102 prend en charge un port FXS POTS RJ-11 (pour services téléphoniques traditionnels) permettant la connexion d’un téléphone analogique ou d’un fax.
Le SPA3102 prend également en charge un port FXO PSTN permettant la connexion à un circuit Telco ou PBX. Le SPA3102 comprend deux interfaces Ethernet 100BaseT RJ-45 pour une connexion à un réseau LAN local ou d’entreprise, ainsi qu’une connexion Ethernet à un modem haut débit ou à un routeur.
Les lignes FXS et FXO du SPA3102 peuvent être configurées indépendamment via un logiciel contrôlé par le fournisseur de service ou l’utilisateur final.

Caractéristiques Techniques
  • Marque : Linksys
  • Ports : 1x FXO + 1x FXS
  • Port Ethernet : 1x RJ45
  • Type: Routeur voip

Le branchement est simple mais il mérite de bien le valider sous peine d’endommager vos appareils…

image

On connecte le 2éme Port à son téléphone DECT ou autres, puis on connecte le câble réseau sur celui tout a droite (Internet)
Le premier port Line n’est pour le moment pas utilisé …

Smile with tongue out

Voila on met l’alimentation au boitier et on le laisse démarrer cela est très rapide !
5 sec à peine vous pouvez essayer de décrocher avec votre téléphone, vous devez entendre une drôle de tonalité si c’est le cas c’est tout bon lol, on ne cherche pas à comprendre il faut faire une remise à zéro du boitier. Pour cela on tape 4 fois sur la touche étoile de son tél **** afin d’avoir un menu interactif avec le boitier puis on tape le code 73738#1 l’opératrice vous dit que l’opération est réussie le boitier reboot.
Maintenant vous pouvez connaitre l’ip du boitier en tapant ****110# attention l’opératrice va vous donner votre ip en Anglais
Pour terminer on tape 7932#1#1 afin d’activer l’interface Web du boitier

Tout est ok de votre coté alors on peut brancher le câble téléphonique de la freebox sur le port tout a gauche du boitier (Line)

Avant de passer dans le vif du sujet nous allons mettre à jour le boitier.

La version du software que vous avez ne doit pas être la même que la mienne car j’ai effectué une mise à jour du boitier je vous conseille de le faire également.

voici le lien pour télécharger le firmware :

https://software.cisco.com/download/home/282414112/type/282463187/release/5.2.13

Une fois dézipper il faut lancer :

upg-spa3102-5-2-13.exe

image

continue

image

Mettre l’ip du boitier et OK,
Voila votre boitier sera dans la dernière version.

Avec l’ip que la gentille opératrice vous a donné, il suffit de la taper dans un navigateur pour obtenir  la page suivante :

image

C’est parti pour la configuration pour cela il faut cliquer sur Admin Login, puis Advanced.

Vous devez obtenir cela :

image

Dans Wan Setup, j’ai mis une configuration d’ip statique :

image

Rien de compliqué la ? pensez a bien mettre 2 NTP, une fois les changements appliqué il faut taper dans le navigateur la nouvelle ip que vous avez choisi.

Dans la partie Lan SETUP.
Je suis parti en mode Bridge et non routeur (le routage n’est pas son rôle dans cette configuration…)

image
Winking smile

Dans Application RAS

On retourne sur l’interface Web, ne pas oublier de se remettre en admin et en mode avancé !
On passe dans la partie Voice, Régional  ( afin de vous faciliter la tache je vous met directement l’ensemble des informations ou j’ai effectué des modifications )

image
image

Ensuite Line 1. Cela va correspondre au téléphone qui est branché sur le SPA3102. Grâce à cette configuration, il sera connecté automatiquement à notre serveur Asterisk.

Bien sur le port est enable, le SIP Port est à 5060,

image

Le proxy et le Outbound Proxy correspond à l’adresse ip de ma raspberry (asterisk) le User Id est l’identifiant de mon extension (1000) précédemment créé sur Asterisk avec le mot de passe

image

J’ai opté pour le codec G711a, cela peut être modifié sans soucis mais si vous souhaitez le modifier il faut le modifier partout ou le codec est utilisé dans le SPA3102

image

Le codec G711 est le codec le plus utilisé en France dans les box internet autant le garder car il y a beaucoup de chance que notre Freebox l’utilise pour transporter la voix !

image

La dernière partie de la line 1.
Le Dial plan est super important !

Voici l’explication du dial plan que j’ai utilisé

Mais pour cela, je vais vous expliquer le Dial plan :

Le Plan de numérotation précise la manière d’interpréter les séquences de chiffres composées par l’utilisateur et de convertir ces séquences en une chaîne de composition sortante.

pour le xx.|
Un nombre arbitraire de chiffres qui seront acheminés via la configuration du fournisseur de VoIP de la Ligne 1.

pour le |<#9,:>xx.<:@gw0>) ( gw0 est spécial et signifie « composez par le port RTC ». )

Winking smile

Composez #9 et puis un chiffre ou plus (acheminés via la Ligne RTC). cela est très important pour moi, imaginez vous un problème de mise à jour d’asterisk, ou un bug, votre boitier SPA3102 sera toujours alimenté du coup plus possible de composer un numéro de téléphone, sauf en faisant un #9 puis le numéro que vous voulez composer

C’est un dial plan classique, vous pouvez le changer sans soucis.

Bon bon bon, maintenant nous allons pouvoir effectuer le premier test :

Sous asterisk dans la console : il faut taper

sip show peers

Winking smile

Cela va vous donner un tableau, l’extension 1000 avec le port 5060 est OK alors c’est bien partit, si ce n’est pas le cas je vous invite à relire l’article vous allez y arriver

image

Vous pouvez décrocher votre téléphone (celui branché directement sur le SP3102) et composer un numéro d’extension il devrait aboutir, idem si vous composez un #9 puis votre numéro de portable, votre tél portable doit sonner car l’appel doit automatiquement être routé vers la ligne externe.

Winking smile

Quand je dis appeler une extension c’est simple mais ….  je vais vous l’expliquer

Sur votre pc, vous pouvez installer le logiciel X-lite :
https://www.01net.com/telecharger/windows/Internet/communication/fiches/38908.html

Une fois installer il faut configurer une extension dans votre serveur Asterisk (de la même manière que nous avons créé une extension 1000 correspondant au SPA3102).

Sous Freepbx, il faut aller dans Applications

Puis ajouter une extension

image

Dans la configuration,
J’ai mis une extension Utilisateur : 101

Un nom affiché (CID)  : Pc-portable

et un mot de passe (xxxx)

Ensuite dans le logiciel X-lite, dans Account Settings :
Je remet mon user ID (101)
Le domaine mon IP de mon serveur Asterisk
Le mot de passe xxxx
et le display Pc-portable

image

Et on valide… (toujours très simple ? )

Winking smile

Maintenant depuis votre téléphone (branché sur le SPA), vous tapez le numéro 101, et votre pc doit sonner

On a déjà un mini PABX qui fonctionne !!!!

On va rentrer dans le dur maintenant, la partie qui m’a demandé pas mal de temps afin de tout comprendre et aussi de faire en sorte que tout fonctionne : La gestion des appels vers l’extérieur à partir du port Phone de la Freebox !

Sur l’interface du SP3102, dans la partie VOICE, PSTN Line

image

La line est sur Enable, le SIP port est à 5061,

image

Le Proxy, est mon serveur asterisk,

Le Register sur YES,

Make Call Without Reg et Ans Call Without reg sont sur YES également

Winking smile

Dans le champs User ID, il faut mettre un ID (sur le net j’ai vu pas mal de personnes mettre pstn.. j’ai suivi ), il faut un mot de passe aussi
Vous pouvez mettre ce que vous voulez, par contre il faut bien le noter, car vous allez en avoir besoin après.

image

J’ai utilisé encore le codec G711a,

Sans titre

Dans le Dial plan j’ai fais simple le premier Dial Plan 1 permet de tout appeler,

ensuite dans le 2éme il faut mettre (S0<:votrenumerodetéléphone@l’@IP de votre serveur Asterisk>)
Cela permet de faire la connexion avec Asterisk

image

Dans la VOIP-To-PSTN Gateway le mettre sur Yes et idem pour PSTN-to-voip

image

Il suffit encore de tout recopier lol

image
Winking smile

Ici pareil une dernière fois on recopie l’ensemble des paramètres qui correspondent à l’utilisation d’une ligne de type Freebox ! J’ai eu un problème sur le Line In Use Voltage, il semble que la ligne Freebox soit un peu spécifique… en mettant 30 ma ligne téléphone est stable maintenant

Voila on peut enregistrer en cliquant sur Submit All Changes, le SPA3102 est maintenant configuré !

Il faut repasser sur Freepbx maintenant,

on va dans Connectivity, puis Trunks

image

Puis on ajoute un trunk SIP

Le trunk SIP permet de passer et de recevoir des appels par internet

image

Le nom du trunk, il faut reprendre le nom que vous avez mis dans le user ID dans la section, pstn line du SPA3102

Dans Outbound CallerID il faut mettre votre numéro de téléphone 09……..

image

Dans les paramètre de sortie,

image

il faut reprendre de nouveau le nom de USER ID précédemment utilisé.
Puis dans les détails du PEER, voici la configuration à recopier :

canreinvite=no
context=from-trunk
host=dynamic
nat=no
port=5061
user=pstn
secret=azerty123
type=friend
qualify=yes
dtmfmode=rfc2833

Le secret (azerty123) est le mot de passe que vous avez mis dans la section PSTN LINE du boitier SPA3102 dans password

image

Voila on peut enregistrer

image

puis ne pas oublier :

Nous allons maintenant créer une route entrante
Les routes entrantes sont utilisées comme mécanismes pour la réception des appels entrants en provenance des Trunks

image

il faut donner une description (SPA) et dans numéro SDA, il faut mettre son numéro de téléphone 09……

image

puis on choisit une destination, Extensions et j’ai mis mon téléphone Fixe le numéro 1000,

comme cela si on appel sur mon numéro de freebox, alors mon téléphone DECT va sonner

image

Et pour finir, une petite route Sortante,

image

Encore très facile

il faut un nom (j’ai remis pstn car au bout d’un moment je suis devenu fou avec le pstn lol )
mais vous pouvez mettre ce que vous voulez : routeSPA, test, planetedomotique, merciDavid… ou autre 😉

Puis il faut établir un patterns, le miens est simple je peux appeler les numéros avec 3 chiffres, ou à 10 chiffres mais la encore vous pouvez faire ce que vous voulez.

image

Sur le bas il reste à mettre une séquence, on reprends le nom du trunk que vous avez créé précédemment (pstn)

image
Winking smile

Ne pas oublier de sauvegarder

On retourne sur la console d’asterisk, pour taper :

sip show peers

on doit voir maintenant en plus

image

Si vous avez le PSTN et le 1000 à OK on peut tester un appel vers l’extérieur depuis un client SIP,

Winking smile

Depuis X-lite que vous avez installé, essayez de faire votre numéro de portable voir si cela fonctionne

Si vous voulez voir ce qui se passe quand vous passez un appel au lieu de faire asterisk –r, il faut taper asterisk –rvvvvvvvvvvvvvvv

Pour finir mon article, lors de la configuration du boitier SPA3102

Dans la partie Lan SETUP. je suis parti sur Bridge mais en fait cela me sert vraiment… pkoi ??

Je n’avais pas d’alimentation électrique pour la Raspberry… pas grave le projet est de faire fonctionner asterisk à la maison …

Et le principe était de l’utiliser avec la Freebox V6 … et donc ses ports USB ! et oui j’ai utilisé un port USB de ma freebox pour alimenter ma Raspberry Pi..

Le  boitier SPA3102 ainsi configuré en Bridge est connecté en RJ45 à ma freebox et du coup, il suffit de connecter ma raspberry Pi avec un cable RJ45 sur le port Ethernet du SPA3102 !

Winking smile

Voila une petite visu

image

Lors de ma configuration de ma raspberry, j’ai utilisé un écran, une souris et un clavier, une fois que celle ci était opérationnel je me suis connecté en SSH dessus avec Putty

0
0
kragg62

Technophile et travaillant dans l'informatique (Système, Réseaux, Télécoms) c'est en lançant notre projet de construction de maison que je me suis tourné vers la domotique. <br /> J'ai commencé avec Homeseer et j'ai adoré :D maintenant je suis entrain de migrer ma solution vers la box EEdomus ;).

Laisser un commentaire