Passer à la navigation

FreePBX et Asterisk

Envoyez les appels de votre système téléphonique FreePBX ou Asterisk vers votre réceptionniste via un trunk SIP.

Votre PBX conserve son opérateur et ses numéros, et transmet les appels de votre choix à Reception.ai via un trunk SIP. Ajoutez un second trunk sur le PBX qui pointe vers Reception.ai, puis acheminez-y un DID, une condition horaire ou une option de SVI.

Avant de commencer

  • FreePBX 15 ou version ultérieure, ou Asterisk avec PJSIP, accessible depuis Internet.
  • Une adresse IP publique statique pour le PBX. Reception.ai accepte uniquement les appels provenant des adresses que vous autorisez.
  • Une personne à l’aise avec les trunks, les routes et le pare-feu de votre PBX.

Configuration

1

Ajouter le trunk SIP dans Reception.ai

Accédez à Integrations, sélectionnez Add integration, puis choisissez SIP Trunk. Sous Inbound allowed addresses, ajoutez l’adresse IP publique de votre PBX. Si vous définissez également un nom d’utilisateur et un mot de passe entrants, utilisez la même paire pour le trunk PBX ci-dessous.

2

Ajouter le numéro

Accédez à Receptionists, sélectionnez la tuile Phone, saisissez le numéro composé par les appelants avec son indicatif pays, puis sélectionnez Add SIP Trunk number. Reception.ai affiche l’hôte du serveur SIP et l’URI de requête à utiliser.

3

Activer TCP dans FreePBX

Reception.ai n’accepte pas UDP. Dans FreePBX, accédez à Settings → Asterisk SIP Settings → SIP Settings [chan_pjsip], réglez le transport tcp sur Yes, puis sélectionnez Submit et Apply Config. Redémarrez Asterisk pour charger le nouveau transport. TLS fonctionne également si vous avez configuré un certificat dans Certificate Management.

4

Créer le trunk vers Reception.ai

Accédez à Connectivity → Trunks → Add Trunk → Add SIP (chan_pjsip) Trunk. Dans l’onglet General, saisissez un Trunk Name, par exemple reception. Réglez CID Options sur Allow Any CID afin que le réceptionniste voie le numéro propre à chaque appelant. Dans l’onglet pjsip Settings :

ChampValeur
EnregistrementNone
AuthentificationNone, ou Outbound avec Username et Secret si vous avez défini des identifiants entrants dans Reception.ai
Serveur SIPL’hôte du serveur SIP Reception.ai
Port du serveur SIP5060 pour TCP, ou 5061 pour TLS
TransportLe transport TCP (ou TLS), par exemple 0.0.0.0-tcp
5

Ajouter une route sortante qui envoie le format +E.164

Accédez à Connectivity → Outbound Routes et ajoutez une route nommée Reception qui utilise uniquement le trunk reception. Ajoutez un modèle de numérotation avec un préfixe inutilisé, tel que 88, un modèle de correspondance de X., et un préfixe ajouté de +. Un appel vers 8814155550123 quitte alors le trunk sous la forme +14155550123, qui est le format requis par Reception.ai.

6

Envoyer le DID vers Reception.ai

Accédez à Applications → Misc Destinations et ajoutez une destination qui compose 88 suivi du numéro au format E.164 sans +, par exemple 8814155550123. Accédez ensuite à Connectivity → Inbound Routes, ouvrez la route de votre DID et définissez cette destination diverse comme destination. Vous pouvez également l’utiliser comme destination d’une condition horaire, d’un basculement de groupe de sonnerie ou d’une option de SVI.

7

Corriger la NAT et l’audio

Accédez à Settings → Asterisk SIP Settings → General SIP Settings. Réglez External Address sur l’adresse IP publique du PBX et indiquez vos sous-réseaux privés sous Local Networks. Ouvrez dans votre pare-feu les RTP Port Ranges affichées sur cette page (UDP, 10000–20000 par défaut).

8

Le tester

Appelez votre DID depuis un autre téléphone et vérifiez que votre réceptionniste répond.

Asterisk seul

Sur Asterisk sans FreePBX, la même configuration dans pjsip.conf se présente comme suit. Remplacez SIP_SERVER par l’hôte affiché par Reception.ai.

[transport-tcp]
type=transport
protocol=tcp
bind=0.0.0.0:5060
external_signaling_address=PBX_PUBLIC_IP
external_media_address=PBX_PUBLIC_IP
local_net=192.168.0.0/16
[reception]
type=aor
contact=sip:SIP_SERVER:5060;transport=tcp
[reception]
type=endpoint
transport=transport-tcp
aors=reception
context=from-reception
disallow=all
allow=ulaw,alaw

Dans le plan de numérotation, envoyez l’appel avec le numéro au format E.164 :

exten => YOUR_DID,1,Dial(PJSIP/+14155550123@reception)

Si vous avez défini des identifiants entrants dans Reception.ai, ajoutez une section type=auth avec ceux-ci et référencez-la avec outbound_auth= sur le point de terminaison.

Limites

  • Transferts. Votre réceptionniste transfère les appels en passant un nouvel appel vers l’adresse SIP sortante. Orientez-la vers votre opérateur SIP, à l’aide d’un compte opérateur qui accepte un nom d’utilisateur et un mot de passe. L’acheminement des transferts vers le PBX n’est pas traité ici : Reception.ai appelle depuis un ensemble d’adresses changeant, de sorte que le PBX ne peut pas associer ces appels à un trunk par adresse IP.
  • Votre PBX transporte chaque appel deux fois, une fois depuis l’opérateur et une fois vers Reception.ai. Il doit donc disposer d’un canal libre pour chaque segment.

Résolution des problèmes

ProblèmeVérification
Les appels échouent avant la sonnerieVérifiez que le trunk utilise le transport TCP ou TLS, et non UDP, et que le port y correspond.
Les appels sont refusésAjoutez l’adresse IP publique du PBX à Inbound allowed addresses. Vérifiez dans la console Asterisk que l’URI de requête de l’INVITE commence par + et l’indicatif pays.
Le réceptionniste voit le numéro du PBX comme appelantRéglez CID Options sur le trunk Reception.ai sur Allow Any CID.
Audio à sens unique ou absence d’audioDéfinissez External Address et Local Networks, puis ouvrez la plage de ports RTP dans le pare-feu.
Le réceptionniste ne répond pasAssurez-vous que le numéro est ajouté dans la tuile Phone du réceptionniste et qu’il correspond au numéro envoyé par le PBX.