PDA

Voir la version complète : Problème d'enregistrement tél. SIP sur un serveur asterisk distant (sous NAT)



matthewbe
12/09/2012, 19h53
Bonjour,

Je tente d'enrgistrer un téléphone SIP (softphone Zoiper) sur un serveur Asterisk distant.
J'ai lu un tas d'articles concernant les configurations à mettre, mais ça ne marche toujours pas pour moi; j'ai perdu espoir... J'apprécierais beaucoup un peu d'aide!!

J'ai ajouté le code ci-dessous dans le fichier sip.conf sous la section [general]:

externip=123.123.123.123 ; j'ai bien sûr mis la bonne adresse ip; j'ai aussi essayé externaddr
localnet=192.168.1.0/255.255.255.0
nat=yes
qualify=yes

Dans le fichier rtp.conf:

rtpstart=10002
rtpend=19999

Dans la configuration de mon routeur:

Firewall
Minimum Security
Inbound Policy: Accept.
Outbound Policy: Accept.
----
DMZ Host IP Address: 192.168.1.11 (mon adresse locale)
----
Port Triggering
Protocol Outgoing Trigger Ports Incoming Ports to Open
Asterisk(1) UDP 5060 -> 5060 UDP 5060 -> 5060
Asterisk(2) UDP 10001-20000 -> 10001-20000 UDP 10001-20000 -> 10001-20000
Asterisk(3) UDP 4569 -> 4569 UDP 4569 -> 4569
----
LAN servers
Name | Activated | Protocol | Public start port | Public end port | LAN start port | Local IP Address
Asterisk(1) Yes UDP 5060 5060 5060 192.168.1.11
Asterisk(2) Yes UDP 10001 20000 10001 192.168.1.11
Asterisk(3) Yes UDP 4569 4569 4569 192.168.1.11
----
Telephone (un service Belgacom, pas sûr que je devais y toucher mais j'ai mis l'adresse de mon serveur asterisk pour essayer)
Gateway configuration
Interface : eth1.20
SIP domain (leave blank to use default) : 192.168.1.11
Port : 5060
Transport : UDP
Proxy Server
Proxy address : 192.168.1.11
Port : 5060
Transport : UDP
Registrar / SIP domain
Registrar address : 192.168.1.11
Port : 5060
Transport : UDP

PS:
J'ai la version 10.7.1 d'asterisk, le serveur tourne sur Ubuntu 12.04.1 LTS
Ubuntu n'a aps de firewall installé, j'arrive à accéder à la machine via Teamviewer ou Vino (desktop sharing), donc la machine est définitivement accessible.
Mon fournisseur d'accès Internet est Belgacom (belge)
J'arrive à enregistrer des téléphone dans le réseau local

Ici se trouve le fichier sip.conf complet:

[general]
context=unauthenticated
allowguest=no
srvlookup=yes
udpbindaddr=0.0.0.0
tcpenable=no
externaddr=109.126.133.64
; fromdomain=my-host.no-ip.org
; externhost=my-host.no-ip.org
; externrefresh=120
localnet=192.168.1.0/255.255.255.0
nat=yes
qualify=yes

[office-phone](!)
type=friend
context=LocalSets
host=dynamic
secret=mypwd
dtmfmode=auto
disallow=all
allow=ulaw
allow=alaw
nat=yes

[laptop-asus-f3sc](office-phone)

jean
12/09/2012, 21h03
peux tu clarifier qu'est ce qui ne marche pas, précisémment ?

matthewbe
12/09/2012, 22h34
peux tu clarifier qu'est ce qui ne marche pas, précisémment ?

Le problème c'est que je n'arrive pas à enregistrer le téléphone dans le serveur Asterisk (c'est marqué "Not registered" dans Zoiper). Dans le réseau local les téléphones s'enregistrent bien par contre.

jean
12/09/2012, 22h48
en premier lieu, malgré le fait que ca marche pas, tu as totalement ouvert les acces, et tu es une super cible pour te faire pirater. une fois que cela marche, recherche sur ce forum comment sécuriser asterisk

pour savoir ce qui se passe, je te conseille de faire un ngrep sur le serveur ubuntu (installer le paquet, puis ngrep -d eth0 port 5060 si interface eth0)

si tu vois des paquets arriver de ton tel distant, c'est que c'est sur le serveur - sinon, c'est que le poste distant est soit mal configuré, soit le firewall/nat qui zappe quelque chose

matthewbe
13/09/2012, 15h05
pour savoir ce qui se passe, je te conseille de faire un ngrep sur le serveur ubuntu (installer le paquet, puis ngrep -d eth0 port 5060 si interface eth0)
si tu vois des paquets arriver de ton tel distant, c'est que c'est sur le serveur - sinon, c'est que le poste distant est soit mal configuré, soit le firewall/nat qui zappe quelque chose

Je ne vois aucun paquet arrivé quand j'essaye d'enregistrer le téléphone. Au niveau du routeur j'ai vraiment tout ouvert tout ce qui est possible... As-tu une idée de ce que je peux encore essayer?

jean
13/09/2012, 15h12
bon, déjà, c'est pas ton asterisk...

- as tu un moyen de voir les logs au niveau routeur ?
- peux tu essayer de faire du HTTP (essaie un service httpd start), de te connecter en local depuis un autre poste, puis depuis ton site distant
- es tu sur de l'@ ip PUBLIQUE de ton serveur - tu serais pas sur une ip dynamique qui aurai changé ?

matthewbe
13/09/2012, 21h09
C'était une bonne idée de tester le service httpd! J'ai créé un service httpd sur le port 8085 et je me suis aperçu que ce port est déjà utilisé par Belgacom, tout comme le port 5060!

Donc j'ai changé le port par défaut 5060 par 5064 et ça marche, j'arrive à enregistrer le téléphone.

Maintenant le problème suivant c'est que je n'arrive pas à envoyer qqch via le dialpad de Zoiper, c-à-d que mon système IVR demande au user la langue qu'il veut utiliser (pour le français, tapez 1, pour le néerlandais, tapez 2, etc.)

En local, tout fonctionne bien. Mais par internet, si je tape 1, c'est ignoré. J'utilise un simple Read()

J'ai vérifié les logs avec "asterisk -rvvvvv", mais rien d'intéressant:

...
-- <SIP/laptop-mett-asus-f3sc-00000005> Playing 'select-language.slin' (language 'en')
-- User disconnected

jean
13/09/2012, 21h17
je suis heureux que cela marche ! N'oubliez de regarder sur ce forum comment sécuriser ton serveur. Mes machines sont scannées 5 à 10 fois par jour par des robots

pour le dtmf, regarde les params de ton softphone et lesip.conf

;dtmfmode = rfc2833 ; Set default dtmfmode for sending DTMF. Default: rfc2833
; Other options:
; info : SIP INFO messages (application/dtmf-relay)
; shortinfo : SIP INFO messages (application/dtmf)
; inband : Inband audio (requires 64 kbit codec -alaw, ulaw)
; auto : Use rfc2833 if offered, inband otherwise