Ticket #657 (closed enhancement: fixed)

Opened 10 years ago

Last modified 10 years ago

Partial early media forking support

Reported by: bennylp Owned by: bennylp
Priority: normal Milestone: release-1.0.1
Component: pjsip Version: trunk
Keywords: Cc:
Backport to 1.x milestone: Backported:

Description

Consider this scenario, where pjsip acts as UAC:

  UAC            
  ------- INVITE+SDP ------>
  <------- 100 -------------
  <--- 183+SDP, from UAS1 --
  <--- 200+SDP, from UAS2 --

One scenario where the above happens include the use of ringback tone server which generates the 183 response (with SDP), before the call is answered by the destination UAS.

Currently the scenario above is not supported, since pjsip will ignore the second SDP (in the 200/OK response), as it has marked the SDP negotiation as complete when it received the 183 response. This, among other things, would cause pjsip to transmit RTP packets with wrong payload type, if the second SDP has selected different format than the first SDP.

This ticket adds enhancement where pjsip should detect that the second SDP is coming from different call leg, hence it should renegotiate the SDP and call on_media_update().

Change History

comment:1 Changed 10 years ago by bennylp

  • Status changed from new to closed
  • Resolution set to fixed

Implemented in r2362

Note: See TracTickets for help on using tickets.