首先,我在Google上搜索了很多,这是我的最后选择。
我将Linphone SIP开源软件用于 Windows 7 ,并且尝试使用ToS不同于0的音频/视频流进行发送。
代码的相关部分:
retval = setsockopt(session->rtp.socket, proto, value_type, (SOCKET_OPTION_VALUE)&tos, sizeof(tos));
if (retval==-1)
ortp_error("Fail to set DSCP value on rtp socket: %s",getSocketError());
if (session->rtcp.socket != (ortp_socket_t)-1){
if (setsockopt(session->rtcp.socket, proto, value_type, (SOCKET_OPTION_VALUE)&tos, sizeof(tos))==-1){
ortp_error("Fail to set DSCP value on rtcp socket: %s",getSocketError());
}
}
我获得成功,即
retval
不是-1
。但是,从wireshark中,我仍然看到Tos = 0。Someone tells its windows bug, someone - by SPEC (a.e. feature).
有人知道解决方法吗,或者我需要通过命令行通过“gpedit.msc”手动创建组策略?
最佳答案
如果您希望获得Microsoft的“最新,最出色”的QOS故事,则需要研究qWave。 qWave的问题在于该API仅占故事的一半。 qWave允许您为Windows本身“标记” tcp流类型(视频,语音等),然后网络管理员可以创建polices关于如何处理它。另外,默认情况下,服务器操作系统上未安装qWave。使用qWave不能执行的操作是在网络数据包中设置特定的DSCP位,这些位的设置由数字生活网络联盟(DLNA)和WiFi联盟无线多媒体(WMM)规范定义。
如果您需要设置特定的DSCP位,则唯一的选择是使用较旧且已弃用的Traffic Control API。