PDA

Voir la version complète : Connexion perdue entre OVH et Asterisk après 2 min !?



OlivierVanDyck
12/09/2016, 12h52
Bonjour à toute la communauté,
Je commencerai mon tout premier poste pour vous informer que je débute sur les forums et Asterisk.
Je vous présente donc à l’avance toutes mes excuses si je venais a utilisé ceux-ci de la bonne manière.
J’essaie de mettre en place une petite solution VOIP pour notre entreprise qui comprend :

Une machine virtuel Debian 3.16.7
Un Asterisk 13
Deux SIP phone Fanvil X5
Deux smartphones avec Csipsimple
Un trunck OVH.


Les communications entre poste fonctionnent très bien.
Les appels sortant (Asterisk vers OVH) fonctionnent.
Les appels entrant (OVH vers Asterisk) fonctionnent pendant environ deux minute.
Au bout de ce laps de temps, lorsque que l’on tente de joindre Asterisk via le trunk, OVH nous informe que le numéro n’est pas disponible.
Par contre, apes un reload dans la console Asterisk ou après avoir effectué un appel sortant, mon Asterisk est de nouveau joignable via le trunk pour de nouveau environ 2 min.

Est-ce qu’une personne serait en mesurer de m’apporter une solution avec une petite explication ?

Avec mes meilleures salutations,

jean
12/09/2016, 14h39
c'est un souci de communication réseau entre asterisk et ovh

- soit le firewall referme ce qui a été ouvert, probable
- soit le routeur / firewall change le numéro de port lorsque les paquets partent vers ovh, et après quelques instants, ne réalisent pas que les paquets suivants appartiennent au meme echange, et mettent un autre no de port, et c'est le bazar

la solution la plus efficace serait de passer l'échange entre asterisk et ovh en tcp, si ils le supportent - jamais essayé, mais ca vaut le coup de regarder
sinon,
essayer de configurer le port 5060 sur le routeur avec l'adresse d'OVH uniquement,
chercher si le routeur a le concept de UDP timeout, ou de session udp
sinon, passer l'option qualify=yes et qualifyfreq=30 (ou 30000 je sais plus l'unité, regarder la doc)- ca enverra des paquets toutes les 30 secondes et maintiendra la session ouverte

OlivierVanDyck
12/09/2016, 15h14
Merci Jean,
Entre temps j’avais déjà mis en place une configuration TCP entre Asterisk et OVH avec mappage du port dans le routeur mais cela n’avait rien résolu.
Je vais donc mettre en place votre seconde option.
Bien à vous,

jean
12/09/2016, 15h17
On parle bien de TCP au lieu de UDP ? là, c'est bizarre... Essaie aussi d'installer ngrep et de faire un ngrep port 5060 and host <ip de voh>
ngrep écoute avant le firewall, et permet de voir ou les paquets se perdent - avant le serveur ou dans le serveur

J

OlivierVanDyck
12/09/2016, 15h27
Oui tout à fait, nous parlons bien de TCP au lieu de UDP.

Avec l’ajout de qualify=yes et qualifyfreq=30 , je peux déjà constater que ma connexion est toujours maintenue dans les deux sens depuis plus de 15 min, c’est beaucoup mieux.

jean
12/09/2016, 15h35
c'est très étrange que tcp marche pas.... le fait que ca marche vient de l'envoi régulier de paquets, qui forcent le firewall à rester ouvert, c'est pas génant en soi, mais c'est pas ultra joli comme solution.
rajoute quand même un ~120 à la fin de la ligne register, ca devrait augmenter la stabilité

register => [peer?][transport://]user[@domain][:secret[:authuser]]@host[:port][/extension][~expiry]

OlivierVanDyck
12/09/2016, 15h59
Je suis d’accord, cela est étrange que ça ne fonctionne pas avec TCP.

Comme suggérer plus tôt je vais observer le trafic des paquets pour essayer de comprendre de ce qui se passe.

Par contre je n’ai pas compris ce que vous me suggérez au niveau de la ligne register.
D’après la syntax, il y a beaucoup d’élément dans votre exemple que ma ligne actuelle.

Pourriez-vous m’expliquer ces différences ?

Ma ligne actuelle est register => 0032xxxxxxxx:xxxxxxxx@siptrunk.ovh.be

jean
12/09/2016, 16h09
je propose de mettre:
register => 0032xxxxxxxx:xxxxxxxx@siptrunk.ovh.be~120

Ainsi, ton asterisk renverra un register toutes les 120 secondes, au lieu du défaut (souvent 1h), et donc, si il y a perte de l'échange avec ovh, toutes les 2 minutes il sera rétabli

OlivierVanDyck
12/09/2016, 16h13
Merci pour votre aide et vos explications.
Je vais modifier cette ligne.

OlivierVanDyck
13/09/2016, 13h56
Conclusion :

In fine j’ai tout simplement remis le protocole UDP par défaut sur Astérisk, mappé le port dans le router et le tout fonctionne.

Mon enregistrement chez OVH se fait automatiquement toutes les 30 minutes (defaultexpiry=1800).

Merci pour votre aide.

Avec mes meilleures salutations,