[Serdev] nathelper and rtpproxy communications problem

Paul Winkeler pwinkeler at pbnj-solutions.com
Fri Jan 23 05:00:20 UTC 2004


Hi all,

Just started to get nathelper and rtpproxy (PortaOne) to work and ran into a
problem where the logs showed that the nathelper module was not able to get
a response to its request for a version identifier from rtpproxy
[www.portaone.com/~sobomax/rtpproxy.tar].  As I figure it there were two
problems:
1) The rtpproxy has no clue what a version request even is
2) Unlike all the other commands sent to rtpproxy, the request for a version
identifier consists of a single 'v' character whereas al other commands are
of the form: C\n\00 where "C" is the command character.

Assuming my diagnosis is correct, here is the patch to get nathelper.c to
issue a more properly formed request for a version:

@@ -172,7 +172,7 @@
int rtpp_ver;
char *cp;
bind_usrloc_t bind_usrloc;
- struct iovec v[1] = {{"V", 1}};
+ struct iovec v[1] = {{"V\n", 3}};

In addition, the file main.c from the rtpproxy tarball needs to be modified
to include one more case in its switch statement:
    case 'v':
    case 'V':
        len = sprintf(buf, "%s\n", "20040107");
        while (write(controlfd, buf, len) == -1 && errno == EINTR);
        return;

Please let me know if I am barking up the wrong tree or if I simply need to
submit my patches elsewhere.

Thanks and I look forward to contributing (more?) in the future,
 PaulW

(216) 533-5708




More information about the Serdev mailing list