关于Freeswitch媒体流方向控制的一个问题

今天碰到一个业务需求,希望Freeswitch在发起originate呼叫的时候,媒体流是单向的,只发送,不接收,反应到sdp的术语里面来说,也就是媒体属性希望是a=sendonly。然后狂肯了一阵freeswitch的源代码,运气还不错,找到一个现成的通道变量可以使用,关于Freeswitch媒体流方向控制的一个问题_第1张图片

用originate {origination_audio_mode=sendonly}user/1000 &playback(/tmp/test.mp4)测试了下,对于音频的话是有效的。关于Freeswitch媒体流方向控制的一个问题_第2张图片

 

对于视频,尚未支持,需要自行修改源码进行支持,修改文件在switch_core_media.c中,关于Freeswitch媒体流方向控制的一个问题_第3张图片

但是这种场景似乎也存在一个问题,这玩意似乎只能终端和freeswitch在内网可以玩,在公网环境下,sendonly后,终端不发送rtp,会导致freeswitch的rtp端口自适应无法起效,freeswitch的媒体流净往私网发了,这个问题不知有什么巧妙的方法了,要么rtp要代理了。

你可能感兴趣的:(媒体)