Configuration client SIP
Tout client SIP capable de passer un appel via un proxy peut utiliser un trunk Bird. Cela inclut les PBX, les softphones de bureau et les outils en ligne de commande. Cette page fait correspondre les détails de connexion du trunk aux champs courants des clients et aux paramètres d'authentification.
Ce dont un client a besoin
Quatre valeurs, toutes issues de la page du trunk :
| Champ du client | Valeur à saisir |
|---|---|
| Serveur SIP, domaine, hôte ou proxy | Le domaine SIP du trunk |
| Port et transport | Un des ports pris en charge du trunk |
| Utilisateur d'authentification, auth user ou login | bird |
| Mot de passe ou secret | Le secret d'une clé API autorisée sur le trunk |
Un trunk qui utilise uniquement sa liste d'adresses IP autorisées n'a besoin que des deux premiers. Les identifiants sont ce qu'ajoute l'authentification par clé API.
Les exemples utilisent YOUR_TRUNK_DOMAIN, YOUR_CALLER_ID et YOUR_API_KEY_SECRET. Copiez le domaine complet depuis la page du trunk. Bird refuse les appels vers un autre domaine avant qu'ils n'atteignent votre journal d'appels. Une fois connecté avec le Bird CLI, exécutez bird voice tools test-call --dry-run pour afficher ces valeurs sous forme de ligne de compte baresip.
Laissez realm ou domaine d'authentification vide pour que le client utilise le realm du challenge Bird. Si un client exige une valeur, utilisez l'identifiant de l'espace de travail sans son préfixe wsp_, suivi de .sip.bird.com. Le realm de l'espace de travail diffère du domaine SIP du trunk.
Passer des appels sans enregistrement
Bird authentifie chaque INVITE par rapport à la liste d'adresses IP autorisées du trunk ou via un challenge par mot de passe. Les clients ne s'enregistrent pas auprès du trunk.
Vérifiez l'enregistrement avant de passer un appel :
- Dans un PBX, configurez Bird comme trunk et laissez l'enregistrement désactivé. Pour Asterisk, cela signifie aucune section type=registration ; pour FreeSWITCH, register=false sur la gateway ; FreePBX et 3CX disposent d'un mode d'enregistrement à définir sur none.
- Dans un softphone, désactivez l'enregistrement dans les paramètres avancés du compte si l'option est proposée. Si elle ne l'est pas, la tentative d'enregistrement échouée est cosmétique et la numérotation fonctionne quand même, car l'authentification porte sur l'INVITE et non sur l'enregistrement.
Deux identités, deux champs
Votre client doit envoyer deux identités distinctes :
- L'identifiant de l'appelant figure dans l'en-tête From et doit être un numéro que vous avez vérifié, au format E.164 : un + initial suivi de l'indicatif pays et du numéro national. Dans la plupart des clients, il s'agit du champ utilisateur ou identifiant de l'appelant du compte.
- Le nom d'utilisateur digest est toujours bird. Dans la plupart des clients, il s'agit du champ utilisateur d'authentification ou login.
Composez également en E.164, car c'est sur cette base que Bird route et tarifie.
Softphones
Un softphone est le moyen le plus rapide de vérifier qu'un nouveau trunk fonctionne avant d'y diriger le trafic de production.
baresip
Ajoutez une ligne dans ~/.baresip/accounts, avec votre identifiant d'appelant comme utilisateur du compte et bird comme utilisateur d'authentification :
Exemple de code
<sip:YOUR_CALLER_ID@YOUR_TRUNK_DOMAIN>;auth_user=bird;auth_pass=YOUR_API_KEY_SECRET;regint=0;outbound="sip:YOUR_TRUNK_DOMAIN;transport=udp"regint=0 empêche baresip de s'enregistrer. Lancez-le et composez avec /dial +31612345678.
Zoiper
Ajoutez un compte SIP manuellement. Définissez Domain sur le domaine SIP du trunk, Username sur votre identifiant d'appelant vérifié, et Password sur le secret de la clé API. Dans les paramètres avancés, définissez Auth username sur bird, désactivez l'enregistrement au démarrage, et choisissez le transport.
Linphone
Ajoutez un compte avec bird comme utilisateur d'authentification de l'identité SIP et votre identifiant d'appelant comme nom d'utilisateur, puis désactivez l'enregistrement sur le compte. Dans linphonerc, le même compte est une section [proxy_N] avec reg_sendregister=0.
MicroSIP
Sous Account : SIP server correspond au domaine SIP du trunk, Username à votre identifiant d'appelant vérifié, Login à bird, Password au secret de la clé API. Laissez Domain identique au serveur SIP.
PBX
Asterisk
Dans pjsip.conf, un endpoint avec authentification sortante et sans section d'enregistrement :
Exemple de code
[bird-auth]
type=auth
auth_type=userpass
username=bird
password=YOUR_API_KEY_SECRET
[bird-aor]
type=aor
contact=sip:YOUR_TRUNK_DOMAIN:5060
[bird]
type=endpoint
context=from-internal
outbound_auth=bird-auth
aors=bird-aor
from_user=YOUR_CALLER_ID
from_domain=YOUR_TRUNK_DOMAINfrom_user est l'identifiant d'appelant que Bird vérifie ; il doit donc être un numéro vérifié. Composez avec Dial(PJSIP/+31612345678@bird).
FreePBX
Sous Connectivity > Trunks, ajoutez un trunk SIP (chan_pjsip). Dans ses pjsip Settings, définissez Username sur bird, Secret sur le secret de la clé API, SIP Server sur le domaine SIP du trunk, Authentication sur outbound et Registration sur none. Définissez l'identifiant d'appelant sortant du trunk sur un numéro vérifié.
FreeSWITCH
Une gateway dans conf/sip_profiles/external/bird.xml :
Exemple de code
<include>
<gateway name="bird">
<param name="proxy" value="YOUR_TRUNK_DOMAIN"/>
<param name="register" value="false"/>
<param name="username" value="bird"/>
<param name="password" value="YOUR_API_KEY_SECRET"/>
<param name="from-domain" value="YOUR_TRUNK_DOMAIN"/>
<param name="caller-id-in-from" value="true"/>
</gateway>
</include>Avec caller-id-in-from défini, l'identifiant d'appelant sur le leg devient le numéro From : définissez-le sur un numéro vérifié au moment de l'appel.
3CX
Ajoutez un trunk SIP générique et désactivez l'enregistrement. Définissez son hôte sur le domaine SIP du trunk, son identifiant d'authentification sur bird, et son mot de passe sur le secret de la clé API. Définissez l'identifiant d'appelant sortant sur un numéro vérifié.
Étapes suivantes
| Page | Contenu |
|---|---|
| Dépannage vocal | Diagnostiquer un appel qui n'aboutit pas, à partir du symptôme |
| Trunks SIP | Les détails de connexion, les listes d'autorisation et l'offre Digest |
| Passer des appels | Ce que Bird attend sur l'INVITE, et comment un appel est tarifé |
| Identifiants d'appelant | Enregistrer un numéro et prouver que vous en êtes propriétaire par un appel de vérification |
| Journal d'appels | Confirmer qu'un appel a été émis, et son coût |
Ressources associées
Poursuivez avec la documentation, les guides et les exemples sur ce sujet. Les ressources sont en anglais.
Comprendre le conceptWhat is a voice API?Explorer la fonctionnalitéVoiceGuide d'implémentationVoice overview
Obtenir un guide d'implémentation