Hi!
As the RTP relaying does not work with 2 RTP proxies, how can a proxy detect if the RTP stream is already redirected to an RTP proxy?
My problem is the following scenario:
UA1 --NAT-- SIP proxy 1 -- SIP proxy 2 --NAT-- UA2 rtpproxy1 rtpproxy2
UA1 invites UA2. SIP proxy 1 detects that UA1 is behind NAT and enables the rtpproxy1 and forwards the invite to SIP proxy2. SIP proxy 2 knows that UA2 is also behind NAT. Usually, SIP proxy 2 would activate the rtpproxy2, but in this case this would not work as there is already an rtpproxy involved. How can the SIP proxy 2 detect that the IP address in the SDP is the IP address of an RTP proxy?
regards, Klaus
Klaus Darilion wrote:
Hi!
As the RTP relaying does not work with 2 RTP proxies, how can a proxy detect if the RTP stream is already redirected to an RTP proxy?
My problem is the following scenario:
UA1 --NAT-- SIP proxy 1 -- SIP proxy 2 --NAT-- UA2 rtpproxy1 rtpproxy2
UA1 invites UA2. SIP proxy 1 detects that UA1 is behind NAT and enables the rtpproxy1 and forwards the invite to SIP proxy2. SIP proxy 2 knows that UA2 is also behind NAT. Usually, SIP proxy 2 would activate the rtpproxy2, but in this case this would not work as there is already an rtpproxy involved. How can the SIP proxy 2 detect that the IP address in the SDP is the IP address of an RTP proxy?
Known problem. I think that I'll modify nathelper, so that force_rtp_proxy() will insert some flag into the SDP body, which will tell other proxies along the request route that there is no need to put another RTP relay into the RTP path.
Regards,
Maxim
On 03-11 19:18, Maxim Sobolev wrote:
Klaus Darilion wrote:
Hi!
As the RTP relaying does not work with 2 RTP proxies, how can a proxy detect if the RTP stream is already redirected to an RTP proxy?
My problem is the following scenario:
UA1 --NAT-- SIP proxy 1 -- SIP proxy 2 --NAT-- UA2 rtpproxy1 rtpproxy2
UA1 invites UA2. SIP proxy 1 detects that UA1 is behind NAT and enables the rtpproxy1 and forwards the invite to SIP proxy2. SIP proxy 2 knows that UA2 is also behind NAT. Usually, SIP proxy 2 would activate the rtpproxy2, but in this case this would not work as there is already an rtpproxy involved. How can the SIP proxy 2 detect that the IP address in the SDP is the IP address of an RTP proxy?
Known problem. I think that I'll modify nathelper, so that force_rtp_proxy() will insert some flag into the SDP body, which will tell other proxies along the request route that there is no need to put another RTP relay into the RTP path.
Another option would be to insert a header field telling that another RTP proxy is being used already.
The problem is that both solutions (header field and SDP flags) will be not interoperable.
Another option would be to modify the RTP proxy so that it will be symmetric only for user agents that belong to the domain of the proxy. That would probably complicate things a bit.
Jan.
There is another possible solution: modify nathelper to only apply RTP proxy redirection if there is only one Via in the request. This will ensure that in the situation when there are multiple SIP/RTP proxies in the path only first one will handle RTP. Unfortunately it will not help if there are any SIP B2BUAs on the way.
-Maxim
Jan Janak wrote:
On 03-11 19:18, Maxim Sobolev wrote:
Klaus Darilion wrote:
Hi!
As the RTP relaying does not work with 2 RTP proxies, how can a proxy detect if the RTP stream is already redirected to an RTP proxy?
My problem is the following scenario:
UA1 --NAT-- SIP proxy 1 -- SIP proxy 2 --NAT-- UA2 rtpproxy1 rtpproxy2
UA1 invites UA2. SIP proxy 1 detects that UA1 is behind NAT and enables the rtpproxy1 and forwards the invite to SIP proxy2. SIP proxy 2 knows that UA2 is also behind NAT. Usually, SIP proxy 2 would activate the rtpproxy2, but in this case this would not work as there is already an rtpproxy involved. How can the SIP proxy 2 detect that the IP address in the SDP is the IP address of an RTP proxy?
Known problem. I think that I'll modify nathelper, so that force_rtp_proxy() will insert some flag into the SDP body, which will tell other proxies along the request route that there is no need to put another RTP relay into the RTP path.
Another option would be to insert a header field telling that another RTP proxy is being used already.
The problem is that both solutions (header field and SDP flags) will be not interoperable.
Another option would be to modify the RTP proxy so that it will be symmetric only for user agents that belong to the domain of the proxy. That would probably complicate things a bit.
Jan.
That will imho not work. If I register my phone behind a NAT with iptel.org and anyone calls me through a proxy that doesn't force RTP relay, then iptel.org will not force RTP relay (because there are 2 Via headers) and I won't hear anything.
Jan.
On 03-11 19:40, Maxim Sobolev wrote:
There is another possible solution: modify nathelper to only apply RTP proxy redirection if there is only one Via in the request. This will ensure that in the situation when there are multiple SIP/RTP proxies in the path only first one will handle RTP. Unfortunately it will not help if there are any SIP B2BUAs on the way.
-Maxim
Jan Janak wrote:
On 03-11 19:18, Maxim Sobolev wrote:
Klaus Darilion wrote:
Hi!
As the RTP relaying does not work with 2 RTP proxies, how can a proxy detect if the RTP stream is already redirected to an RTP proxy?
My problem is the following scenario:
UA1 --NAT-- SIP proxy 1 -- SIP proxy 2 --NAT-- UA2 rtpproxy1 rtpproxy2
UA1 invites UA2. SIP proxy 1 detects that UA1 is behind NAT and enables the rtpproxy1 and forwards the invite to SIP proxy2. SIP proxy 2 knows that UA2 is also behind NAT. Usually, SIP proxy 2 would activate the rtpproxy2, but in this case this would not work as there is already an rtpproxy involved. How can the SIP proxy 2 detect that the IP address in the SDP is the IP address of an RTP proxy?
Known problem. I think that I'll modify nathelper, so that force_rtp_proxy() will insert some flag into the SDP body, which will tell other proxies along the request route that there is no need to put another RTP relay into the RTP path.
Another option would be to insert a header field telling that another RTP proxy is being used already.
The problem is that both solutions (header field and SDP flags) will be not interoperable.
Another option would be to modify the RTP proxy so that it will be symmetric only for user agents that belong to the domain of the proxy. That would probably complicate things a bit.
Jan.