- Mitglied seit
- 8 Sep 2010
- Beiträge
- 3,797
- Punkte für Reaktionen
- 727
- Punkte
- 113
Ich beziehe mich auf die x_voip Dokumentation von AVM. Zunächst ein paar Verständnisfragen zu X_AVM-DE_SetClient{X}.
_SetClient ist obsolet, habe ich verstanden. Aber wozu gibt es _SetClient2 und _SetClient3? Aus meiner Sicht ist nur _SetClient4 sinnvoll nutzbar, da nur hier ein Benutzername angegeben werden kann. in _SetClient2 fehlt dazu noch die Möglichkeit die eingehende Rufnummer anzugeben. Was übersehe ich hier?
Dann zur konkreten Frage bei _SetClient4:
Wenn ich darüber einen neues IP-Telefon anlege und das Anlegen über die 2FA bestätigt habe, erscheint das IP Telefon wie gewünscht unter Telefonie -> Telefoniegeräte. Ein beliebiger VoIP Client scheitert dann aber bei der Anmeldung: SIP/2.0 401 Unauthorized.
Lösche ich das Telefon und lege es über die Weboberfläche der Fritz!Box mit den identischen Daten erneut an, klappt die Anmeldung des VoIP Clients sofort.
Ergänzung: Das Ganze spielt sich auf einer Fritz!Box 7530AX mit Fritz!OS 8.0 im IP-Client Modus ab.
In WireShark sieht das so aus:
Von der Fritz!Box kommt dann korrekt der Hinweis, dass 2FA erwartet wird:
Dem komme ich nach:
... und erhalte meinen Token:
Den packe ich in den Header und sende den Ursprünglichen _SetClient4 Request erneut ab (wie in x_auth gefordert):
Anschließend ist das Telefon erstellt. Ich schneide direkt an der Fritz!Box mit, sehe also, dass das Passwort zumindest korrekt ankommt. Wo liegt der Fehler? Darf das Passwort nicht im Klartextübertragen werden? Dazu finde ich nichts in den Dokumentationen. Was übersehe ich hier?
_SetClient ist obsolet, habe ich verstanden. Aber wozu gibt es _SetClient2 und _SetClient3? Aus meiner Sicht ist nur _SetClient4 sinnvoll nutzbar, da nur hier ein Benutzername angegeben werden kann. in _SetClient2 fehlt dazu noch die Möglichkeit die eingehende Rufnummer anzugeben. Was übersehe ich hier?
Dann zur konkreten Frage bei _SetClient4:
Wenn ich darüber einen neues IP-Telefon anlege und das Anlegen über die 2FA bestätigt habe, erscheint das IP Telefon wie gewünscht unter Telefonie -> Telefoniegeräte. Ein beliebiger VoIP Client scheitert dann aber bei der Anmeldung: SIP/2.0 401 Unauthorized.
Lösche ich das Telefon und lege es über die Weboberfläche der Fritz!Box mit den identischen Daten erneut an, klappt die Anmeldung des VoIP Clients sofort.
Ergänzung: Das Ganze spielt sich auf einer Fritz!Box 7530AX mit Fritz!OS 8.0 im IP-Client Modus ab.
In WireShark sieht das so aus:
XML:
<SOAP-ENV:Body>
<ns1:X_AVM-DE_SetClient4>
<NewX_AVM-DE_ClientIndex xsi:type="xsd:int">6</NewX_AVM-DE_ClientIndex>
<NewX_AVM-DE_ClientPassword xsi:type="xsd:string">telefon7</NewX_AVM-DE_ClientPassword>
<NewX_AVM-DE_ClientUsername xsi:type="xsd:string">telefon6</NewX_AVM-DE_ClientUsername>
<NewX_AVM-DE_PhoneName xsi:type="xsd:string">SIP-DECT4</NewX_AVM-DE_PhoneName>
<NewX_AVM-DE_ClientId xsi:type="xsd:string">SIP-DECT4</NewX_AVM-DE_ClientId>
<NewX_AVM-DE_OutGoingNumber xsi:type="xsd:string">1234567</NewX_AVM-DE_OutGoingNumber>
<NewX_AVM-DE_InComingNumbers xsi:type="xsd:string"><?xml version="1.0"?>
<List><Item><Number>1234567</Number><Type>eVoIP</Type><Index>0</Index><Name/></Item></List>
</NewX_AVM-DE_InComingNumbers>
</ns1:X_AVM-DE_SetClient4>
</SOAP-ENV:Body>
Von der Fritz!Box kommt dann korrekt der Hinweis, dass 2FA erwartet wird:
XML:
<?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body>
<s:Fault>
<faultcode>s:Client</faultcode>
<faultstring>UPnPError</faultstring>
<detail>
<UPnPError xmlns="urn:dslforum-org:control-1-0">
<errorCode>866</errorCode>
<errorDescription>second factor authentication required</errorDescription>
</UPnPError>
</detail>
</s:Fault>
</s:Body>
</s:Envelope>
Dem komme ich nach:
XML:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:dslforum-org:service:X_AVM-DE_Auth:1" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<ns1:SetConfig>
<NewAction xsi:type="xsd:string">start</NewAction>
</ns1:SetConfig>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
... und erhalte meinen Token:
XML:
<?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body>
<u:SetConfigResponse xmlns:u="urn:dslforum-org:service:X_AVM-DE_Auth:1">
<NewState>waitingforauth</NewState>
<NewToken>06e57652-1dd2-11b2-b595-9dd66ecc2df6</NewToken>
<NewMethods>button,dtmf;*12622</NewMethods>
</u:SetConfigResponse>
</s:Body>
</s:Envelope>
Den packe ich in den Header und sende den Ursprünglichen _SetClient4 Request erneut ab (wie in x_auth gefordert):
XML:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:dslforum-org:service:X_VoIP:1" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns2="avm.de" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Header>
<avm:token xmlns:avm="avm.de" mustUnderstand="1">06e57652-1dd2-11b2-b595-9dd66ecc2df6</avm:token>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<ns1:X_AVM-DE_SetClient4>
<NewX_AVM-DE_ClientIndex xsi:type="xsd:int">6</NewX_AVM-DE_ClientIndex>
<NewX_AVM-DE_ClientPassword xsi:type="xsd:string">telefon7</NewX_AVM-DE_ClientPassword>
<NewX_AVM-DE_ClientUsername xsi:type="xsd:string">telefon6</NewX_AVM-DE_ClientUsername>
<NewX_AVM-DE_PhoneName xsi:type="xsd:string">SIP-DECT4</NewX_AVM-DE_PhoneName>
<NewX_AVM-DE_ClientId xsi:type="xsd:string">SIP-DECT4</NewX_AVM-DE_ClientId>
<NewX_AVM-DE_OutGoingNumber xsi:type="xsd:string">1234567</NewX_AVM-DE_OutGoingNumber>
<NewX_AVM-DE_InComingNumbers xsi:type="xsd:string"><?xml version="1.0"?>
<List><Item><Number>1234567</Number><Type>eVoIP</Type><Index>0</Index><Name/></Item></List>
</NewX_AVM-DE_InComingNumbers>
</ns1:X_AVM-DE_SetClient4>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Anschließend ist das Telefon erstellt. Ich schneide direkt an der Fritz!Box mit, sehe also, dass das Passwort zumindest korrekt ankommt. Wo liegt der Fehler? Darf das Passwort nicht im Klartextübertragen werden? Dazu finde ich nichts in den Dokumentationen. Was übersehe ich hier?
Zuletzt bearbeitet: