My freeswitch application is using early media to send a video preview from the caller to the callee before answering. This works, if I am not forking the call to multiple users. If I fork the call, only the first endpoint to receive the early media gets to answer, and the other calls are cancelled (this is expected, according to the documentation).  If I set ignore_early_media to true in the dialplan, then the forking issue goes away but the early media stops working.

I did some packet captures with ignore_early_media turned on and off, and the signaling doesn’t change, so I’m sure it’s not a problem on the endpoints side of things.  Freeswitch just doesn’t send the RTP when it is set to true.

 

Is there some trick I am missing, or a workaround I can try?  Here’s my dialplan, it’s very straightforward:

 

 

    <extension name="C4 All Group">

      <condition field="destination_number" expression="^All$">

        <action application="set" data="ignore_early_media=true"/>

        <action application="bridge" data="user/000FFF0B001A,user/000FFF803637"/>

      </condition>

    </extension>