[OpenSIPS-Users] Mediaproxy ver 2.3.4 - Conntrack meets Music on Hold
Dan Pascu
dan at ag-projects.com
Wed Jul 1 05:03:10 CEST 2009
On 30 Jun 2009, at 15:41, Stuart Marsden wrote:
> Hi,
>
> I am testing a mediaproxy sever using 2.3.4
>
> The tests I have done so far have worked, however there is one
> scenario
> where once the call has been setup a phone can generate Music on Hold
>
> It does this by making a 2nd call (unrelated to the first at the SIP
> level) and passes what it thinks is the IP:port of the 1st call far
> end
> (actually the mediaproxy) to the MoH server.
>
> the MoH sever then sends audio to the mediaproxy.
>
> However since the source of the audio is not the phone, conntrack is
> not
> forwarding on the audio to the other end.
>
> Options as far as I can see are
>
> 1) remove the restriction on the source IP on who is allowed to
> forward
> rtp - from what I have ready this probably wont work
That is not an arbitrary restriction. That is how the forwarding works
at the conntrack level. You have four IP:port pairs (2 a tthe
endpoints and 2 on the media relay machine). The conntrack rule simply
forwards the packets between the far endpoints using the 2 local
IP:port pairs as a meeting ground. You cannot simply mix in data
coming from some other random IP:port source that was not initially
specified in the conntrack rule when it was created.
>
> 2) detect this special case and construct a temporary additional "1
> way" conntrack just for the MoH
> 3) detect this special case and change existing conntrack to point to
> the MoH sever, putting it back later
>
How exactly do you imagine that this special case can be detected,
since you said that the second call is unrelated to the first at the
SIP level? You want to match the proposed IP:port of some stream with
whatever sessions you already have running and simply assume they are
related? That is unfeasible and naive. If such a thing would be
implemented, it will open the doors for hijacking RTP streams with
official support from the SIP proxy and the media relay.
The proper way to do it (which by the way is already supported by
mediaproxy) is to send a re-INVITE inside the same dialog with the
proper IP:port in the stream pointing to the MOH, not to send a
completely unrelated INVITE that creates a new dialog and hope that
the proxy and the media relay will somehow figure out that they are
related and magically bridge them.
--
Dan
More information about the Users
mailing list