2017-01-05 2 views
1

Ich habe folgende zwei DNS-SRV-Einträge hinzugefügt (mit TTL 10 Sekunden) für den Test:DNS SRV Failover funktioniert nicht in Sternchen

_sip._udp.example.com. SRV 1 0 5060 sip101.example.com. 
_sip._udp.example.com. SRV 2 0 5060 sip102.example.com. 

Sowohl sip101.example.com und sip102.example.com gelten A Aufzeichnungen von zwei Asterisk-Servern (Version 11.17.1).

Ich sende Anruf von einem anderen Asterisk-Server (Version 11.17.1) mit IP-XXXX mit folgenden Dialplan:

[default] 
exten => 0900,1,NoOP(This is test call for checking DNS SRV example.com) 
exten => 0900,n,Dial(SIP/[email protected]) 

Nach der Konfiguration der Erweiterung ist, die Anrufe sendet:

[XXXX] 
type=friend 
username=XXXX 
secret=temp 
host=dynamic 
context=default 
canreinvite=no 
srvlookup=yes 
qualify=yes 
nat=force_rport,comedia 

Zum Testen des Failover von DNS SRV habe ich Asterisk auf sip101.example.com deaktiviert, welches auf dem ersten Priroty ist; Nach 10 Sekunden auf sip101.example.com sollte es also keine Failover zu sip102.example.com geben.

Aber nicht auf die zweite Priorität Asterisk Failover aber mal aus, wie folgend:

== Using SIP RTP CoS mark 5 
-- Executing [[email protected]:1] NoOp("SIP/XXXX-0000014e", "This is test call for checking DNS SRV example.com") in new stack 
-- Executing [[email protected]:2] Dial("SIP/XXXX-0000014e", "SIP/[email protected]") in new stack 
== Using SIP RTP CoS mark 5 
-- Called SIP/[email protected] 
-- SIP/example.com-0000014f is circuit-busy 
== Everyone is busy/congested at this time (1:0/1/0) 
-- Auto fallthrough, channel 'SIP/XXXX-0000014e' status is 'CONGESTION' 
-- Executing [[email protected]:1] Hangup("SIP/XXXX-0000014e", "") in new stack 
== Spawn extension (default, h, 1) exited non-zero on 'SIP/XXXX-0000014e' 
[Jan 3 13:48:43] WARNING[3168]: chan_sip.c:4024 retrans_pkt: Retransmission timeout reached on transmission [email protected]:5060 for seqno 102 (Critical Request) -- See https://wiki.asterisk.org/wiki/display/AST/SIP+Retransmissions 
Packet timed out after 32000ms with no response 

mir jemand mit diesem Problem helfen?

Antwort

1

Einig googeln (1, 2, 3, 4) schlägt vor, dass in älteren Versionen:

Asterisk liest nur den ersten SRV Eintrag ohne mit Prioritäten und Gewichten zu belästigen.

Sie können also versuchen, es mit Asterisk 13 und PJSIP zu versuchen.

+0

Dank Konstantin :) Es erklärt deutlich die Situation. –

0

Asterisk wird nicht zweite Priorität gehen. Es macht nur einen Versuch. Wenn Sie einen zweiten Versuch (zu einer anderen IP-Adresse) benötigen, müssen Sie einen zweiten Anruf im Wählplan tätigen.

Wenn Sie den zweiten chan_sip-Aufruf verwenden, wird auch der erste SRV-Datensatz aufgelöst. Mit pjsip kann es wechseln (aber nicht gewährt).

Wenn Sie einen garantierten Switch benötigen, verwenden Sie verschiedene DNS-Namen oder ips und führen Sie einen Failover im Dialplan durch (siehe extensions.conf.sample zum Beispiel).

0

Danke Jungs für das Senden von mir Antworten.

Es ist jetzt klar, dass Asterisk 11.17.2 keine Kapazität hat, mehrere DNS SRV-Einträge aufzulösen.

Für weitere Tests, ich schalte den Client (Traffic Generator), der Anrufe an DNS SRV asterisk von Asterisk 11.17 zu Freeswitch 1.7 sendet und es funktioniert perfekt.

Der Freeswitch hat erfolgreich DNS-SRV-/Failover-Aufrufe gesendet, z. B. example.com. Aber immer noch ein Problem, Freeswitch sendet Anrufe nach der Wiederherstellung nie zum primären Knoten zurück. Es ist ein Freeswitch-Neustart erforderlich, um den primären Knoten zum Senden von Anrufen erneut auszuwählen.

Verwandte Themen