编译相关
编译libpng16,用于播放png
参考链接如下:
如何为freeswitch增加libpng16支持
相关配置
conference配置
文件:conf/autoload_configs/conference.conf.xml
<profile name="video-mcu-stereo-320"><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="1x1"/><param name="video-layout-name" value="group:grid"/><param name="video-canvas-size" value="640x480"/><param name="video-canvas-bgcolor" value="#333333"/><param name="video-layout-bgcolor" value="#000000"/><param name="video-codec-bandwidth" value="1mb"/><param name="video-fps" value="30"/></profile>
入会dialplan
文件:conf/dialplan/public.xml
<extension name="CallIn_To_Bot_"><condition field="destination_number" expression="^\+(\d+)$"><action application="set" data="core_video_blank_image=false"/><action application="answer"/><action application="conference" data="3000@video-mcu-stereo-320" /></condition></extension>
API
呼叫软电话并入会
originate {core_video_blank_image=false}sofia/external/1007@10.1.1.157:10020 +8881000 XML public
播放flv命令
conference 3000 play av:///usr/local/freeswitch/flv/1.flv
停止播放flv
conference 3000 stop all
!!!stop将会清空所有待播放的音视频列表!!!
事件
会议室新建
RECV EVENTEvent-Subclass: conference::maintenanceEvent-Name: CUSTOMCore-UUID: 6043ded1-0eff-457b-9740-9d5ed97eb827FreeSWITCH-Hostname: idc-146FreeSWITCH-Switchname: idc-146FreeSWITCH-IPv4: 10.1.1.146FreeSWITCH-IPv6: ::1Event-Date-Local: 2020-12-28 17:38:49Event-Date-GMT: Mon, 28 Dec 2020 09:38:49 GMTEvent-Date-Timestamp: 1609148329962742Event-Calling-File: mod_conference.cEvent-Calling-Function: conference_newEvent-Calling-Line-Number: 3792Event-Sequence: 6979Conference-Name: 3000Conference-Domain: 10.1.1.146Conference-Size: 0Conference-Ghosts: 0Conference-Profile-Name: video-mcu-stereo-320Conference-Unique-ID: 3f9c6f47-0673-4852-97a0-7f3096dbba00Action: conference-create
会议室入会
RECV EVENTEvent-Subclass: conference::maintenanceEvent-Name: CUSTOMCore-UUID: 6043ded1-0eff-457b-9740-9d5ed97eb827FreeSWITCH-Hostname: idc-146FreeSWITCH-Switchname: idc-146FreeSWITCH-IPv4: 10.1.1.146FreeSWITCH-IPv6: ::1Event-Date-Local: 2020-12-28 17:38:49Event-Date-GMT: Mon, 28 Dec 2020 09:38:49 GMTEvent-Date-Timestamp: 1609148329982767Event-Calling-File: conference_member.cEvent-Calling-Function: conference_member_addEvent-Calling-Line-Number: 931Event-Sequence: 6982Conference-Name: 3000Conference-Domain: 10.1.1.146Conference-Size: 1Conference-Ghosts: 0Conference-Profile-Name: video-mcu-stereo-320Conference-Unique-ID: 3f9c6f47-0673-4852-97a0-7f3096dbba00Floor: falseChannel-State: CS_EXECUTEChannel-Call-State: ACTIVEChannel-State-Number: 4Channel-Name: sofia/external/1007@10.1.1.157:10020Unique-ID: 0eb06110-ff03-4d17-b452-6950aad3eee5Call-Direction: outboundPresence-Call-Direction: outboundChannel-HIT-Dialplan: trueChannel-Call-UUID: 0eb06110-ff03-4d17-b452-6950aad3eee5Answer-State: answeredChannel-Read-Codec-Name: L16Channel-Read-Codec-Rate: 8000Channel-Read-Codec-Bit-Rate: 128000Channel-Write-Codec-Name: PCMAChannel-Write-Codec-Rate: 8000Channel-Write-Codec-Bit-Rate: 64000Caller-Direction: outboundCaller-Logical-Direction: outboundCaller-Dialplan: XMLCaller-Caller-ID-Name: Outbound CallCaller-Caller-ID-Number: 1007Caller-Orig-Caller-ID-Number: 0000000000Caller-Callee-ID-Number: 0000000000Caller-Network-Addr: 10.1.1.157Caller-ANI: 0000000000Caller-Destination-Number: +8881000Caller-Unique-ID: 0eb06110-ff03-4d17-b452-6950aad3eee5Caller-Source: src/switch_ivr_originate.cCaller-Transfer-Source: 1609148329:1f8deee5-b4f8-4503-9a4f-c7ad5a45fdda:bl_xfer:+8881000/public/XMLCaller-Context: publicCaller-RDNIS: 1007Caller-Channel-Name: sofia/external/1007@10.1.1.157:10020Caller-Profile-Index: 2Caller-Profile-Created-Time: 1609148329962742Caller-Channel-Created-Time: 1609148328242742Caller-Channel-Answered-Time: 1609148329962742Caller-Channel-Progress-Time: 1609148328622812Caller-Channel-Progress-Media-Time: 0Caller-Channel-Hangup-Time: 0Caller-Channel-Transfer-Time: 0Caller-Channel-Resurrect-Time: 0Caller-Channel-Bridged-Time: 0Caller-Channel-Last-Hold: 0Caller-Channel-Hold-Accum: 0Caller-Screen-Bit: trueCaller-Privacy-Hide-Name: falseCaller-Privacy-Hide-Number: falseVideo: trueHear: trueSee: trueSpeak: trueTalking: falseMute-Detect: falseHold: falseMember-ID: 28Member-Type: memberMember-Ghost: falseEnergy-Level: 200Current-Energy: 0Action: add-member
会议室出会(用户挂断导致出会)
RECV EVENTEvent-Subclass: conference::maintenanceEvent-Name: CUSTOMCore-UUID: 6043ded1-0eff-457b-9740-9d5ed97eb827FreeSWITCH-Hostname: idc-146FreeSWITCH-Switchname: idc-146FreeSWITCH-IPv4: 10.1.1.146FreeSWITCH-IPv6: ::1Event-Date-Local: 2020-12-28 17:39:16Event-Date-GMT: Mon, 28 Dec 2020 09:39:16 GMTEvent-Date-Timestamp: 1609148356802740Event-Calling-File: conference_member.cEvent-Calling-Function: conference_member_delEvent-Calling-Line-Number: 1319Event-Sequence: 7009Conference-Name: 3000Conference-Domain: 10.1.1.146Conference-Size: 0Conference-Ghosts: 0Conference-Profile-Name: video-mcu-stereo-320Conference-Unique-ID: 3f9c6f47-0673-4852-97a0-7f3096dbba00Floor: falseChannel-State: CS_EXECUTEChannel-Call-State: ACTIVEChannel-State-Number: 10Channel-Name: sofia/external/1007@10.1.1.157:10020Unique-ID: 0eb06110-ff03-4d17-b452-6950aad3eee5Call-Direction: outboundPresence-Call-Direction: outboundChannel-HIT-Dialplan: trueChannel-Call-UUID: 0eb06110-ff03-4d17-b452-6950aad3eee5Answer-State: hangupHangup-Cause: NORMAL_CLEARINGChannel-Read-Codec-Name: L16Channel-Read-Codec-Rate: 8000Channel-Read-Codec-Bit-Rate: 128000Channel-Write-Codec-Name: PCMAChannel-Write-Codec-Rate: 8000Channel-Write-Codec-Bit-Rate: 64000Caller-Direction: outboundCaller-Logical-Direction: outboundCaller-Dialplan: XMLCaller-Caller-ID-Name: Outbound CallCaller-Caller-ID-Number: 1007Caller-Orig-Caller-ID-Number: 0000000000Caller-Callee-ID-Number: 0000000000Caller-Network-Addr: 10.1.1.157Caller-ANI: 0000000000Caller-Destination-Number: +8881000Caller-Unique-ID: 0eb06110-ff03-4d17-b452-6950aad3eee5Caller-Source: src/switch_ivr_originate.cCaller-Transfer-Source: 1609148329:1f8deee5-b4f8-4503-9a4f-c7ad5a45fdda:bl_xfer:+8881000/public/XMLCaller-Context: publicCaller-RDNIS: 1007Caller-Channel-Name: sofia/external/1007@10.1.1.157:10020Caller-Profile-Index: 2Caller-Profile-Created-Time: 1609148329962742Caller-Channel-Created-Time: 1609148328242742Caller-Channel-Answered-Time: 1609148329962742Caller-Channel-Progress-Time: 1609148328622812Caller-Channel-Progress-Media-Time: 0Caller-Channel-Hangup-Time: 0Caller-Channel-Transfer-Time: 0Caller-Channel-Resurrect-Time: 0Caller-Channel-Bridged-Time: 0Caller-Channel-Last-Hold: 0Caller-Channel-Hold-Accum: 0Caller-Screen-Bit: trueCaller-Privacy-Hide-Name: falseCaller-Privacy-Hide-Number: falseVideo: trueHear: trueSee: trueSpeak: trueTalking: falseMute-Detect: falseHold: falseMember-ID: 28Member-Type: memberMember-Ghost: falseEnergy-Level: 200Current-Energy: 0Action: del-member
开始播放flv
RECV EVENTEvent-Subclass: conference::maintenanceEvent-Name: CUSTOMCore-UUID: 6043ded1-0eff-457b-9740-9d5ed97eb827FreeSWITCH-Hostname: idc-146FreeSWITCH-Switchname: idc-146FreeSWITCH-IPv4: 10.1.1.146FreeSWITCH-IPv6: ::1Event-Date-Local: 2020-12-28 17:38:59Event-Date-GMT: Mon, 28 Dec 2020 09:38:59 GMTEvent-Date-Timestamp: 1609148339022748Event-Calling-File: conference_api.cEvent-Calling-Function: conference_api_sub_playEvent-Calling-Line-Number: 2828Event-Sequence: 6996Conference-Name: 3000Conference-Domain: 10.1.1.146Conference-Size: 1Conference-Ghosts: 0Conference-Profile-Name: video-mcu-stereo-320Conference-Unique-ID: 3f9c6f47-0673-4852-97a0-7f3096dbba00Action: play-fileFile: av:///usr/local/freeswitch/flv/1.flvAsync: false
结束播放flv
RECV EVENTEvent-Subclass: conference::maintenanceEvent-Name: CUSTOMCore-UUID: 6043ded1-0eff-457b-9740-9d5ed97eb827FreeSWITCH-Hostname: idc-146FreeSWITCH-Switchname: idc-146FreeSWITCH-IPv4: 10.1.1.146FreeSWITCH-IPv6: ::1Event-Date-Local: 2020-12-28 17:39:05Event-Date-GMT: Mon, 28 Dec 2020 09:39:05 GMTEvent-Date-Timestamp: 1609148345482802Event-Calling-File: conference_file.cEvent-Calling-Function: conference_file_closeEvent-Calling-Line-Number: 52Event-Sequence: 6997Conference-Name: 3000Conference-Domain: 10.1.1.146Conference-Size: 1Conference-Ghosts: 0Conference-Profile-Name: video-mcu-stereo-320Conference-Unique-ID: 3f9c6f47-0673-4852-97a0-7f3096dbba00seconds: 6milliseconds: 6454samples: 309838Action: play-file-doneFile: av:///usr/local/freeswitch/flv/1.flv
注意:在队列中等待播放的视频文件,也会有结束播放事件!
区别是,seconds和milliseconds的值为0
RECV EVENTEvent-Subclass: conference::maintenanceEvent-Name: CUSTOMCore-UUID: 94a077e8-4ca1-4b30-80f1-54c29fbde926FreeSWITCH-Hostname: localhost.localdomainFreeSWITCH-Switchname: localhost.localdomainFreeSWITCH-IPv4: 172.16.101.170FreeSWITCH-IPv6: ::1Event-Date-Local: 2021-01-07 08:41:05Event-Date-GMT: Thu, 07 Jan 2021 08:41:05 GMTEvent-Date-Timestamp: 1610008865659644Event-Calling-File: conference_file.cEvent-Calling-Function: conference_file_closeEvent-Calling-Line-Number: 52Event-Sequence: 856Conference-Name: 3800Conference-Domain: 172.16.101.170Conference-Size: 1Conference-Ghosts: 0Conference-Profile-Name: video-mcu-stereo-320Conference-Unique-ID: 0f5db4bf-1934-4f3e-be14-683e52a06c42seconds: 0milliseconds: 0samples: 0Action: play-file-doneFile: av:///root/127.flv
