ich bekomme den Ansistring via Synapse TUDPBlockSocket.RecvPacket zurück:
Code: Alles auswählen
const SIP_PORT = '5060';
SIP_SOFTWARE = 'Johs Fritzbox-SIP-Test';
var Sock: TUDPBlockSocket;
buf: string;
begin
Sock:=TUDPBlockSocket.Create;
try
sock.Bind('0.0.0.0','0');
sock.connect(FritzIP, SIP_PORT);
if sock.LastError = 0 then
begin
buf := getSendString(csREGISTER, ''); // in getSendString wird der REGISTER-String erzeugt und hier gesendet
sock.SendString(Buf);
buf := sock.RecvPacket(1000); // die Antwort der Fritzbox - Das Thema des Threads
end;
end;
// eigentlich FormCreate...
UserIP := '192.168.0.33'; // meine IP
FritzIP := '192.168.0.1'; // Fritzbox IP
// Diese Werte werden in der Fritzbox bei der Erstellung des SIP-Telefoniegerätes erstellt
UserID := 'SIPbenutzer';
Password := 'SIPpasswort';
Code: Alles auswählen
REGISTER sip:192.168.0.1 SIP/2.0
Via: SIP/2.0/UDP 192.168.0.1;rport;branch=z9hG4bK085E2D8F-2076-41DA-A7D5-0CFF2CB63252
From: 192.168.0.33 <sip:SIPbenutzer@192.168.0.1>;tag=193408453
To: 192.168.0.33 <sip:SIPbenutzer@192.168.0.1>
Call-ID: AC11741D-FBCF-408D-B3FB-14E4C74265DF@192.168.0.1
CSeq: 1 REGISTER
Max-Forwards: 5
Expires: 1800
Contact: 192.168.0.33 <sip:SIPbenutzer@192.168.0.1>
User-Agent: Johs Fritzbox-SIP-Test
Content-Length: 0
Code: Alles auswählen
SIP/2.0 401 Unauthorized
Via: SIP/2.0/UDP 192.168.0.1;rport=57106;branch=z9hG4bK085E2D8F-2076-41DA-A7D5-0CFF2CB63252;received=192.168.0.33
From: 192.168.0.33 <sip:SIPbenutzer@192.168.0.1>;tag=193408453
To: 192.168.0.33 <sip:SIPbenutzer@192.168.0.1>;tag=2C67756FB8FD29DB
Call-ID: AC11741D-FBCF-408D-B3FB-14E4C74265DF@192.168.0.1
CSeq: 1 REGISTER
WWW-Authenticate: Digest realm="fritz.box", nonce="23D3919CC803E37F"
User-Agent: FRITZ!OS
Content-Length: 0
Code: Alles auswählen
// realm und nonce aus der Fritzbox-Antwort, Responce enthält das User-Passwort als MD5-Hash
REGISTER...wie vor
Authorization: Digest username="SIPbenutzer",realm="fritz.box",nonce="23D3919CC803E37F",response="ca4bf04483ab4e37e5dcddaef9822894",uri="sip:SIPbenutzer",algorithm=MD5