FreeSWITCH支持视频通话和视频会议,但默认的配置不支持,好多人不知道怎么开启该功能。其实,很简单,找到vars.xml配置文件中的如下的行:
<X-PRE-PROCESS cmd="set" data="global_codec_prefs=G722,PCMU,PCMA,GSM"/>
<X-PRE-PROCESS cmd="set" data="outbound_codec_prefs=PCMU,PCMA,GSM"/>
上面的设置是设置FreeSWITCH支持的媒体编码,包括语音和视频。可以看到,默认的配置仅支持音频编码,要支持视频,我们直接把上想要的视频编码设置上即可,如:
<X-PRE-PROCESS cmd="set" data="global_codec_prefs=G722,PCMU,PCMA,GSM,H263,H264,VP8"/>
<X-PRE-PROCESS cmd="set" data="outbound_codec_prefs=PCMU,PCMA,GSM,H263,H264,VP8"/>
上面的代码就加入了H263、H264以及VP8编码的支持。
看到这儿,你可能会说,这也太简单了。是的,会者不难。但是,会了上面的并不等于真会了。因为,你可能还没理解为什么这样配置就可以了。所以,我会再讲点高级的。
看Sofia Profile的配置中(如internal.xml),你会看到如下的配置参数:
<param name="inbound-codec-prefs" value="$${global_codec_prefs}"/>
<param name="outbound-codec-prefs" value="$${global_codec_prefs}"/>
如果你善于比较,就可以看出,这里,它引用了在vars.xml中的变量。所以,在vars.xml中只是设了一个变量(如global_codec_prefs),真正起作用的是这儿。也正是这个原因,你可以完全不用改varx.xml中的变量,而直接改该配置文件,如,使用下面的方法加入视频编码:
<param name="inbound-codec-prefs" value="$${global_codec_prefs},H264,VP8"/>
<param name="outbound-codec-prefs" value="$${global_codec_prefs},H264,VP8"/>
当然,你也可以直接这样设:
<param name="inbound-codec-prefs" value="PCMA,PCMU,H264"/>
<param name="outbound-codec-prefs" value="PCMA,PCMU,H264"/>
到这里,我想你就明白多了。记得重启FreeSWITCH让配置生效。