Hi,
It is not very clear to me how to handle serial forking scenarios with rtpengine where there are multiple RTP listeners attached to multiple network interfaces.
That is to say, given:
rtpengine ... -i net1/xxx.xxx.xxx.xxx -i net2/yyy.yyy.yyy.yyy
1. I attempt to reach SIP gateway 1 via net1, calling rtpengine_manage() in the process:
rtpengine_manage("replace-origin replace-session-connection ICE=remove direction=$avp(rtp_src) direction=$avp(rtp_dest)");
2. The call to gateway 1 fails, and I roll over to gateway 2, reached via net2, with dispatcher.
I have some logic that checks how $rd has changed and sets $avp(rtp_dest) accordingly in the dispatcher failure_route[].
3. In that failure_route[], I call:
rtpengine_manage("replace-origin replace-session-connection ICE=remove direction=$avp(rtp_src) direction=$avp(rtp_dest)");
4. When looking at the SDP for the INVITE on branch #2 going out to gateway 2, it does not appear to utilise media endpoint yyy.yyy.yyy.yyy, but rather continues to represent itself outwardly as xxx.xxx.xxx.xxx, even to gateway #2.
I can't figure out what I'm doing wrong here, and the 'rtpengine' documentation only has one mention of serial forking, in the context of the discussion of the 'via-branch' parameter. As far as I can tell, this is not relevant to my use-case; I am not concerned about deleting the whole call from rtpengine, but rather about updating the SDP offer consonantly with serial forking to gateway #2.
Any help would be deeply appreciated!
Thanks,
-- Alex
I tested an approach in which all initial rtpengine_manage() calls (in support of a new SDP offer) were made in a branch_route[], and this appeared to work.
Is this the 'orthodox' way to do it?
Hi,
On 12/10/2015 01:33 PM, Alex Balashov wrote:
I tested an approach in which all initial rtpengine_manage() calls (in support of a new SDP offer) were made in a branch_route[], and this appeared to work.
Is this the 'orthodox' way to do it?
That's the way we're using it also.
Andreas