Bonsoir,
Je rencontre un problème curieux, qui est la détection erronée de l'IP source lorsque la connexion RTP s’établit.
Sur mon PC (sous Linux) j'ai ajouté un VLAN, auquel je connecte linphone. Sur ce même VLAN se trouve un grandstream GXP2000. Le serveur asterisk se trouve sur un site distant relié par VPN (wireguard), et pour qu'ils soient sur le même sous-réseau (WG étant au niveau IP), j'ai ajouté un VXLAN pensant que ça réglerait ce problème, mais il n'en est rien.
Ce qu'il se passe : lors de l’établissement de la session RTP, asterisk détecte l'IP courante du PC au lieu de celle du VLAN, ce qui fait que selon le sens de l'appel, soit je n'ai pas de son, soit il y a échec de réponse et la communication coupe. On le voit d'ailleurs très bien avec wireshark, le flux RTP passe par l'interface normale et non le VLAN.
Jusqu’à présent, la seule solution viable a été de laisser le NAT actif et donc laisser les flux passer par asterisk (mais dans le cas d'une config routée car si je l'applique lorsque tout est sur le même sous-réseau ça plante également...)
Si quelqu'un a une idée.
Merci d'avance.
Code:
0x7f494806e470 -- Strict RTP learning after remote address set to: 192.168.3.10:5036
-- Executing [304@internal:1] Dial("SIP/310-0000007d", "SIP/304,20,kK") in new stack
== Using SIP RTP TOS bits 184
== Using SIP RTP TOS bits 184 in TCLASS field.
== Using SIP RTP CoS mark 5
-- Called SIP/304
== Extension Changed 304[BLF_Group_1] new state Ringing for Notify User GXP L1
-- SIP/304-0000007e is ringing
== Extension Changed 304[BLF_Group_1] new state Ringing for Notify User GXP L1
> 0x7f494401f640 -- Strict RTP learning after remote address set to: 192.168.1.11:7078
== Extension Changed 304[BLF_Group_1] new state InUse for Notify User GXP L1
-- SIP/304-0000007e answered SIP/310-0000007d
-- Channel SIP/304-0000007e joined 'simple_bridge' basic-bridge <f3251fff-2aa7-4541-9781-c126afd2e033>
-- Channel SIP/310-0000007d joined 'simple_bridge' basic-bridge <f3251fff-2aa7-4541-9781-c126afd2e033>
> Bridge f3251fff-2aa7-4541-9781-c126afd2e033: switching from simple_bridge technology to native_rtp
> Remotely bridged 'SIP/310-0000007d' and 'SIP/304-0000007e' - media will flow directly between them
> 0x7f494401f640 -- Strict RTP qualifying stream type: audio
> 0x7f494401f640 -- Strict RTP switching source address to 192.168.3.11:7078
> 0x7f494806e470 -- Strict RTP switching to RTP target address 192.168.3.10:5036 as source
[Sep 10 02:52:03] WARNING[756]: chan_sip.c:4119 retrans_pkt: Retransmission timeout reached on transmission 58bd48c8646560ed3978507c70d88845@192.168.3.254:5260 for seqno 103 (Critical Request) -- See https://wiki.asterisk.org/wiki/display/AST/SIP+Retransmissions
Packet timed out after 8960ms with no response
[Sep 10 02:52:03] WARNING[756]: chan_sip.c:4143 retrans_pkt: Hanging up call 58bd48c8646560ed3978507c70d88845@192.168.3.254:5260 - no reply to our critical packet (see https://wiki.asterisk.org/wiki/display/AST/SIP+Retransmissions).
-- Channel SIP/304-0000007e left 'native_rtp' basic-bridge <f3251fff-2aa7-4541-9781-c126afd2e033>
-- Channel SIP/310-0000007d left 'native_rtp' basic-bridge <f3251fff-2aa7-4541-9781-c126afd2e033>
== Spawn extension (internal, 304, 1) exited non-zero on 'SIP/310-0000007d'
192.168.1.11 est l'ip courante
192.168.3.11 est l'ip du VLAN
192.168.3.10 est l'ip du GXP
On dirait qu'il veut reswitcher sur l'adresse du VLAN au dernier moment, mais comme 192.168.1.11 n'est pas joignable, il abandonne.