1

I was configuring Freeswitch to make a video conference. It was normal for everyone to enter the conference ,can watch each other and screen share. but It still existed these problems:

1: conference video record was splited several files that every leg in itself file, but I wanted a mix video that everyone was recorded in one file.how can I configure It? 2:I wanted the screen share is in a fixed position,so I customized conference_layouts.conf.xml and added a new rule.How can I make screen share can be in the floor position,and It screen share not open this postion was empty.

these is my configuration: dialplan/default.xml

<extension name="my-mcu_conferences">
      <condition field="destination_number" expression="^my(\d{5})$">
        <action application="export" data="record_concat_video=true"/>
        <action application="record_session" data="/freeswitch/recordings/archive/${destination_number}_${strftime(%Y-%m-%d-%H-%M-%S)}.mp4"/>

        <action application="answer"/>
        <action application="conference" data="$1@my-mcu"/>
      </condition>
    </extension>
    <!-- STEREO 48kHz conferences / Video MCU -->
    <extension name="my-mcu-screen_conferences">
      <condition field="destination_number" expression="^my(\d{5}).*?-screen$">
        <action application="answer"/>
        <action application="send_display" data="FreeSWITCH Conference|$1"/>
        <!-- I want screen share on the floor -->
        <action application="set" data="conference_member_flags=join-vid-floor"/>
        <action application="conference" data="$1@my-mcu"/>
      </condition>
    </extension>

autoload_configs/conference.conf.xml

<profile name="my-mcu">
      <param name="domain" value="$${domain}"/>
      <param name="rate" value="48000"/>
      <param name="channels" value="2"/>
      <param name="interval" value="20"/>
      <param name="energy-level" value="200"/>
      <!-- <param name="tts-engine" value="flite"/> -->
      <!-- <param name="tts-voice" value="kal16"/> -->
      <param name="muted-sound" value="conference/conf-muted.wav"/>
      <param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
      <param name="alone-sound" value="conference/conf-alone.wav"/>
      <param name="moh-sound" value="$${hold_music}"/>
      <param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
      <param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
      <param name="kicked-sound" value="conference/conf-kicked.wav"/>
      <param name="locked-sound" value="conference/conf-locked.wav"/>
      <param name="is-locked-sound" value="conference/conf-is-locked.wav"/>
      <param name="is-unlocked-sound" value="conference/conf-is-unlocked.wav"/>
      <param name="pin-sound" value="conference/conf-pin.wav"/>
      <param name="bad-pin-sound" value="conference/conf-bad-pin.wav"/>
      <param name="caller-id-name" value="$${outbound_caller_name}"/>
      <param name="caller-id-number" value="$${outbound_caller_id}"/>
      <param name="comfort-noise" value="false"/>
      <param name="conference-flags" value="livearray-json-status|json-events|video-floor-only|rfc-4579|livearray-sync|minimize-video-encoding|manage-inbound-video-bitrate|video-required-for-canvas|video-mute-exit-canvas|mute-detect"/>
      <param name="video-auto-floor-msec" value="1000"/>
      <param name="video-mode" value="mux"/>
      <param name="video-layout-name" value="1floor_top+4"/>
      <!--<param name="video-layout-name" value="group:grid"/>-->
      <param name="video-canvas-size" value="1920x1080"/>
      <param name="video-canvas-bgcolor" value="#333333"/>
      <param name="video-layout-bgcolor" value="#000000"/>
      <param name="video-codec-bandwidth" value="3mb"/>
      <param name="video-fps" value="30"/>
      <!-- <param name="video-codec-config-profile-name" value="conference"/> -->
    </profile>

autoload_configs/conference_layouts.conf.xml

      <layout name="1floor_top+4">
        <image x="45" y="90" scale="270" floor="true"  floor-only="true" />
        <image x="0" y="0" scale="90" />
        <image x="90" y="0" scale="90" />
        <image x="180" y="0" scale="90" />
        <image x="270" y="0" scale="90" />
      </layout>
yankunliu
  • 21
  • 2

1 Answers1

1

I have resolved the recording problem by configuring conference.conf.xml adding

<param name="auto-record" value="/freeswitch/recordings/archive/${conference_name}_${strftime(%Y-%m-%d-%H-%M-%S)}.mp4"/>
yankunliu
  • 21
  • 2