PDA

Voir la version complète : Trunk SIP, Appels Sortants : Son dans un seul Sens



xre
15/12/2010, 20h14
Bonjour,

Asterisk 1.6.2.11. Trunk SIP chez Altitude Telecom comme fournisseur.

Appel sortant : OK pour le signal, mais son que dans un seul sens. J'entends le correspondant distant, mais lui ne m'entend pas.

L'archi réseau n'a rien de bien transcendant :


[Téléphone IP] ---- [Asterisk] ---- [Routeur Fournisseur VoIP] ---- [PABX Fournisseur VoIP]
192.168.4.107 192.168.4.1
37.1.1.1 37.1.1.2
212.39.140.250


pabx*CLI> sip show peers
altitude-output 212.39.140.250 N 5060 OK (13 ms)
toto/toto 192.168.4.107 D N 5060 OK (9 ms)

J'ai donc activé le NAT comme on peut le voir.

Dans mon sip.conf :


[general]
externip=37.1.1.1
localnet=192.168.4.0/255.255.255.0
nat=yes

Un "sip set debug peer toto" ne m'apporte rien d'exploitable... Mais je pense que je m'y prends mal.

Pouvez-vous svp m'orienter dans la bonne direction ?

Merci par avance.

hb22
15/12/2010, 22h32
Mon avis :

[Téléphone IP] -- [Asterisk] --- [Routeur VoIP NAT] ---[PABX Fournisseur VoIP]
192.168.4.107---192.168.4.11--LAN/192.168.4.254----212.39.140.250
-------------------------------WAN/37.1.1.1

[general]
externip=37.1.1.1
localnet=192.168.4.0/255.255.255.0
nat=yes

xre
15/12/2010, 23h10
Salut et merci pour ton retour. Malheureusement, le schéma réseau ne peut pas évoluer.

En y réfléchissant à nouveau, il ne peut à mon avis pas s'agir d'un problème de NAT, puisqu'aucun des équipements composant l'architecture ne peut faire de translation. Il n'y a pas de firewall sur mon "dessin", et pas d'iptables sur le PABX.

Le PABX possède deux interfaces réseau comme expliqué sur le schéma. Je lui ai donné une route statique, destination 212.39.140.250, next-hop 37.1.1.2, et ça fonctionne.

Le 37.1.1.1 et 37.1.1.2 ne sont qu'un réseau d'interconnexion, de quatre IP. Il est imposé par le fournisseur. Ce réseau est certes en 37.x, mais il n'est pas routable sur internet. Pratique étrange du fournisseur donc, mais passons.

Donc en fait, ici, on ne fait que du routage IP ! Pas de translation nulle part ! Je pense que ma configuration NAT au niveau d'Asterisk ne sert à rien.

Est-ce une bonne réflexion ?

Quel pourrait alors être le problème ?

Je sais pas pourquoi mais j'imagine que c'est le setting externip la clef ici...

J'ai fait tourner des tcpdump mais alors comme le debug SIP, bon courage pour exploiter les résultats... On verra demain.

Merci par avance !

/edit Après avoir relu une nouvelle fois ta réponse, j'insiste bien sur l'absence de NAT.

Donc "Routeur VoIP NAT" c'est non. Routeur tout court.

Je ne suis peut-être pas forcément hyper clair dans la discussion... N'hésitez pas à me le dire !

jean
16/12/2010, 02h50
interessant.... surtout le "ca ressemble a du nat, mais c'en n'est pas !"

quelques idees en vrac pour comprendre ce qui se passe

- peux tu soit installer wireshark sur le serveur asterisk et regarder les trames sip, et notamment aller decoder les @ ip et ports dans les invite - ou faire un ngrep -d eth0 -O fichier.pcap port 5060 et copier le .pcap vers un pc ouindoze ou wireshark est installé

- faire un core show channels verbose et verifier que les deux comm sont bien bridgées

- essayer de mettre un mixmonitor dans le dialplan pour voir si le son arrive bien au serveur

- de mettre un softphone sur l'asterisk, et voir si le son arrive bien

- de connecter un softphone depuis un pc sur le compte fournisseur, pour etre sur que ca marche

- essayer avec NAT=no - puisque tu n'en as pas


voila quelques idées en vrac, pour t'aider à cerner ce qui va pas !

J.

ps: merci d'avoir cherché avant de poster, on sent que tu as reflechi - ca fait plaisir

hb22
16/12/2010, 03h43
Bizarre cette architecture.
Tu n'as pas d'adresse publique ?

[general]
externip=adresse_publique
localnet=192.168.4.0/255.255.255.0
localnet=37.1.1.0/255.255.255.252
nat=yes

ffossard
16/12/2010, 09h05
Pas si bizarre que ça, le fournisseur voip est l'opérateur, c'est même plutôt idéal !

Je ne vois pas de NAT non plus là-dedans, par contre les 2 ip sur le serveur Asterisk, c'est certainement ça qui pose problème, on a des ip en 192.168.4. dans les paquets SIP emis par les téléphones (et peut-être aussi asterisk malgré sa deuxième ip), qui viennent d'une ip en 37.1.1., on retrouve la problématique du nat.
Le fournisseur ne peut pas non plus mettre une ip en 192.168.4.x/24 sur le routeur du client, ça serait ingérable dans les tables de routage (si un autre client a un réseau en 192.168.4.0/24, ils font comment ?), ou alors il faudrait retomber sur un routeur NAT classique.

Un essai à faire: monte un petit asterisk avec un seul téléphone, tout ça en 37.1.1.x (serveur et téléphone), la même config pour le provider, et fait un essai.

Une question aussi, pourquoi impossible de faire évoluer le réseau, qu'est-ce qui bloque à côté de ça ?

xre
16/12/2010, 12h09
Merci pour votre aide.

- vérifier le bridiging : OK. C'est bon.
- "nat=no" : testé, ça change rien.

Voici deux tcpdump effectués sur le PABX, un sur l'interface locale (192.168.4) et un sur l'interface d'interco (37.1.1).

83
84

Toute la séquence est couverte : appel, sonnerie, décroche, raccroche.

J'ai du mal à voir ce qui cloche... Par contre on peut retrouver quelques codes de retour étranges, 401 ou bien 501. Cela peut-il être lié ?

Merci.

jean
16/12/2010, 14h52
le 501, c'est normal, c'est la réponse à un message option (probablement parce que qualify=yes)

effectivement, rien de choquant à priori


ce qu'il te faut, c'est déterminer d'abord si le son arrive sur ton serveur asterisk. il faut soit connecter un softphone sur le réseau 37, soit essayer de capturer les trames rtp sur le serveur, ou enregistrer sur le serveur (mixmonitor).

egalement, au niveau de ton archi, pourquoi ne mets tu pas un routeur nat (j'suis sérieux !). en effet, tu fais faire deux fonctions à ton serveur: voip pbx et routage. si tu déporte la fonction routage, tu te retrouves dans un schéma classique.

tjs en réflechissant au fur & à mesure que je tape, un test de softphone sur le réseau 192, avec les params directs du compte voip de ton fournisseur permettra de voir si le routage est bon

xre
16/12/2010, 15h19
Pas mieux avec un softphone.

J'ai l'impression qu'il y a un problème de routage entre 192.168.4.107 et 212.39.140.250. Comme on ne fait pas de NAT, comment est-ce que la réponse peut me revenir ?

Le téléphone a pour passerelle par défaut 192.168.4.1. Mais quid de la réponse ?

/edit Quelques infos supplémentaires :


pabx*CLI> sip show channels
Peer User/ANR Call ID Format Hold Last Message Expiry
192.168.4.107 toto 7507cfee-ade0d5 0x100004 (ulaw| No Rx: ACK
212.39.140.250 0601020304 0f25884a715eee0 0x4 (ulaw) No Tx: ACK


pabx*CLI> sip show channel 7507cfee-ade0d5

* SIP Call
Curr. trans. direction: Incoming
Call-ID: 7507cfee-ade0d541@192.168.4.107
Owner channel ID: SIP/toto-0000a523
Our Codec Capability: 209715199
Non-Codec Capability (DTMF): 1
Their Codec Capability: 1051917
Joint Codec Capability: 1051917
Format: 0x100004 (ulaw|h263p)
T.38 support Yes
Video support No
MaxCallBR: 384 kbps
Theoretical Address: 192.168.4.107:5060
Received Address: 192.168.4.107:5060
SIP Transfer mode: open
NAT Support: RFC3581
Audio IP: 192.168.4.1 (local)
Our Tag: as2fca1e7c
Their Tag: ad75d80ae3cf0bd5o0
SIP User agent: Linksys/SPA942-5.2.8
Username: toto
Peername: toto
Original uri: sip:toto@192.168.4.107:5060
Caller-ID: 133
Need Destroy: No
Last Message: Rx: ACK
Promiscuous Redir: No
Route: sip:toto@192.168.4.107:5060
DTMF Mode: rfc2833
SIP Options: replaces replace
Session-Timer: Inactive


* SIP Call
Curr. trans. direction: Outgoing
Call-ID: 0f25884a715eee0e6cbce51116f92936@37.1.1.1
Owner channel ID: SIP/altitude-output-0000a524
Our Codec Capability: 4
Non-Codec Capability (DTMF): 1
Their Codec Capability: 4
Joint Codec Capability: 4
Format: 0x4 (ulaw)
T.38 support Yes
Video support No
MaxCallBR: 384 kbps
Theoretical Address: 212.39.140.250:5060
Received Address: 212.39.140.250:5060
SIP Transfer mode: open
NAT Support: RFC3581
Audio IP: 37.1.1.1 (local)
Our Tag: as13cb5fe4
Their Tag: 00-07211-091afcfc-6699cf882
SIP User agent:
Username: 0601020304
Peername: altitude-output
Original uri: sip:212.39.140.250:5060
Need Destroy: No
Last Message: Tx: ACK
Promiscuous Redir: No
Route: sip:212.39.140.250:5060
DTMF Mode: rfc2833
SIP Options: (none)
Session-Timer: Inactive

Le problème : "toto" peut entendre la personne extérieure, mais la personne extérieure n'entend pas "toto".

C'est normal que "Audio IP" soit l'IP du PABX dans les deux cas ?

Merci beaucoup.

jean
16/12/2010, 15h41
si pbm de softphone sur le réseau 192 avec les param de ton provider sip, c'est donc du routage a mon sens et asterisk est inocent pour le coup !

just in case, tu peux faire un test d'écho entre ton client en 192 et ton asterisk, avec l'appli echo()

les chemins se font entre les deux machines (192 et sip provider) par du routage ip classique....

http://www.amazon.fr/D-Link-Ethernet-Broadband-Router-DIR-100/dp/B000M2EI1I/ref=sr_1_2?ie=UTF8&qid=1292507573&sr=8-2 ou un truc approchant

ne serait ce pas la solution ?

xre
16/12/2010, 15h47
Je me suis mal exprimé.

J'ai enregistré mon softphone auprès de notre Asterisk et j'ai tenté de passer un appel. Même résultat qu'avec un téléphone physique.

Il ne va pas m'être possible de tester avec les paramètres du fournisseur (en mettant mon softphone en 37.x) puisqu'il n'y a pas d'enregistrement auprès du fournisseur. Il n'est donc pas possible d'enlever notre Asterisk de la boucle.

Est-ce que le sip show channel sur le flux sortant ne nous aide pas ?

ffossard
16/12/2010, 15h47
Pas mieux avec un softphone.

J'ai l'impression qu'il y a un problème de routage entre 192.168.4.107 et 212.39.140.250. Comme on ne fait pas de NAT, comment est-ce que la réponse peut me revenir ?

Le téléphone a pour passerelle par défaut 192.168.4.1. Mais quid de la réponse ?


C'est ce que je pense, le réseau 192.168.4.0 est inconnu du fournisseur, il est possible que la réponse ne revienne pas.
Y'a-t-il du "192.168.4.x" dans des paquets envoyés par Asterisk au fournisseur voip ?

ffossard
16/12/2010, 15h51
Je me suis mal exprimé.

J'ai enregistré mon softphone auprès de notre Asterisk et j'ai tenté de passer un appel. Même résultat qu'avec un téléphone physique.

Il ne va pas m'être possible de tester avec les paramètres du fournisseur (en mettant mon softphone en 37.x) puisqu'il n'y a pas d'enregistrement auprès du fournisseur. Il n'est donc pas possible d'enlever notre Asterisk de la boucle.

Est-ce que le sip show channel sur le flux sortant ne nous aide pas ?

Et en testant avec un autre asterisk (même dans une vm) en 37.1.1.x et un téléphone en 37.1.1.x lui aussi ?

jean
16/12/2010, 16h05
si tu connecte le pc avec softphone à la place de l'asterisk, avec ses parametres réseaux, ou si tu lance un softphone sur l'asterisk meme (ekiga, etc... ?)

xre
16/12/2010, 16h51
Aucune trace de 192.168.4 si je fais un tcpdump sur l'interface en 37. Les paquets seraient donc droppés quelque part avant..?

J'ai demandé au fournisseur de me communiquer les éléments de routage qu'ils ont chez eux, et éventuellement d'ajouter une route statique à destination du 192.168.4.

Le PABX est en ip_forward donc si de leur côté ça route bien aussi (on va le savoir), ce sera déjà ça de réglé.

J'attends leur réponse...

Le réseau 37 est un /30, je ne peux donc y mettre qu'une seule machine (en plus de leur routeur). Il n'est pas donc pas possible de court-circuiter l'Asterisk, puisqu'il n'y a pas de Register chez eux.

S'il y avait du Register, je pourrais effectivement mettre un softphone à la place de l'Asterisk.

Non ?

ffossard
16/12/2010, 17h00
Si c'est un /30, ils excluent la possibilité d'adopter leur adressage, qu'est-ce qu'ils conseillent de faire alors :confused:

xre
16/12/2010, 18h35
Le fournisseur a ajouté la route statique.

Aucune différence...

Dans quelle direction regarder ? :(

/edit En fait ils ont dû se foirer sur la route... Les hosts du réseau 192.168.4 ne peuvent toujours pas contacter le proxy SIP.

On verra demain...