CompanyFlex Siptrunk freePBX

Chris_VOIP

Neuer User
Mitglied seit
25 Jan 2022
Beiträge
13
Punkte für Reaktionen
1
Punkte
3
Hallo zusammen,
ich habe eine freePBX Installation als Trunk habe ich einmal Sipgate Basic und einmal CompanyFlex Siptrunk von der Telekom.

Sipgate funktioniert Problemlos, Anrufe kommen rein und raus und wird auch verteilt.
Bei der Telekom sieht es anders aus, rufe kommen rein und werden je nach Durchwahl auch sortiert und es klingelt. Wenn ich aber rausrufe erhalte ich immer nur ein Freizeichen im Voip Telefon (Hardware, Software) aber die Gegenseite klingelt nicht.
Hat jemand ein Tip woran es liegen kann, ich habe schon gemerkt das die Einstellungen vom Siptrunk bei der Telekom schon etwas Speziell sind.

Grüße
Chris

Edit DM41: Formatierung als "Tabelle" entfernt...
 
Zuletzt bearbeitet von einem Moderator:
Das habe ich vorhin schon gefunden und habe das Video durchgearbeitet, dadurch habe ich es geschafft das sich freePBX anmeldet. Aber leider besteht das Problem immer noch mit dem rausrufen. In den Kommentaren haben scheinbar auch andere ähnliche Probleme.
Bin schon kräftig am Googeln aber leider bisher nichts gefunden was hilft.[/TD]

Edit DM41: Formatierung als "Tabelle" entfernt...
 
Zuletzt bearbeitet von einem Moderator:
Den Hinweis zum internationalen Rufnummernformat hast du beachtet?
Die letzten "es funktioniert" Hinweise sind vom 26.03.22, also ganz frisch. Sicher, dass du dich nicht doch irgendwo vertippt hast?
 
Den Hinweis habe ich beachtet, habe aber nicht das Clip NoScreening Skript eingebunden, werde ich nochmal machen weil ich was von P-Preferred und dann nochmal schauen. Man kann also davon ausgehen, wenn der ruf nicht vernünftig rausgeht liegt es an der ausgehenden Rufnummer? Dann hat man schon ein Hinweis für die Fehlersuchen.

Edit DM41: Formatierung als "Tabelle" entfernt...
 
Zuletzt bearbeitet von einem Moderator:
Das ist "eine" mögliche Fehlerquelle, nicht undbedingt "die" :). Ich erwähnte das nur, da der Videoersteller vor einer guten Woche noch deutlich sagt, dass es funktioniert.
Auch das P-Preferred und P-Asserted wird deutlich erwähnt.
 
Hallo Christo,
ich habe glaube ich den Fehler gefunden aber eine Lösung dazu finde ich nicht.

00004 1649413616 * ==> 217.0.28.38:5060 REGISTER sip:tel.t-online.de SIP/2.0
00005 1649413616 * <== 217.0.28.38:5060 SIP/2.0 200 OK
00006 1649413645 * <== 217.0.28.38:5060 INVITE sip:[email protected]:5060;transport=tcp;line=hnzhyfz SIP/2.0
00007 1649413645 * ==> 217.0.28.38:5060 SIP/2.0 100 Trying
00008 1649413646 * ==> 217.0.28.38:5060 SIP/2.0 183 Session Progress
00009 1649413646 * ==> 217.0.28.38:5060 SIP/2.0 183 Session Progress
00010 1649413666 * ==> 217.0.28.38:5060 SIP/2.0 200 OK
00011 1649413666 * ==> 217.0.28.38:5060 SIP/2.0 200 OK
00012 1649413667 * ==> 217.0.28.38:5060 SIP/2.0 200 OK
00013 1649413669 * ==> 217.0.28.38:5060 SIP/2.0 200 OK
00014 1649413673 * ==> 217.0.28.38:5060 SIP/2.0 200 OK
00015 1649413677 * ==> 217.0.28.38:5060 SIP/2.0 200 OK
00016 1649413681 * ==> 217.0.28.38:5060 SIP/2.0 200 OK
00017 1649413685 * ==> 217.0.28.38:5060 SIP/2.0 200 OK
00018 1649413689 * ==> 217.0.21.134:5060 INVITE sip:[email protected];user=phone SIP/2.0
00019 1649413689 * <== 217.0.21.134:5060 SIP/2.0 403 Forbidden
00020 1649413689 * ==> 217.0.21.134:5060 ACK sip:[email protected];user=phone SIP/2.0
00021 1649413689 * ==> 217.0.28.38:5060 SIP/2.0 200 OK
00022 1649413693 * ==> 217.0.28.38:5060 SIP/2.0 200 OK
Wenn ich das jetzt richtig sehe, meldet sich Asterisk erstmal vernüftig an. Es können Anrufe entgegengenommen werden und Sprache funktioniert auch.
Telefoniere ich raus wird der Anruf über einen andere IP Adresse rausgesendet. Wenn ich es verstanden habe kommt das Forbiden zustande weil an diesem Server keine Anmeldung aktiv ist. Die Anmeldung ist ja auf dem 217.0.28.38 geschehen. Als DNS ist die IP des Telekomrouters eingetragen.

Asterisk Version : 16.25.0
PJSIP Version 2.10

NAPTR sollte ja in der PJSIP funktionieren, hat jemand noch ein tip wo der es ein Problem gibt.

Chris
 
Das Problem ist relativ trivial - steht ja schon da:
Asterisk macht einen Register zu
00004 1649413616 * ==> 217.0.28.38:5060 REGISTER sip:tel.t-online.de SIP/2.0
Danach einen Invite zu
00018 1649413689 * ==> 217.0.21.134:5060 INVITE sip:[email protected];user=phone SIP/2.0
der den Bach runter geht:
00019 1649413689 * <== 217.0.21.134:5060 SIP/2.0 403 Forbidden
[Hast Du ja schon geschrieben - sorry - habe Deinen Beitrag nicht vollständig gelesen]

Der Fehler: Asterisk verwendet für den ausgehenden Call nicht den Server, an dem er sich registriert hat. Das ist aber relevant - unterstützt Asterisk aber nicht.
Das heißt: Du musst dafür sorgen, dass Asterisk grundsätzlich immer den gleichen Server nimmt. Z.B. durch Manipulation der DNS-Auflösung. Ich habe dazu auch schon einiges geschrieben hier.
 
Zuletzt bearbeitet:
Danke für deine Antwort, ich hatte im Netz gelesen das PJSIP und Asterisk das mittlerweile kann und hatte mich jetzt wegen den Logs gewundert. Hatte zwischenzeitlich mit der hosts Datei gespielt war aber auch nicht erfolgreich. Wollte jetzt nicht einen DNS Server aufsetzen. Aber darum werde ich wohl nicht kommen.
 
ich hatte im Netz gelesen das PJSIP und Asterisk das mittlerweile kann
NAPTR wird unterstützt - das hat aber nichts damit zu tun, dass sichergestellt wird, dass beliebige nach einem Register folgende Requests garantiert zur gleichen Destination geschickt werden, wenn der DNS SRV lookup mehr als einen Server zurückgibt.

Asterisk kennt keinerlei zwingende Abhängigkeit zwischen einem loszutretendem Request und der Transport-Ebene. Für einen ausgehenden Request wird der dem Trunk zugeordnete Transport verwendet und der bedient sich jeweils am erhaltenen DNS SRV record (falls vorhanden). Wenn da mehr als ein Ergebnis zurückkommt, wird normalerweise nach Priorisierung der primäre Server verwendet - solange keine Störung auftritt, "funktioniert" das zufälligerweise auch, weil aufgrund der Priorisierung eben immer der primäre Server verwendet wird.
Sobald aber mal eine Störung auftritt (weil z.B. ein Server nicht schnell genug antwortet), bedient sich der Transport für diesen Request dann dem nächsten Server aus der Liste - ohne dabei zu beachten, wohin der Register ehemals ging.

Aus Erfahrung hier tritt das Problem z.B. (Betonung liegt auf Beispiel - es gibt auch andere Szenarien!) besonders gerne beim Start von Asterisk auf, weil nicht jeder Register durchgeht - v.a. dann, wenn mehrere Nummern praktisch gleichzeitig registriert werden sollen. Das scheint die Telekom als "Angriff" zu interpretieren und blockt die 2. oder n.te Nummer ab. Wenn man an diesem Punkt keine Maßnahmen ergriffen hat, nimmt Asterisk nun den 2. Server aus der SRV Liste - der dann auch "geht". Alle weiteren Requests werden dann aber wieder zum primären Server der Liste geschickt. Das war es dann - genau, wie bei Dir passiert.
Schränkt man die SRV-Liste auf einen Server ein, kann Asterisk nicht mehr springen (sondern macht eben Retries zum gleichen Server, was ja dann auch funktioniert) und das konkrete Problem ist bereinigt.

Damit man sich dadurch kein anderes Problem einfängt, sollte man die Einschränkung der Liste dynamisch machen und zyklisch nach Veränderungen im Original scannen und den einen verwendeten Server bei Bedarf anpassen (z.B. wenn der verwendete Server aus der original-Liste verschwunden ist - oder auch, wenn Probleme im Logfile, das man evtl. überwacht, erkannt wurden). Die Anpassung verbindet man dann mit einem bewussten unRegister beim alten und reRegister beim neuen Server. Sinnvollerweise dann, wenn gerade mal kein Gespräch geführt wird. Ist etwas aufwändig und nicht gerade schön - aber funktioniert.

Ergänzung:
Bsp. für die Anwendung einer rpz-Zone in bind:

in der options section von named.conf:
Code:
        response-policy {
            zone "rpz-tonline";
        }

Nun wird eine Zone definiert in der named.conf:
Code:
zone "rpz-tonline" {
        type master;
        file "/var/named/rpz-tonline-override";
        allow-query { any; };
        allow-transfer { any; };
        allow-update { any; };
};
Dann wird ein loadfile erstellt, um die rpz zu befüllen (Achtung - kein udp enthalten):
Code:
server [IP Deines bind DNS-Servers - ohne Klammern]
zone rpz-tonline
update delete tel.t-online.de.rpz-tonline.
update delete _sips._tcp.tel.t-online.de.rpz-tonline.
update delete _sip._tcp.tel.t-online.de.rpz-tonline.
update add tel.t-online.de.rpz-tonline. 60      NAPTR   10 0 "s" "SIPS+D2T" "" _sips._tcp.tel.t-online.de.
update add tel.t-online.de.rpz-tonline. 60      NAPTR   30 0 "s" "SIP+D2T" "" _sip._tcp.tel.t-online.de.
update add _sips._tcp.tel.t-online.de.rpz-tonline.      60 SRV  10 0 5061 d-eps-110.edns.t-ipnet.de.
update add _sip._tcp.tel.t-online.de.rpz-tonline.       60 SRV  10 0 5060 d-epp-110.edns.t-ipnet.de.
send

Kommentar zu den einzelnen Zeilen des loadfiles:
1. IP-Adresse des Servers, auf dem Dein Bind läuft.
2. Name der Zone, die hier erstellt wird
3 - 5. Alle vorhandenen relevanten Einträge der Zone werden gelöscht.
6 - 9. Alle relevanten Einträge werden gesetzt.
10. Die Daten werden an den definierten Server gesendet.

Der Sendvorgang wird mit
Code:
nsupdate loadfile
ausgeführt.

In Asterisk verwendet man dann die ganz normalen Hostnames - tel.t-online.de z.B. Muss ja so sein, sonst würde SSL nicht gehen :). Kann man auch einfach über dig testen, der den eigenen DNS nutzt (gemäß Eintrag in /ect/resovl.conf - aus dem bedient sich ja auch Asterisk)

Das Script, das das loadfile erstellt, muss dann allerdings den nslookup so machen, dass es am lokalen DNS vorbei direkt den NS der telekom fragt, also z.B.
Code:
dig +noall +answer _sips._tcp.tel.t-online.de SRV @[DNS-IP vom Telekom Server]
 
Zuletzt bearbeitet:
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.