PhoneRTC 演示应用程序

Posted

技术标签:

【中文标题】PhoneRTC 演示应用程序【英文标题】:PhoneRTC demo application 【发布时间】:2014-12-12 04:54:34 【问题描述】:

我正在尝试启动和运行 PhoneRTC 演示。 https://github.com/alongubkin/phonertc/

其实我有很多疑惑

首先,我的理解: 1.我们需要一个TURN服务器 2. 我们需要一个信令服务器(demo/server in repo) 3. 我们需要一个使用phoneRTC项目的cordova项目(demo/client in repo)

    已启动 AWS 实例,分配了动态 DNS。 安装 TURN 服务器并启动它 - 但现在我对教程中提到的私有 ip 和公共 ip 部分感到困惑,因为每次我重新启动实例时我的 ip 都会发生变化。我有一个 dns 名称(来自 noip),它会坚持下去。所以我正在探索如何设置 TURN 服务器

    我查看了源代码并按照 npm install cordva 等步骤操作,

    对于 Signaling 服务器,我在源代码中导航到 demo/server,并在 npm install 后尝试了 node index.js,但出现了几个关于找不到模块的错误。

    demo/client 也是一个 nodeJS 项目,对吧?如果我启动并运行它,那就是视频聊天,对吗?

【问题讨论】:

【参考方案1】:

亚马逊提供Elastic IPs,允许您为您的 EC2 主机创建永久 IP 地址。

以下是从头开始运行演示所需的完整命令:

# install global dependencies
npm install -g cordova bower grunt-cli

# clone phonertc
git clone https://github.com/alongubkin/phonertc.git

# build client
cd demo/client
npm install
bower install

cordova plugin add org.apache.cordova.device
cordova plugin add org.apache.cordova.console
cordova plugin add https://github.com/alongubkin/phonertc.git

# follow the instructions for ios after running this command
cordova platform add ios android  

# before running the next command, make sure to
# change your server details in demo/client/app/scripts/signaling.js 
# and in demo/client/app/scripts/CallCtrl.js 
grunt build --force

# build server
cd ../server
npm install

运行服务器:

cd demo/server
node index.js

在 Android 上运行客户端:

cordova run android

在 iOS 上运行客户端:

cordova build ios

然后在真正的 iOS 设备上从 Xcode 运行项目。

【讨论】:

在同一 IP 上运行 2 台设备会导致 TURN 出现问题吗? 当我从demo/client 运行cordova plugin add org.apache.cordova.device 时,我看到Current working directory is not a Cordova-based project.。我在这里错过了什么吗?演示客户端不是已经是Cordova 项目了吗? @Neo 我遇到了同样的错误……你是怎么解决的?我们正在运行 Cordova 4.0 CLI 我实际上遇到了同样的问题,由于时间不多了,我暂时转到了 weemo/sightcall,即使它是付费的。但我对使用 phonertc 来满足我的需求非常感兴趣。 @neo 我通过在cordova plugin add 之前运行一次grunt cordova 解决了这个问题【参考方案2】:

我使用 ionic CLI 启动并运行了演示,执行后续步骤 (Android):

# install global dependencies
npm install -g cordova bower grunt-cli

# Get a GIT clone, needed for copying files
git clone https://github.com/alongubkin/phonertc.git

# start new ionic project
ionic create phonertc-ionic
cd phonertc

# Copy files from GIT clone to your ionic project
cp -R phonertc-gitclone\demo\client\* phonertc-ionic\

# install dependencies
npm install
bower install

# install plugins
cordova plugin add org.apache.cordova.device
cordova plugin add org.apache.cordova.console
cordova plugin add https://github.com/alongubkin/phonertc.git

# add android platform
cordova platform add android

# install/running signaling server
cd phonertc-gitclone/demo/server
npm install
node index.js

# setting up turn server (not sure if needed)
# I installed it on a VirtualBox Ubuntu server, also see:
# https://github.com/alongubkin/phonertc/wiki/Installation
# Next ports should be open to your Ubuntu TURN server:
# TCP 443
# TCP 3478-3479
# TCP 32355-65535
# UDP 3478-3479
# UDP 32355-65535
sudo apt-get install rfc5766-turn-server
# Edit /etc/turnserver.conf and change:
listening-ip=<internal IP VirtualBox Ubuntu>
relay-ip=<internal IP VirtualBox Ubuntu>
external-ip=<internal IP VirtualBox Ubuntu>
min-port=32355 
max-port=65535
realm=<your domain>
# Also uncomment
lt-cred-mech
fingerprint
# Edit /etc/turnuserdb.conf and at the end, add:
username:password
# Start TURN server
sudo /etc/init.d/rfc5766-turn-server start

# before running the next command, make sure to
# change your server details in demo/client/app/scripts/signaling.js 
# and in demo/client/app/scripts/CallCtrl.js 
cd phonertc-ionic/
grunt build --force

# Copy files from phonertc-ionic app dir to www dir
cp -R phonertc-ionic/app/* phonertc-ionic/www/

# Build and run to android
ionic run android

注意:

用你的填充 phonertc-ionic 和 phonertc-gitclone 目录。 目前我只能在 2 台 Android 设备之间进行测试。目前声音很糟糕,但视频很棒。 现在正在尝试在 IOS 上构建。

【讨论】:

我得到一个显示 Cordova 徽标的初始屏幕,然后是一个空白屏幕,什么也没有显示。 好的,问题是因为我在浏览器上运行它。演示应用只能在电话到电话的情况下使用。

以上是关于PhoneRTC 演示应用程序的主要内容,如果未能解决你的问题,请参考以下文章

Phonertc 演示仅在通话开始时显示空白屏幕

离子中的PhoneRTC

Cordova phonertc 演示可在 android 上运行,但不能在浏览器上运行

phonertc 未定义 - 浏览器上的 Cordova phonertc

android 6 中的语音演示崩溃

在为 iOS 编译语音演示应用程序时,是不是有人遇到 Xcode 构建错误?