Hallo zusammen,
lese schon längere Zeit mit und kämpfe aktuell damit die Geschichte für das Einfügen des timestamps in die SIP Pakete ans fliegen zu bekommen.
Habe den Thread schon hoch und runter gelesen und werde einfach nicht schlauer dabei.
Rahmenbedingung ist:
9971 hinter einer Fritzbox, funktioniert so normal weg auch und registriert sich.
Ansatz: Routing über VM (Debian Strech mit 192.168.1.81 und 192.168.2.81 als IP) zwecks Modifikation der SIP Pakete.
FB 192.168.1.1 (mit statischer Route auf 192.168.2.0/24 via 192.168.1.81 (VM zum Routen))
Telefon 192.168.2.10 (Standardrouter auf 192.168.2.81 (2. IP der VM))
Vorbereitend gemacht wurde:
Code:
net.ipv4.ip_forward=1
iptables -A FORWARD -s 192.168.1.1/32 -d 192.168.2.10/32 -p udp -m udp --sport 5060 --dport 5060 -j NFQUEUE --queue-num 0
Das Problem ist nun, dass sich das Telefon bei der Konfiguration via VM nicht mehr registriert, man sieht zwar Anfragen via tcpdump.
Soweit ich die Einträge jetzt richtig verstanden habe, gibt es letztlich 2 Möglichkeiten die Pakete zu modifizieren, einmal via Perl-Skript,
alternativ mittel des C-Programms.
Leider bekomme ich die Sourcen von joergR aus seinem git-repository via ./make_sipdate.sh nicht erfolgreich gebuildet. Hat da vielleicht
jemand 'ne Idee wo es da die Probleme gibt?
Code:
Cloning into 'libnetfilter_queue'...
remote: Counting objects: 1334, done.
remote: Compressing objects: 100% (602/602), done.
remote: Total 1334 (delta 855), reused 1084 (delta 717)
Receiving objects: 100% (1334/1334), 388.57 KiB | 0 bytes/s, done.
Resolving deltas: 100% (855/855), done.
patching file ./sipdate/sipdate.c
patching file ./sipdate/pktbuff.c
Hunk #1 succeeded at 92 (offset 9 lines).
Hunk #2 succeeded at 103 (offset 9 lines).
g++ -O2 -c sipdate.c
g++ -O2 -c pktbuff.c
g++ -O2 -c udp.c
udp.c:17:0: warning: "_GNU_SOURCE" redefined
#define _GNU_SOURCE
<command-line>:0:0: note: this is the location of the previous definition
g++ -O2 -c checksum.c
g++ -O2 -c ipv4.c
g++ -O2 -c ipv6.c
g++ sipdate.o pktbuff.o udp.o checksum.o ipv4.o ipv6.o -lnetfilter_queue -o sipdate
sipdate.o: In function `cb(nfq_q_handle*, nfgenmsg*, nfq_data*, void*)':
sipdate.c:(.text+0x121): undefined reference to `nfq_get_uid'
sipdate.c:(.text+0x136): undefined reference to `nfq_get_gid'
sipdate.c:(.text+0x14b): undefined reference to `nfq_get_secctx'
collect2: error: ld returned 1 exit status
Makefile:14: recipe for target 'sipdate' failed
make: *** [sipdate] Error 1
cp: cannot stat './sipdate': No such file or directory
● sipdate.service - Start sipdate
Loaded: loaded (/etc/systemd/system/sipdate.service; enabled; vendor preset: enabled)
Active: activating (auto-restart) (Result: exit-code) since Sat 2023-03-11 22:35:50 CET; 3ms ago
Process: 1049 ExecStart=/usr/local/sbin/sipdate (code=exited, status=203/EXEC)
Main PID: 1049 (code=exited, status=203/EXEC)
Alternative Tests mit dem Perl-Skript wollen auch nicht so Recht klappen.