coturn服务器的搭建

news2025/1/11 2:28:07

Window下搭建coturn服务器:

准备材料:

1、安装Cygwin,地址:https://cygwin.com/install.html

由于Window无法直接部署coturn,因此需要下载安装Cygwin在Window上部署Linux虚拟环境。

在安装的时候需要安装几下packet:openssl-dev、gcc、libevent-devel、make(bin和source都要选择)。尤其是openssl和libevent这两个配置的时候需要使用必须添加正确才能正常生成Makefile。

2、下载coturn源码,地址:https://codeload.github.com/coturn/coturn/zip/4.5.0.4

安装步骤:
  1. 安装Cygwin的步骤网上有很多,除了需要选择几个packet之外,其他的没有需要特别注意的点,所以这里不在追叙。可以参考链接:Cygwin安装教程-CSDN博客
  2. 编译coturn源码
  • 2.1 Cygwin安装完整之后,打开Cygwin窗口,进入到coturn代码所在路径

  • 2.2 到coturn代码路径之后执行以下命令

./configure  //使用此命令更具configure生成makefile

此过程可能会遇到一下问题:

问题1:ERROR: OpenSSL Crypto development libraries are not installed properly in required location.

出现此问题是由于Cygwin中没有安装openssl,如果在编译之前添加了openssl应该不会出现此问题,如果添加了还出现此问题,建议再添加openssllib。

问题2:Libevent2 development libraries are not installed properly in required location.

出现此问题是由于在Cygwin中没有安装libevent,添加之后应该就会出现此问题。

  • 2.3 编译完成之后,会在coturn文件下生成Makefile文件。之后执行make
make//编译生成可以执行的文件

编辑完成如下图:

在这里插入图片描述

  • 2.4 编译完成之后会在文件夹下生成一下几个文件

在这里插入图片描述

之后使用make install 安装即可

make install

安装完成如下:

install -d sqlite
rm -rf sqlite/turndb
echo sqlite/turndb < turndb/schema.sql
sqlite/turndb
install -d /usr/local
install -d /usr/local/bin
install -d /usr/local/var/db
install -d /usr/local/man/man1
install -d /usr/local/etc
install -d /usr/local/lib
install -d /usr/local/share/examples/turnserver
install -d /usr/local/share/doc/turnserver
install -d /usr/local/share/turnserver
install -d /usr/local/include/turn
install -p bin/turnserver /usr/local/bin
install -p bin/turnadmin /usr/local/bin
install -p bin/turnutils_uclient /usr/local/bin
install -p bin/turnutils_peer /usr/local/bin
install -p bin/turnutils_stunclient /usr/local/bin
install -p bin/turnutils_oauth /usr/local/bin
install -p bin/turnutils_natdiscovery /usr/local/bin
install -p -m 0644 man/man1/turnserver.1 /usr/local/man/man1/
install -p -m 0644 man/man1/turnadmin.1 /usr/local/man/man1/
install -p -m 0644 man/man1/turnutils.1 /usr/local/man/man1/
install -p -m 0644 man/man1/turnutils_uclient.1 /usr/local/man/man1/
install -p -m 0644 man/man1/turnutils_stunclient.1 /usr/local/man/man1/
install -p -m 0644 man/man1/turnutils_oauth.1 /usr/local/man/man1/
install -p -m 0644 man/man1/turnutils_natdiscovery.1 /usr/local/man/man1/
install -p -m 0644 man/man1/turnutils_peer.1 /usr/local/man/man1/
install -p -m 0644 man/man1/coturn.1 /usr/local/man/man1/
install -p lib/libturnclient.a /usr/local/lib
install -p LICENSE /usr/local/share/doc/turnserver
install -p README.turnserver /usr/local/share/doc/turnserver
install -p README.turnadmin /usr/local/share/doc/turnserver
install -p README.turnutils /usr/local/share/doc/turnserver
install -p INSTALL /usr/local/share/doc/turnserver
install -p postinstall.txt /usr/local/share/doc/turnserver
install -p turndb/schema.sql /usr/local/share/doc/turnserver
install -p turndb/schema.sql /usr/local/share/turnserver
install -p turndb/schema.mongo.sh /usr/local/share/doc/turnserver
install -p turndb/schema.mongo.sh /usr/local/share/turnserver
install -p turndb/testredisdbsetup.sh /usr/local/share/turnserver
install -p turndb/testmongosetup.sh /usr/local/share/turnserver
install -p turndb/testsqldbsetup.sql /usr/local/share/turnserver
install -p turndb/schema.userdb.redis /usr/local/share/doc/turnserver
install -p turndb/schema.userdb.redis /usr/local/share/turnserver
install -p turndb/schema.stats.redis /usr/local/share/doc/turnserver
install -p turndb/schema.stats.redis /usr/local/share/turnserver
if [ -f sqlite/turndb ] ; then install -p sqlite/turndb /usr/local/var/db/turndb; fi
install -p examples/etc/turnserver.conf /usr/local/etc/turnserver.conf.default
cp -rpf examples/etc /usr/local/share/examples/turnserver
cp -rpf examples/scripts /usr/local/share/examples/turnserver
rm -rf /usr/local/share/examples/turnserver/scripts/rfc5769.sh
cp -rpf include/turn/client /usr/local/include/turn
install -p include/turn/ns_turn_defs.h /usr/local/include/turn
cat /usr/local/share/doc/turnserver/postinstall.txt
See docs folder or go to https://github.com/coturn/coturn/docs/PostInstall.md

至此Window中coturn安装完成。

服务器配置:

1、切换目录到 /usr/local/etc 路径中,将turnserver.conf.default拷贝一份命名为turnserver.conf。

2、在turnserver.conf中添加一下配置

#与前ifconfig查到的网卡名称一致(如果无法运行ifconfig,可以在windows的cmd窗口中使用ipconfig,如果只有一块网卡,可以默认使用如下值)
relay-device=eth0
#内网IP(ipconfig查到的IP地址)
listening-ip=192.168.1.188
#公网IP(局域网可以使用与上面相同的ip地址)
external-ip=113.119.27.xx
#第1步创建的用户名密码,创建IceServer时用
user=your_username:your_password
#一般与turnadmin创建用户时指定的realm一致
realm=xxx.com
#端口号
listening-port=3478
#不开启会报CONFIG ERROR: Empty cli-password, and so telnet cli interface is disabled! Please set a non empty cli-password!错误
cli-password=qwerty
cert=/etc/turn_server_cert.pem
pkey=/etc/turn_server_pkey.pem

至此将自己的信息对应填写之后配置结束。

启动服务:
 turnserver -o -a -f -c /usr/local/coturn/etc/turnserver.conf -r sdo.com 
检测:

打开一下网址,此网址是webRTC提供测试coturn服务器的网址:Trickle ICE (webrtc.github.io)

打开之后填写自己coturn服务器的配置文件信息,如下所示:

在这里插入图片描述

参考链接:

WebRTC之搭建coturn服务遇到的问题_k8s 部署webrtc服务coturn-CSDN博客

coTurn 运行在Windows平台的方法-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1150200.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue实现记事本(无样式版)

实现了增、删功能&#xff0c;任务统计&#xff0c;全删除功能。 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0">…

【达梦数据库】DM概述、数据定义(表空间管理、用户管理、模式管理、表管理)

文章目录 DM概述数据定义表空间管理1. 创建表空间2. 修改表空间3. 删除表空间 用户管理1. 创建用户2. 修改用户3. 删除用户 模式管理1. 创建模式(2种方法)2. 设置当前模式3. 删除模式 表管理1. 创建表2. 修改表3. 删除表 文章有点点长&#xff0c;可以先收藏哦&#xff0c;如果…

ECCV 22丨BUTD-DETR:图像和点云的语言标定Transformer

来源&#xff1a;投稿 作者&#xff1a;橡皮 编辑&#xff1a;学姐 论文链接&#xff1a;https://arxiv.org/abs/2112.08879[1] 主页链接&#xff1a;https://github.com/nickgkan/butd\_detr[2] 摘要&#xff1a; 在二维和三维场景中&#xff0c;大多数模型的任务都是将指涉…

Kafka生产问题总结及性能优化实践

Kafka可视化管理工具kafka-manager 安装及基本使用可参考&#xff1a;https://www.cnblogs.com/dadonggg/p/8205302.html 线上环境规划 JVM参数设置 kafka是scala语言开发&#xff0c;运行在JVM上&#xff0c;需要对JVM参数合理设置&#xff0c;参看JVM调优专题 修改bin/kaf…

算法通关村第十二关黄金挑战——最长公共前缀问题解析

大家好&#xff0c;我是怒码少年小码。 最长公共前缀 LeetCode 14&#xff1a;编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀&#xff0c;返回空字符串 “”。 示例&#xff1a; 输入&#xff1a;strs [“flower”,“flow”,“flight”]输出&#xff…

CSS+Javascript+Html日历控件

最近&#xff0c;因需要用HTMLJAVASCRIPTCSS实现了一个日历控件&#xff0c;效果如下&#xff1a; 单击上月、下月进行日历切换。当前日期在日历中变颜色标注显示。还是老老套路、老方法&#xff0c;分HMLCSSJAVASCRIPT三部分代码。 一、html代码 <h1>学习计划</h1…

HubSpot CRM是什么?如何添加、使用呢?

HubSpot CRM是一款强大的客户关系管理工具&#xff0c;它不仅简化了销售和市场营销过程&#xff0c;还提供了多种功能&#xff0c;有助于增强客户互动、提高销售效率和提供更多的洞察信息。 今天运营坛将带领大家深入了解HubSpot CRM&#xff0c;涵盖了它的定义、使用流程、添…

国产芯片vs“国际水平”,有距离也有超越!

当前&#xff0c;国产芯片正在迎来全新的发展阶段。国产终端芯片性能怎么样&#xff0c;与国际主流产品相比&#xff0c;表现如何&#xff1f;今天笔者就针对目前热度较高的四款国产CPU进行参数分析与性能跑分横向对比。 此次国产芯片评测型号分别是海光C86-3250、龙芯3A5000H…

java蓝桥11-20题总结

文章目录 11.排序1.代码2.知识点冒泡排序 12.跑步锻炼1.代码 13.蛇形填数1.代码 14.递增序列1.代码 15.AB&#xff08;OJ示例题目&#xff09;16.杨辉三角形1.代码2.知识点 17.货物1.代码 18.九进制转十进制1.代码 19.等差素数列1.代码 20.七段码 11.排序 1.代码 package lanq…

网络套接字编程(一)

网络套接字编程(一) 文章目录 网络套接字编程(一)预备知识源IP地址和目的IP地址端口号TCP/UDP协议特点网络字节序 socket编程socket常用APIsockaddr结构 简易UDP网络程序服务端创建套接字服务端绑定IP地址和端口号字符型IP地址VS整型IP地址服务端运行客户端创建套接字客户端绑定…

python使用ffmpeg来制作音频格式转换工具(优化版)

简介:一个使用python加上ffmpeg模块来进行音频格式转换的工具。 日志: 20231030:第一版,设置了简单的UI布局和配色,实现音频转为Mp3、AAC、wav、flac四种格式。可解析音频并显示信息,可设置转换后的保存路径 UI界面: 编程平台:visual studio code 编程语言:python 3…

如何把编辑器编辑好的文章分享给别人?

哈喽&#xff0c;大家好&#xff0c;今天小编给大家分享一个非常实用的功能&#xff0c;当我们在使用微信编辑器编辑排版文章的时候&#xff0c;需要在不发表的前提下分享给好友或者需要先给领导看一下的时候该怎么办呢&#xff1f;有三个方法&#xff0c;都可以在不发表的前提…

Ortec974A EPICS IOC程序

1&#xff09; 创建一个用户存放这个IOC程序结构的目录&#xff1a; rootorangepi4-lts:/usr/local/EPICS/program# mkdir ortec974A rootorangepi4-lts:/usr/local/EPICS/program# cd ortec974A/ rootorangepi4-lts:/usr/local/EPICS/program/ortec974A# ls2&#xff09;使用…

系列四十二、Spring的事务传播行为案例演示(二)#REQUIRED

一、演示Spring的默认传播行为&#xff08;REQUIRED&#xff09; 1.1、运行之前表中的数据 1.2、StockServiceImpl /*** Author : 一叶浮萍归大海* Date: 2023/10/30 15:43* Description:*/ Service(value "stockServiceREQUIRED") public class StockServiceImpl…

Mysql设置了更新时间自动更新,指定更新部分sql时不进行时间更新

现象&#xff1a; 因为字段设置了自动更新&#xff0c;所以sql语句一进行修改此字段就会自动更新时间&#xff0c;但是呢我们的有部分定时任务是半夜执行&#xff0c;并且不能让这个任务修改到数据的更新时间 解决&#xff1a; <update id"updateCreative">ALT…

element-plus DateTimePicker日期选择器,限制指定日期和时间不可选择

element-plus日期选择器&#xff0c;在指定日期时间前不可选择。 限制日期选择&#xff0c;使用disabled-date 限制小时选择&#xff0c;使用disabled-hours 限制分钟选择&#xff0c;使用disabled-minutes 限制毫秒选择&#xff0c;使用disabled-seconds 指定日期当天的时间有…

一带一路10周年:爱创科技加速中国药企国际化征程

“源自中国&#xff0c;属于世界”。 共建“一带一路”倡议提出10周年来&#xff0c;中国与沿线国家经济深度融合&#xff0c;在共商共建共享的基本原则下&#xff0c;“一带一路”形成了国际合作的平台和机制&#xff0c;跨国经济合作已基本形成。 随着“一带一路”合作日益加…

【脚本笔记】AssetDatabase

AssetDatabase是编辑器下的处理资源操作的重要类&#xff0c;主要用于访问资源并针对资源执行操作的接口。 这里面所有的操作路径都是基于Unity项目的相对路径也就是Assets/xxx或者Assets/xxx.jpg这种。CacheServer 主要解决的是缩短大型团队导入资源的时间。当配置后&#xff…

K8S部署应用时从harbor拉取镜像失败

问题描述 K8S部署服务拉取镜像失败&#xff1a;ImagePullBackOff K8S拉取镜像提示&#xff1a;Failed to pull image “IP:PORT/zcy-project/nginx:1.16.1”: rpc error: code Unknown desc Error response from daemon: unauthorized: unauthorized to access repository: …

mediapipe 训练自有图像数据分类

参考&#xff1a; https://developers.google.com/mediapipe/solutions/customization/image_classifier https://colab.research.google.com/github/googlesamples/mediapipe/blob/main/examples/customization/image_classifier.ipynb#scrollToplvO-YmcQn5g 安装&#xff1a…