六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 51|回复: 0

Libjingle另一个很隐藏但却很致命的错误

[复制链接]

升级  35.67%

93

主题

93

主题

93

主题

举人

Rank: 3Rank: 3

积分
307
 楼主| 发表于 2013-1-15 02:09:32 | 显示全部楼层 |阅读模式
无论Libjingle 0.4.0还是0.5.2 (相比较0.4.0有很大改动), 有一个很隐藏却很致命的错误. 这个错误会导致voice call的时候只能听到一方的声音.

fix方法:
physicalsocketserver.cc

1.
#ifdef WIN32
#define WIN32_LEAN_AND_MEAN
[AddMyChange]
#define SIO_UDP_CONNRESET _WSAIOW(IOC_VENDOR,12)
...

2.
  // Creates the underlying OS socket (same as the "socket" function).
  virtual bool Create(int type) {
    Close();
    s_ = ::socket(AF_INET, type, 0);

[AddMyChange]
#ifdef WIN32
    DWORD dwBytesReturned = 0;
    BOOL bNewBehavior = FALSE;
    DWORD status;

    // disable  new behavior using
    // IOCTL: SIO_UDP_CONNRESET
    status = WSAIoctl(s_, SIO_UDP_CONNRESET,
                   &bNewBehavior, sizeof(bNewBehavior),
                   NULL, 0, &dwBytesReturned,
                   NULL, NULL);
#endif

...


加了上面的修改, 终于完美实现Windows下Libjingle ( 0.4.0或0.5.2) + Linphone的语音通信.
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表