I have two networks A and B which are connected through two machines. The clients from network A can't connect to the clients from network B and vice versa. Only the two machines can connect to each other. I have installed SER on both machines.
If SER A receives a Request for Client B, it forwards this request to SER B. If SER B recieves a request for Client A, it forwards to SER A. Note that Client B can't connect to SER A directly, and Client A can't connect to SER B.
192.168.0.0/24 10.0.0.0/24 SER A------------------SER B | | | | | | Client A Client B (Grandstream (kphone) BT 100)
I use the config from http://www.voip-info.org/wiki-SER+example+NAThelper (see below).
As for the SIP part, all seems well. The Clients connect, but I hear nothing, so I think, that rtpproxy is not funtional. There are two things that worry me:
1. In the log from SER , there is an entry that says: "a=nortpproxy:yes" What does this mean?
2. Some errors in the log:
ERROR: extract_body: message body has lenght zero ERROR: force_rtp_proxy2: can't extract body from the message ERROR: on_reply processing failed
I'm not sure, if I understand the whole thing correctly. So, I have some questions:
a) Must rtpproxy run on both machines (SER A and SER B) - they do now - or is one enough? I read, that rtpproxy supports "bridge mode", but it isn't documented anywhere. How can I activate the "bridge mode" ?
b) Must rtpproxy run before I start ser or after (if it matters at all) ?
c) can rtpproxy forward to another rtpproxy at all? If so, how?
d) Is there an alternative solution for the scenario described above?
Here's the important part of my config:
--- cut ---
...
if (method=="INVITE") { record_route(); force_rtp_proxy(); /* set up reply processing */ t_on_reply("1"); };
if (!t_relay()) { sl_reply_error(); };
}
onreply_route[1] { if (status=~"[12][0-9][0-9]") force_rtp_proxy(); }
Regards, Henry