Also, auf in die nächste Runde, jetzt einmal 'Butter bei die Fische".
In dem folgenden Beispiel sei meine Telephonnummer "0049 12 34567890", bzw. "+49 12 34567890" oder mit Vorwahl in der Bundesrepublik "012 34567890".
Für die Registrierung eines O2 Anschlusses verwende ich folgende Einträge in pjsip.conf, wie unten angegeben. Der ASTERISK Daemon sitzt in einem "sicheren" Netzsegment auf einer eigenen IP, d.h., er lauscht nicht auf allen Schnittstellen, die am System vorhanden sind. Das impliziert allerdings, daß der ASTERISK nicht mit der von O2 meinem Endgerät zugewiesenen IP mit der Außenwelt kommuniziert, sondern via NAT. Der ASTERISK verhält sich demgemäß wie ein SIP Telephon, das ich hinter meinem Router (und damit hinter NAT) anschließe. Eventuell sind hier Konfigurationsparadigmen sinnvoll, die ein SIP Telephon nach außen bringen können. O2 schweigt sich beharrlich auch darüber aus, wie man ein SIP Telephon anbindet - eine Sache, die man vielleicht mal mit mehr "Lex" angehen sollte.
Nun, da ich nicht weiß, welche IP mir der ISP DHCP zuweist, wenn ich ins Netz gehe und aufgrund der oben beschriebenen Konfiguration, nutze ich DDNS, um meine offizielle IP zu ermitteln, dazu sind die beiden Transport-Einträge external_XXX= in [transport_udp] nötig.
Die interessanten Aspekte der Registrierung sind dann weiter unten.
Wie lauten syntaktisch
contact_user=
server_uri=
client_uri=
outbound_proxy=
username=
from_user=
from_domain=
contact=
Kann jemand dazu etwas sagen?
In den DEBUG Logs des Asterisk finde ich folgende Einträge:
[...]
[Jul 29 14:02:54] DEBUG[100413] res_pjsip_outbound_registration.c: Outbound REGISTER attempt 1 to 'sip:sip.alice-voip.de' with client 'sip:
[email protected]'
[Jul 29 14:02:54] DEBUG[100413] res_pjsip_outbound_registration.c: Received REGISTER response 502(DNS "Name Error" (PJLIB_UTIL_EDNS_NXDOMAIN))
[Jul 29 14:02:54] DEBUG[100413] res_pjsip_outbound_registration.c: Processing REGISTER response 502 from server 'sip:sip.alice-voip.de' for client 'sip:
[email protected]'
[Jul 29 14:02:54] DEBUG[100413] res_pjsip_outbound_registration.c: Scheduling outbound registration to server 'sip:sip.alice-voip.de' from client 'sip:
[email protected]' in 30 seconds
[...]
Diese Meldung erscheint, wenn mein DNS Server (auf dem Router) sip.alice-voip.de nicht auflösen kann. Gut, eine kleine dümmliche Schikane des ISP, um "nomadisches" Nutzen seiner ach so tollen IP Infrastruktur NICHT zu nutzen. Sowas kann man mit etwas Aufwand Phantasie umgehen, aber sei es 'drum.
Wenn dann mein Asterisk/Router mit dem richtigen DNS kommuniziert, gibts allerdings einen Fehler 401 - und ein solcher besagt laut Meinung von echten oder selbsternannten Experten: Authentifizierungsfehler. Das heißt, mein PBX konnte zwar den Registrar erreichen, aber die Gegenstelle will ihn nicht. Paßwort falsch? URI nicht im richtigen Format? Ich habe jetzt nahezu alle möglichen Permutationen der Darstellung der URI des username= (e164 in strictu sensu oder ohne "+", also sip:
[email protected] oder sip:
[email protected] beispielsweise), "contact=" und "client_uri=" durch.
Weiter unten in meiner Konfiguration sieht man im Objekt type=identify das Attribut match=. Hier weiß ich nicht so recht, aus welchen IP Adreßkreisen O2 zu mir herantritt. Hier (und in der Firewall) wären Einschränkungen nicht nur sinnvoll, sondern auch notwendig. Wenn diese Einträge nicht vorhanden sind, sprudelt es in den Log Dateien nur so von Verbindungsversuchen aus aller Herren Länder. Hier wären die ITSP in der Pflicht, im Kontext der Gesetzesnovelle zum FTEG mit Wirkung vom 01.08.2016 (Routerfreiheit) dafür zu sorgen, daß solche Informationen transparent und eben zum Portfolio der Zugangsdaten gehören.
Das Problem der DNS Namensauflösung sehe ich im Kontext der Spionage und des Abgreifens persönlicher Informationen: es ist hinlänglich bekannt, daß DNS Anfragen zur Generierung von Bewegungsprofilen benutzt werden können. Zwar kann man juristisch dem ITSP gemäß BDSG der Nutzung widersprechen, aber wer hält sich denn schon in den südeuropäischen Ländern an sowas, wenn das selbst hierzulande nicht klappt? Zudem ist auch bekannt, daß die ISPs Anfragen "umbiegen", um ihren Werbe- oder sonstigen Scheiß feilzubieten. Sicherlich wird man das nicht mit einem Google DNS 8.8.8.8 eliminieren können. Aber der CCC unterhält ebenfalls einige relativ schnelle DNS Systeme. Nur soviel dazu. Das sind einige, vielleicht hier nicht hingehörende Gedanken.
Kann dann der Name via DNS aufgelöst werden, erfolgt diese Log Meldung (bitte nicht an den unterschiedlichen Datumeinträgen stören, ich Logge und teste bereits seit einiger Zeit ...):
[... im debug Log ...]
[Jul 29 14:02:54] DEBUG[100413] res_pjsip_outbound_registration.c: Outbound REGISTER attempt 10 to 'sip:sip.alice-voip.de' with client 'sip:
[email protected]'
[Jul 29 14:02:54] DEBUG[100413] res_pjsip_outbound_registration.c: Received REGISTER response 502(DNS "Name Error" (PJLIB_UTIL_EDNS_NXDOMAIN))
[Jul 29 14:02:54] DEBUG[100413] res_pjsip_outbound_registration.c: Processing REGISTER response 502 from server 'sip:sip.alice-voip.de' for client 'sip:
[email protected]'
[Jul 29 14:02:54] DEBUG[100413] res_pjsip_outbound_registration.c: Scheduling outbound registration to server 'sip:sip.alice-voip.de' from client 'sip:
[email protected]' in 30 seconds
[Jul 23 10:22:34] DEBUG[100239] res_pjsip_outbound_registration.c: Received REGISTER response 401(Unauthorized 11030230330)
[Jul 23 10:22:34] DEBUG[100239] res_pjsip_outbound_registration.c: Processing REGISTER response 401 from server 'sip:sip.alice-voip.de:5060' for client 'sip:
[email protected]:5060'
[Jul 23 10:22:34] DEBUG[100239] res_pjsip_outbound_registration.c: Scheduling outbound registration to server 'sip:sip.alice-voip.de:5060' from client 'sip:
[email protected]:5060' in 60 seconds
[... im message Log ...]
[Jul 22 22:11:25] WARNING[100324] res_pjsip_outbound_registration.c: Temporal response '401' received from 'sip:sip.alice-voip.de:5060' on registration attempt to 'sip:
[email protected]:5060', retrying in '60'
Besonders interessant ist dieser Eintrag (message Log):
[...]
[Jul 21 12:44:46] WARNING[100263] res_pjsip_outbound_authenticator_digest.c: Host: '195.71.31.47:5060': Unable to create request with auth. No auth credentials for realm(s) 'ims.telefonica.de' in challenge.
[Jul 21 12:44:46] WARNING[100263] res_pjsip_outbound_registration.c: Failed to create authenticated REGISTER request to server 'sip:sip.alice-voip.de:5060' from client 'sip:
[email protected]:5060'
[Jul 21 12:44:46] WARNING[100263] res_pjsip_outbound_registration.c: Fatal response '401' received from 'sip:sip.alice-voip.de:5060' on registration attempt to 'sip:
[email protected]:5060', stopping outbound registration
Der Host: '195.71.31.47:5060' will offenbar etwas von mir, scheinbar eine Authentifikation und erwartet ein 'realm=ims.telefonica.de'. Von wo kommt diese Anforderung? Aus der registrierung meines Trunks oder der Authentifizierung meines "Endpoints"?
Nun, ich hoffe jemand hat ein paar Vorschläge oder konstruktive Gedanken.
[... Konfiguration PJSIP ...]
;-------------------------------------------------------------------------------
; Templates (c)
;-------------------------------------------------------------------------------
; Transport via UDP
[transport_udp]
type= transport
protocol= udp
local_net= 192.168.254.0/24
local_net= 127.0.0.1/32
bind= 192.168.254.1:5060
external_media_address= ddns.de
external_signaling_address= ddns.de
[registration_default](!)
transport= transport_udp
;retry_interval= 60
retry_interval= 30
forbidden_retry_interval= 180
fatal_retry_interval= 240
expiration= 120
max_retries= 90
auth_rejection_permanent= false
[endpoint_std_nat](!)
dtmf_mode= rfc4733
disallow= all
allow= g722
allow= g726
allow= alaw
allow= ulaw
rtp_symmetric= yes
force_rport= yes
rewrite_contact= yes
timers= yes
direct_media= no
language= de
;-------------------------------------------------------------------------------
; O2
;-------------------------------------------------------------------------------
[trunk_o2](registration_default)
type= registration
contact_user= 491234567890
outbound_auth= reg_trunk_o2
server_uri= sip:sip.alice-voip.de
;outbound_proxy= sip:ims.telefonica.de
client_uri= sip:
[email protected]
[reg_trunk_o2]
type= auth
auth_type= userpass
username= 491234567890
password= GeheimesPW
;realm= sip.alice-voip.de
[trunk_o2](endpoint_std_nat)
type= endpoint
transport= transport_udp
context= internalsip_o2
callerid= 01234567890
from_user= 491234567890
from_domain= sip.alice-voip.de
outbound_auth= trunk_o2
auth= trunk_o2
aors= trunk_o2
[trunk_o2]
type= aor
max_contacts= 1
contact= sip:
[email protected]
[trunk_o2]
type= auth
auth_type= userpass
username= 491234567890
password= GeheimesPW
;realm= sip.alice-voip.de
[trunk_o2_in]
type= endpoint
transport= transport_udp
context= o2_in
disallow= all
allow= g722
allow= g726
allow= alaw
allow= ulaw
outbound_auth= trunk_o2
[trunk_o2_in]
type= identify
endpoint= trunk_o2
;match= 195.71.31.0/24,193.189.245.0/24,213.20.127.47/24