Hi,
in r1821 you can find my first shot at this scenario, a b2bua which enables SST on both sides, and does the SDP ping pong as below.
I am sure that there are many cases which are not handled properly, for example, if we have started one INVITE ping-pong from the B2B, then we should not accept re-INVITE from the ends, but refuse them with 491; atm I think the re-INVITE would just get relayed and two INVITE transactions would be running simultaneously.
Another issue is what to do when re-INVITE fails, I think that this is not handled properly at the moment (it is just ignored, but should probably tear down both calls - that's the thing for, I guess).
A third todo is to pass the headers through. Possibly, this should be implemented with a header filter or the like.
Regards Stefan
Klaus Darilion wrote:
Yes, it is complex if the B2BUA does not have a media relay ( in which case providing the SDP (at least the port information) itself).
Am 22.04.2010 16:01, schrieb Stefan Sayer:
or, other possibility, empty reinvite: A b2b B |---INVITE / SDPa-->| | | |---INVITE / SDPa-->| | | | | |<-- OK/SDPb--------| | |--- ACK ---------->| |<-- OK/SDPb--------| | |--- ACK ---------->| | | | | ... sst timer expires ... | | | |<--INVITE | | | | | |--- OK/SDPc------->| | now what? ignore that, or do
| |---INVITE / SDPc-->| | |<-- OK/SDPd--------|
This is the proper approach.
one more ping-pong?
No.
|<----ACK/SDPd------|----ACK----------->|
No more ping-pongs needed.
regards klaus