SIP Peering Deutsche Telefon - how to

Hallo,

bei uns ist eine FritzBox 7390 als vDSL Router im Einsatz, mit einer festen IP von unserem ISP.
Unsere MDC (7.07.02) läuft auf einem ESXi

Wir haben bei DTS eine SIP Trunk mit einem 100er Block gebucht, wir haben bei DTS eine feste IP, Standardport 5060.

Grundvoraussetzung um bei DTS einen Trunk zu bekommen ist, dass wir eine feste IP Adresse haben.
Diese haben wir DTS mitgeteilt und wurde dort entsprechend administriert.
Weiterhin haben wir DTS gebeten, den Port von 5060 auf 5070 zu ändern. War absolut kein Thema, ging schnell und anstandslos.
Warum?
Weil, wie wir ja alle wissen, alle FB’s, die irgendwie selbst was mit Telefonie zu tun haben,
den 5060er für sich selbst behalten und nicht mehr hergeben. Sprich er lässt sich nicht weiterleiten
bzw. forwarden.
siehe: http://service.avm.de/support/de/SKB/FRITZ-Box-7390/777:Fehlermeldung-Die-Portfreigabe-kann-nicht-erstellt-oder-aktiviert-werden

Also noch schnell die entsprechende Portfreigabe an der FB


Soweitsogut, *fast nix besonderes…

Kommen wir nun zur MD.
Wir legen über den Commander das Amt an, konfigurieren den Account und natürlich die ein/ausgeh Wahlregeln.
Ich mache jetzt mal mit Bildern weiter und spare mit die Tipperei.

Basis – ganz normal


Account – hier gibt es eine Besonderheit. Um den Account einzurichten braucht die MD bzgl. der *Registrierung
derzeit noch Bentutzernamen und PW. Bleiben die Felder leer, verweigert die MD das Speichern mit entsprechender
Meldung - haben wir aber nicht, da es bei DTS keine Registrierung gibt.
Mit ungeahnter Kreativität denken wir uns einfach was aus und tragen es einfach ein.


Regel eingehend


Regel ausgehend


Speichern -> Anwenden -> fast fertig….

Von DTS erhielten wir noch folgende Info:
*
Der Peer sieht beispielhaft wie folgt aus:

[sip_trunk]
host=uu.vv.ww.xx
context=trunk_context
type=peer
dtmfmode=rfc2833
canredirect=no
canreinvite=no
nat=no
disallow=all
allow=alaw
insecure=invite
t38pt_udptl=yes
*

Wir begeben uns jetzt via ssh auf die Dateiebene der MD und finden im Verzeichnis /etc/asterisk die Datei mdc_sip_trunk.conf.
Da schauen wir auch gleich mal mit unserem Lieblingseditor hinein und sehen folgendes….


Der Inhalt ist so, wie er vom Commander geschrieben wurde. OK!
Das was mit den roten Pfeilen markiert ist, behalten wir, alles andere fliegt raus. – mehr oder weniger -
Jetzt tragen wir zusätzlich das ein, was wir von DTS wissen. Das sieht dann so aus….


Jetzt starten wir die CLI und geben dort ein sip reload ein….

et voilà

…funktionierende ein- und ausgehende Telefonie.

Bei dieser Vorgehensweise ist unbedingt zu beachten, dass die mdc_sip_trunk.conf jedes mal, egal was wir im Commander der MD tun, beim Speichern und ANWENDEN neu geschrieben wird,
mit dem Inhalt wir er im Commander steht. Das lässt sich aber relativ einfach über die Systemeinstellungen der MD verhindern.
sys.asterisk.configure.mdc_sip_trunk –> 0

Der ein oder andere wird jetzt mit dem Finger auf mich zeigen und sagen…
…Dasda …-… brauchen wir hier nicht, weil es steht ja schon dort…
…Das, was wir brauchen, können wir im Account auch in die Optionen eintragen…
usw…

JA! Ihr habt alle recht. Wenn es funktioniert, OK!

Bei uns funktionierte es nur so, wie oben beschrieben!

Viel Erfolg beim Nachmachen….** cheerio **

cu
Christoph

…warten

Attachments



…warten

Hallo,

nachdem die ein-/ausgehende Telefonie jetzt endlich funktionierte, gab es auch schon gleich die nächste Herausforderung, die da war…

…egal von von welcher Nebenstelle nach außen telefoniert wird, es soll immer unsere alte, bekannte Rufnummer beim Angerufenen angezeigt werden.
Diese Rufnummer ist natürlich nicht Bestandteil unseres 100er Blocks bei DTS.

Also frisch ans Werk - MD Commander auf den Bildschirm - kurzerhand die entsprechende(n) ausgehende(n) Regel(n) erstellt und - Speichern - Anwenden…

hmm…? Keine ein/ausgehende Telefonie mehr…???

Klar, die …trunk.conf hats zerbröselt! - Nö! Die ist schreibgeschützt
Na dann die Regel(n) falsch. Nö! Nach einem fast halben Jahr intensivmobydick hab ich wenigsten die im Griff!!!

Im Commander alles wieder rückgängig gemacht… funktioniert wieder…!?!

Nachfrage bei DTS - das muss funktionieren, weil siehe hier](http://community.pascom.net/showthread.php?1204-CIDNummer-P-Preferred-Identity).

Meine weiteren Anfragen bei DTS per eMail und Telefon bzgl. Konfig-Beispiel(e) wurden/sind bis jetzt intensiv ignoriert. Schade eigentlich…!

Nunja, nach weiterem intensivmobydick- und asteriskstudium hab ich eine Lösung gefunden, die mich persönlich nicht wirklich begeistert.
Aber wenigstens weis ich jetzt, wo der Hebel anzusetzten ist und ich weis, es funktioniert tatsächlich.

Ich habe in der mdc_extensions.conf folgendes eingefügt…


In der CLI dialplan reload nicht vergessen!!! :wink: :cool:

Mal sehn, vlt. gibt ein letztes Geheimnis bei den Rufregeln bzw. sollte die …identity über die MD- Systemeinstellungen einzustellen sein.
Werde berichten, wenn ich es rausgefingert habe. ** cheerio **

cu
Christoph

Hallo,

seit Ende Oktober kann DTS jetzt auch Benutzername und PW *JUUHuuu…

Ausprobiert haben wir es noch nicht, da wir das für jeden einzeln sip-trunk beantragen müssten.
Und so von wegen ncars - also lieber Finger weg. :slight_smile:

Den nächsten Trunk, den wir bestellen, wird aber def. mit BName und PW sein.
Ich werde berichten…

cu
Christoph

Hallo Tyrion,

hast du schon mal einen DTS Trunk mit BName und PW an der MB 7 eingerichtet?

mfg

Klaus

Hallo Klaus,

bis jetzt noch nicht.
Aktuell haben wir einen neuen Trunk mit BN und PW bestellt.
Die Zugangsdaten sind auch schon da, werde aber erst nächste Woche Montag zum Testen kommen.

cu
Christoph

Hallo Klaus,

ich konnte selbst nicht warten bis Montag… :rolleyes:

Die Konfiguration der MD ist Standard…
Unter Options brauchten wir noch ein - insecure=invite -
Dann noch passende ein/ausgehende Regeln dazu - fertig.

Auf die - CID Number ausgehend - musst Du achten! Die hat das Format +<internationale Vorwahl><nationale Nummer> !!!wichtig!!!

Viel Erfolg beim Nachmachen…

cu
Christoph

PS: so schnell und einfach hatte ich mit DTS noch nie ein/ausgehende Telefonie an der MD - ich bin gegeistert - :cool:

Hallo Christoph,

hab schon fast vermutet, dass es an der CID Einstellung noch hängt.
Jetzt frag ich mich nur, wie sollte die aussehen wenn z.B. folgende Rufnummer habe 09123/4444-0

mfg

Klaus

Hallo Christoph,

habs selbst rausgefunden. Ich musste nur die 0 am Anfang gegen +49 tauschen.

mfg

Klaus

Hallo Klaus,

Genau das ist es!

Ein/ausgehend funktioniert jetzt?

Cu
Christoph

Hallo Christoph,

im prinzip schon. Jetzt muss ich noch schauen, wie ich die Telefonie im Netzwerk Priorisiere, denn aktuell bin ich mit der Qualität nicht zufrieden.
Ich muss aber auch sagen, dass mein Internetanschluss aktuell keinen großen Upload hat.

Danke dir für deine schnelle Hilfe.

mfg

Klaus

Hallo Christoph,

hats du eine Doku, wie ich eine Firewall konfigurieren muss, um den SIP Trunk von Deutsche Telefon AG nutzen zu können?
Aktuell bekomme ich undefinierten UDP Traffic von IP’s die ich nicht kenne wenn ich einen Eingehenden Ruf bekomme.

Die Deutsche Telefon AG lässt mich leider schon eine Woche warten…

mfg

Klaus

Hallo Klaus,

jeppp, hab ich…
in Form eines Skriptes, das auf iptables basiert und in die MD integriert ist. :slight_smile:
Dazu noch ein crownjob, der das Skript jede Stunde neu startet, für den Fall, dass die MD mal rebootet…

Wenn Du einen einigermaßen intelligenten Router hast und keine !!! FritzBox !!! :mad:, ist es einfacher den Router entsprechend zu konfigurieren und dicht zu machen.

Wie das im Detail aussieht… - erst am Montag mehr, weil grade nur ein Smartphone zur Hand…

cu
Christoph

Hallo Klaus,

anbei das Skript…

AAA.AAA.AAA.AAA -> ersetzten durch die IP von DTS
BBB.BBB.BBB.BBB -> ersetzen durch die IP Deines internen Netzes.


PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
NAME=feuerwand
DESC="configuration iptables"
IPTABLES=/sbin/iptables

case "$1" in

  start)
        echo -n "Starting $DESC: $NAME"
        
        # Firewall resetten
        # -F = flush
        $IPTABLES -F
	$IPTABLES -F INPUT
	$IPTABLES -F OUTPUT


	# ungueltige Pakete droppen
	$IPTABLES -A INPUT -m state --state INVALID -j DROP
	$IPTABLES -A OUTPUT -m state --state INVALID -j DROP
	# Pakete zu bestehenden Verbindungen zulassen
	$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
	# Ping nicht zulassen
	# $IPTABLES -A INPUT -p icmp -j ACCEPT                                          # auf ping etc antworten
	$IPTABLES -A INPUT -s 127.0.0.1 				-j ACCEPT	# local
	$IPTABLES -A INPUT -s BBB.BBB.BBB.BBB/24 			-j ACCEPT	# local
	

	##################
	# $IPTABLES -A INPUT 			-p tcp --dport 443 	-j ACCEPT	# SSL von ueberall
	$IPTABLES -A INPUT 			-p tcp --dport 80 	-j ACCEPT	# HTTP von ueberall
	$IPTABLES -A INPUT 			-p tcp --dport 22 	-j ACCEPT	# SSH von ueberall
	##################
	

	##################
	##DTS   t#########
	##################
	$IPTABLES -A INPUT -s AAA.AAA.AAA.AAA	-p udp --dport 5060 	-j ACCEPT	# sip Port Deutsche Telefon
	##################
	##################
	
	# fuer ALLES andere dicht
	$IPTABLES -P INPUT DROP
	$IPTABLES -P OUTPUT ACCEPT
        
	echo "."        
        ;;

  stop)
        echo " Achtung bei Fernanmeldung!!!!"
	echo " Hiermit sperrst Du Dich selber aus!!!"
	echo " Um dies zu verhindern druecke binnen 5 Sekunden CTRL-C"
	sleep 5
	echo -n "Stopping $DESC: $NAME "
        # Clear the firewalling rules
        $IPTABLES -F
	$IPTABLES -F INPUT
	$IPTABLES -F OUTPUT
        echo "."
        ;;

  restart)
        echo -n "Restarting $DESC: $NAME"
        echo ""
	/etc/feuerwand stop
	sleep 1
	/etc/feuerwand start
        echo "."
        ;;
  
  aa)				# allen Traffic erlauben (wirklich ALLEN!!!)
	$IPTABLES -F
	$IPTABLES -F INPUT
	$IPTABLES -F OUTPUT
	$IPTABLES -A INPUT -j ACCEPT
	$IPTABLES -A OUTPUT -j ACCEPT
	;;

  nn)				# jeden Traffic verbieten (wirklich JEDEN!!!)
        echo " Achtung bei Fernanmeldung!!!!"
	echo " Hiermit sperrst Du Dich selber aus!!!"
	echo " Um dies zu verhindern druecke binnen 5 Sekunden CTRL-C"
	sleep 5
	$IPTABLES -F
	$IPTABLES -F INPUT
	$IPTABLES -F OUTPUT
	$IPTABLES -A INPUT -j DROP
	$IPTABLES -A OUTPUT -j DROP
	;;

  show)
	$IPTABLES -L
	;;  

  shownum)
	$IPTABLES -L -n
	;;  

  *)
        N=/etc/$NAME
        echo " Usage: $N {start|stop|restart|aa|nn}" >&2
        echo " Hint: aa: AllowAll; nn: NoNetwork" >&2
	echo " ------------------------------------"
	echo " Schalter   |	Erklaerung"
	echo " ------------------------------------"
	echo " help	  |	Gibt diese hilfe aus."
	echo " start	  |	Erlaubt nur ssh, smbd, http, etc...( verwende SHOW!)"
	echo " stop*	  |	Erlaubt nur ausgehenden Traffic."
	echo " restart  |	Geht erst in STOP, dann in START ueber."
	echo " aa	  |	Firewall ganz offen!!"
	echo " nn*	  |	Firewall ganz dicht!!"
	echo " show	  |	zeigt aktuelle Policies an"
	echo " shownum	  |	zeigt aktuelle Policies an (alle adressen und ports numerisch)"
       	echo " ------------------------------------"
	echo " *) Achtung bei Fernanmeldungen (ssh): Damit sperrst Du Dich aus!! Achte auf raeumliche Naehe zum Server!!"

	exit 1
        ;;
esac
exit 0

cu
Christoph