Gelöst
Asterisk pjsip.conf für tel.t-online.de hinter NAT
vor 8 Jahren
Weil ich nirgends eine funktionierende Konfiguration gefunden habe, nach Stunden probieren und recherchieren jetzt hier ein Memorium.
Der Asterisk läuft auf der IP 10.0.0.2 hinter einer Fritz!Box an einem AllIP Magenta-Anschluss.
Auf der Fritz!Box folgende Portfreigaben anlegen:
5061/udp -> 10.0.0.2:5061
30000-30099/udp -> 10.0.0.2:30000
5061 wird ersatzweise verwendet, weil auf 5060 unumgänglich auf Home-Routern schon ein eigener Sipproxy lauscht.
Diesen wollen wir nicht haben, können den Schrott aber leider auch nicht abschalten.
Die pjsip.conf für Asterisk mit der Telekom incl. outbound_proxy:
[global] type = global language = de endpoint_identifier_order = ip,username [transport-udp] type = transport protocol = udp bind = 10.0.0.2:5061 local_net = 10.0.0.0/16 domain = my.dyndns.org external_media_address = $ExterneIP external_signaling_address = $ExterneIP external_signaling_port = 5061 [telekom_9931234567_reg] type = registration transport = transport-udp outbound_auth = telekom_9931234567_auth outbound_proxy = sip:+499931234567@tel.t-online.de:5060\;lr server_uri = sip:tel.t-online.de:5060 client_uri = sip:+499931234567@tel.t-online.de:5060 contact_user = 09931234567 retry_interval = 60 forbidden_retry_interval = 60 expiration = 480 auth_rejection_permanent = false [telekom_9931234567_auth] type = auth auth_type = userpass password = $Password:$TOnlineNummer-0001@tel.t-online.de username = 09931234567 realm = tel.t-online.de [telekom_9931234567] type = endpoint transport = transport-udp context = incoming disallow = all allow = alaw,g722 outbound_auth = telekom_9931234567_auth outbound_proxy = sip:+499931234567@tel.t-online.de:5060\;lr aors = telekom_9931234567_aor callerid = 09931234567 from_user = 09931234567 from_domain = tel.t-online.de timers = no rtp_symmetric = yes force_rport = yes ice_support = yes rewrite_contact = yes direct_media = no [telekom_9931234567_aor] type = aor contact = sip:+499931234567@tel.t-online.de [telekom_9931234567_identify] type = identify endpoint = telekom_9931234567 match = 217.0.0.0/13
Die fiktive Telefonnummer 9931234567 durch die eigene ersetzen. Dabei darauf achten, wo die Nummer mit 0 oder +49 beginnt. (Wichtig)
Darüber hinaus noch die Variablen
- $TOnlineNummer
- $Password
- $ExterneIP
sinngemäß anpassen.
Außer [global] und [transport-udp] muss alles für jede Telefonnummer wiederholt werden.
outbound_proxy= <vollständige-sip-url>\;lr
\;lr am Schluss ist wichtig. Steht für loose-routing. Gibt man das nicht mit an, ruft man sich beim abgehenden Anruf immer selbst an.
Das hat mich Stunden gekostet, denn es ist in dem Zusammenhang nirgends vernünftig dokumentiert.
Dann noch die rtp.conf anpassen:
rtpstart = 30000 rtpend = 30099
Damit eingehende RTP-Daten auch auf die richtigen am Router forwardeten Ports der external_media_address bestellt werden.
Warum die $ExterneIP in die pjsip.conf schreiben?
Das aktuelle res_pjsip.so Modul, welches in den meisten Distros verteilt wird macht keinen automatischen Lookup, wenn man einen DNS-Namen als external_media_address verwendet. Asterisk sendet dann im INVITE den DNS-Namen statt der IP. Prinziepiell sollte das gehen, jedoch machen die SIP-Gateways bei fast allen Providern entgegen der Spezifikation kein DNS-Lookup für uns.
Ich habe das unschön gelöst, indem ich ein kleines python-Script per Cron regelmäßig die IP von meiner DynDNS-Domain abfragen lasse.
Bei Bedarf ersetzt das Script dann die IP in der pjsip.conf und reloaded per AMI pjsip.
extensions.conf
[incoming]
exten => 09931234567,1,Verbose(${CALLERID(num)} ruft an)
[out]
exten => _X.,1,Dial(PJSIP/${EXTEN}@telekom_9931234567)
10586
0
4
Das könnte Ihnen auch weiterhelfen
662
0
7
337
0
2
vor 5 Jahren
580
0
1
vor 3 Monaten
77
1
4
Beliebte Tags letzte 7 Tage
Das könnte Sie auch interessieren
Kaufberatung anfragen
Füllen Sie schnell und unkompliziert unser Online-Kontaktformular aus, damit wir sie zeitnah persönlich beraten können.

Angebote anzeigen
Informieren Sie sich über unsere aktuellen Internet-Angebote.
