Gonzalo Gasca Meza
Community Member

‎11-25-2013 09:46 AM
  • Subscribe to RSS Feed
  • Mark as New
  • Mark as Read
  • Bookmark
  • Subscribe
  • Email to a Friend
  • Printer Friendly Page
  • Report Inappropriate Content

‎11-25-2013 09:46 AM

The following document will help you connect your Web Browser to an existing Video or Audio System. This demo describes the steps needed to connect a WebRTC capable Web Browser, (Google Chrome, Google Chrome Canary, FireFox, FireFox Nightly) to an existing Audio and Video system (Cisco TelePresence Server, McuWeb, Cisco Codian MCU.)

The components used in this demo are:

  • Google Chrome Canary
  • Telestax (WebSockets application)
  • Telestax Sip Servlet (Opencall B2BUA)
  • Doubango sipML5 client (customized)
  • Doubango webrtc2sip (Media converter VP8 to H.264)

Components

Version

Google Chrome Canary

33 canary

Mobicents

mss-2.0.0.FINAL-jboss-as-7.1.2.Final

Opencall sip servlet B2BUA

opencall-1.1.0-BELADOR

WebSockets sip servlet

websockets-sip-servlet-2.1.0-20121108.113957-1

Doubango   webrtc2sip

webrtc2sip 2.6.0

Doubango   sipML5

sipML5   Doubango version 203

Architecture

By using Doubango SipML5 we utilize HTML5 SIP client entirely written in JavaScript. The client is used to connect to any SIP or IMS network from WebRTC-capable browser to make and receive audio/video calls. This SIP client registers to Telestax WebSockets Sip Servlet via WebSockets protocol that runs on top of Mobicents Server. For more information please review TeleStax:

https://code.google.com/p/sipservlets/wiki/HTML5WebRTCVideoApplication

Usage

In order to dial from your web browser you have two options:

  • Utilize pre-defined parameters (Demo system)
  • Configure your own parameters and dial to any public or local SIP URI

Utilize pre-defined parameters (Demo system)

No need to deploy any component, you will be using pre-deployed systems in Amazon AWS.

1) Access:

http://webrtc.ramennetworks.com/

2) Configure parameters

Parameter

Description

Recommended value

Display   Name:

Caller Name

Chrome

Private   Identity*:

Calling number

+14082221000

Public   Identity*:

From URI

sip:+14082221000@opencall.org

Enable Interop

Enable H.264 support

Enable

This modified HTML page is already configured to use Amazon AWS servers. You can enable Developer mode JavaScript console view in Web Browser to see values.

sipRegister() (index):353

s_websocket_server_url=ws://webrtc2sip.ramennetworks.com:5062 tsk_utils.js?svn=20:116

s_sip_outboundproxy_url=tcp://172.31.46.56:5060 tsk_utils.js?svn=20:116

b_rtcweb_breaker_enabled=yes

3) Login

4) Dial number

You can use any valid SIP URI. Example:  22223333@videolab.att.com,testcall@video.att.com

Configure your own parameters and servers and dial to any public or local SIP URI

Access via HTTP the following page:

http://sipml5.org/index.html

From there click on Enjoy our live demo.

Parameter

Description

Recommended value

Display   Name:

Caller Name

Chrome

Private   Identity*:

Calling number

+14082221000

Public   Identity*:

From URI

sip:+14082221000@opencall.org

Password:

Password

14082221000

Realm*:

Domain

172.31.46.56

If you want to enable H.264 codec you need to go to expert mode and enter the following:

Parameter

Description

Recommended value

Enable RTCWeb Breaker

Enables webrtc2sip utilization

Enabled

WebSocket Server URL

webrtc2sip server

ws://webrtc2sip.ramennetworks.com:5062

SIP outbound Proxy URL

mobicents websockets sip servlet

tcp://172.31.46.56:5060

Deploying

The following table describes the steps necessary steps to deploy this system:

Components Deployments steps
Google Chrome Canary Install
Mobicents Download, Install, Configure
Opencall Download, Configure, Deploy
WebSockets   Sip Servlet Download,   Deploy
Doubango webrtc2sip Download, Install, Configure
Doubango   sipML5 Configure

Installation

Google Chrome installation

  • Download and Install Google Chrome

https://www.google.com/intl/en/chrome/browser/

Mobicents installation

  • Download Mobicents 2.0 Jboss

http://sourceforge.net/projects/mobicents/files/Mobicents%20Sip%20Servlets/

  • Extract Mobicents file

mss-2.0.0.FINAL-jboss-as-7.1.2.Final-1349104459.zip

  • Download configuration file standalone-sip.xml

http://github.com/spicyramen/opencall/blob/Development/config/standalone-sip.xml

Move standalone-sip.xml file to this director:

mss-2.0.0.FINAL-jboss-as-7.1.2.Final/bin and

mss-2.0.0.FINAL-jboss-as-7.1.2.Final/standalone/configuration

  • Obtain local system information

Obtain local IP address information and define which NIC system will be using ifconfig

Example:

ifconfig

lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384            options=3<RXCSUM,TXCSUM>            inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1            inet 127.0.0.1 netmask 0xff000000            inet6 ::1 prefixlen 128gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280stf0: flags=0<> mtu 1280en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500            ether 20:c9:d0:42:af:7d            inet6 fe80::22c9:d0ff:fe42:af7d%en0 prefixlen 64 scopeid 0x4

inet 192.168.1.69

netmask 0xffffff00 broadcast 192.168.1.255            media: autoselect            status: activep2p0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 2304            ether 02:c9:d0:42:af:7d            media: autoselect            status: inactive

  • Verify iptables or firewall is open for ports 5060,5061 and 5062.
  • Start Mobicents server

Go to the following folder in order to start Mobicents server:

mss-2.0.0.FINAL-jboss-as-7.1.2.Final/bin

  • Run the command:

./standalone.sh -b 192.168.1.69 -c standalone-sip.xml &

Opencall Installation

  • Download Opencall  war file

https://github.com/spicyramen/opencall/blob/Development/target/opencall-1.1.0-BELADOR.war

  • Create Opencall folder

Create opencall folder in mss-2.0.0.FINAL-jboss-as-7.1.2.Final/standalone/configuration

Example:

mkdir mss-2.0.0.FINAL-jboss-as-7.1.2.Final/standalone/configuration/opencall

  • Download and configure Opencall server init file (opencall.ini)

https://github.com/spicyramen/opencall/blob/Development/config/opencall.ini

Configure proper file location inside Opencall.ini define path for Opencall server routing rules.

MODE=1

RULE_LIMIT=100

FILELOCATION=/Users/gogasca/Documents/OpenSource/Development/Java/Mobicents/mss-2.0.0.FINAL-jboss-as-7.1.2.Final/standalone/configuration/Opencall/Opencallrules.cfg

  • Download and configure Opencall server call routing rules

https://github.com/spicyramen/opencall/blob/Development/config/opencallrules.cfg

  • Deploy opencall war file

Move Opencall war file to the Mobicents deployment folder:

mss-2.0.0.FINAL-jboss-as-7.1.2.Final/standalone/deployments

Verify Opencall war is deployed successfully, verify Opencall log and server log file in log folder: the Opencall log file is named: Opencall-engine.log, server log is server.log

Example:

  • Server

21:55:33,724 INFO  [org.jboss.as.server] (ServerService Thread Pool -- 29) JBAS018559: Deployed "

opencall-1.1.0-BELADOR.war.deployed"

  • Opencall log

16:10:32.095 INFO  [Opencall] [Thread-160] | Opencall engine has started succesfully.

  • Deployment folder

opencall-1.1.0-BELADOR.war.deployed

WebSockets Installation

  • Download Websockets war file*

http://repo1.maven.org/maven2/org/mobicents/servlet/sip/examples/websockets-sip-servlet/2.0.0.FINAL/websockets-sip-servlet-2.0.0.FINAL.war

*File may be already included in Mobicents zip file, so this instruction may not be required.

  • Deploy WebSockets war file

Move Opencall war file to the Mobicents deployment folder:

mss-2.0.0.FINAL-jboss-as-7.1.2.Final/standalone/deployments

Verify Websockets war is deployed successfully, verify server log file in log folder: the server log file is named: server.log

  • Server

21:55:33,723 INFO  [org.jboss.as.server] (ServerService Thread Pool -- 29) JBAS018559: Deployed "websockets-sip-servlet-2.1.0-20121108.113957-1.war"

  • Deployment folder

websockets-sip-servlet-2.1.0-20121108.113957-1.war.deployed

Webrtc2sip Installation

Follow the instructions described here, if you want to enable media conversion:

You have the option to install from source or install the packages:

http://autostatic.com/installing-webrtc2sip-on-ubuntu-1204#building_from_source

Configuration

Mobicents configuration

For Mobicents please make sure you configure configuration file properly.

Configure your Default Application Router Configuration and define the proper Application Name.

INVITE:            Opencall

REGISTER:     WebSockets

Opencall configuration

Configure opencall.ini and define the initial system configuration settings

Configure opencall.ini and define the System Routing rules in order to connect Mobicents to your external system.

Opencall System Configuration

Opencall server will look for opencall.ini located:

mss-2.0.0.FINAL-jboss-as-7.1.2.Final/bin and mss-2.0.0.FINAL-jboss-as-7.1.2.Final/standalone/configuration/opencall in order to start succesfully

opencall.ini

MODE

1 - LOCAL FILE

2 - DB (MYSQL DB)

3 - LOCAL RULES (BUILT-IN) (Not implemented)

DB TYPE

DB TYPE

1 - MYSQL                                         TODO

2 - MONGO DB                                  TODO

3 - MICROSOFT SQL SERVER           TODO

MODE 1 must have FILEROUTINGRULES

MODE 2 must have DBTYPE,DBHOSTNAME,DBPORT,DBNAME,DBUSERNAME and DBPASSWORD

MODE 3 does not need any parameters (Not implemented)

Example:

MODE=1

RULE_LIMIT=100

CALLTRANSFORMS=/usr/local/src/mobicents/mss-2.0.0.FINAL-jboss-as-7.1.2.Final/standalone/configuration/opencall/opencalltransforms.cfg

CALLRULES=/usr/local/src/mobicents/mss-2.0.0.FINAL-jboss-as-7.1.2.Final/standalone/configuration/opencall/opencallrules.cfg

CALLROUTELIST=/usr/local/src/mobicents/mss-2.0.0.FINAL-jboss-as-7.1.2.Final/standalone/configuration/opencall/opencallroutelists.cfg

DBTYPE=1

DBHOSTNAME=localhost

DBPORT=3306

DBNAME=opencall

DBUSERNAME=root

DBPASSWORD=

Opencall Route Configuration

Opencall have the option to read call routing rules from a configuration file or from a MySQL DB.

This document describes how to configure opencallrules.cfg to provide call routing rules in order to connect to your system.

Mandatory parameters:

RULE      = NUMERIC

PRIORITY  = NUMERIC

TYPE      = REGEX,  WILDCARD, NUMERIC

STRING    = VALUE

TARGET    = IP ADDRESS, HOSTNAME, _DNS_, ROUTELIST

Optional


PORT and TRANSPORT is not configurable when using _DNS_ lookup

PORT and TRANSPORT is not configurable when using RouteList, you can define parameters there.

Rule Entries Order

RULE NUMBER,RULE PRIORITY, RULE TYPE, MATCH STRING,TARGET, PORT TARGET, TRANSPORT

Example:

ROUTE=("1","10","NUMERIC","14082186000","110.10.0.210","5060","UDP")

ROUTE=("2","5","REGEX","(.*)@videolab.att.com","_DNS_")

ROUTE=("3","10","NUMERIC","201","172.31.43.74","5060","TCP")

ROUTE=("4","10","WILDCARD","20X","172.31.43.74","TCP")

ROUTE=("5","10","WILDCARD","10X","110.10.0.200")

ROUTE=("6","10","WILDCARD","XXXXXXXX","videoalpha.att.com")

ROUTE=("7","10","WILDCARD","XXXXXXXX","videolab.att.com","WSS")

ROUTE=("8","100","WILDCARD","20X","110.10.0.210","5060")

ROUTE=("9","50","WILDCARD","0115255!","110.10.0.200","5060")

ROUTE=("10","50","WILDCARD","0115233!","110.10.0.200","5060")

ROUTE=("11","1","NUMERIC","+525553259000","110.10.0.200","5060")

ROUTE=("12","1","WILDCARD","4XX","110.10.0.220","5060")

ROUTE=("13","100","REGEX","(.*)@.*","_DNS_")

ROUTE=("14","5","REGEX","(.*)@videolab.att.com","_DNS_","5061")

ROUTE=("15","5","REGEX","(.*)@videolab.att.com","_DNS_","TCP")

ROUTE=("16","100","REGEX","(.*)@videolab.att.com","12.5.4.3","TCP")

  • Verify Opencall war file is deployed successfully.

$ pwd

/Users/gogasca/Documents/OpenSource/Development/Java/Mobicents/mss-2.0.0.FINAL-jboss-as-7.1.2.Final/standalone/deployments

$ ls -al

-rw-r--r-- 1 root root      11 Feb 28  2013 jolokia.war.deployed

-rw-r--r-- 1 root root 1169838 Nov  6 07:58 opencall-1.1.0-BELADOR.war

-rw-r--r-- 1 root root      26 Nov  6 07:58 opencall-1.1.0-BELADOR.war.deployed

-rw-r--r-- 1 root root    8870 Jul 16 22:33 README.txt

-rw-rw-r-- 1 root root  408732 Nov  6 00:37 sip-servlets-management.war

-rw-r--r-- 1 root root      27 Nov  6 00:37 sip-servlets-management.war.deployed

-rw-rw-r-- 1 root root  649785 Nov  6 00:35 websockets-sip-servlet.war

-rw-r--r-- 1 root root      26 Nov  6 00:35 websockets-sip-servlet.war.deployed

WebSockets configuration

  • After verifying websockets war file is deployed successfully, you can proceed to configure sipML5

$ pwd

/usr/local/src/mobicents/mss-2.0.0.FINAL-jboss-as-7.1.2.Final/standalone/deployments

$ ls -al

-rw-r--r-- 1 root root      11 Feb 28  2013 jolokia.war.deployed

-rw-r--r-- 1 root root 1169838 Nov  6 07:58 opencall-1.1.0-BELADOR.war

-rw-r--r-- 1 root root      26 Nov  6 07:58 opencall-1.1.0-BELADOR.war.deployed

-rw-r--r-- 1 root root    8870 Jul 16 22:33 README.txt

-rw-rw-r-- 1 root root  408732 Nov  6 00:37 sip-servlets-management.war

-rw-r--r-- 1 root root      27 Nov  6 00:37 sip-servlets-management.war.deployed

-rw-rw-r-- 1 root root  649785 Nov  6 00:35 websockets-sip-servlet.war

-rw-r--r-- 1 root root      26 Nov  6 00:35 websockets-sip-servlet.war.deployed

Chrome configuration

  • Open Chrome and verify you have network connectivity to Internet and local server where Opencall is running.

SipML5 configuration

The live demo doesn't require any installation and can be used to connect to any SIP server using UDP, TCP or TLS transports. Open the following URL and start provisioning information. Open the following URL:

http://sipml5.org/call.htm

  • Tags:
  • h264
  • html5
  • opensource
  • sip
  • telepresence
  • vp8
  • webrtc

10 Helpful
Share

  • Back
  • Previous
  • Next
2 Comments
ivelin117
Community Member

‎08-14-2014 01:52 PM
  • Mark as Read
  • Mark as New
  • Bookmark
  • Permalink
  • Print
  • Email to a Friend
  • Report Inappropriate Content

‎08-14-2014 01:52 PM

Great article. Since the original post, Telestax and Orange developed and published an open source WebRTC browser client framework, which integrates tightly with the server side components.

https://code.google.com/p/webrtcomm/

The popular jain-sip library that's used on the server side is now fully ported to Java Script and supported. We also introduced a web developer friendly API, which hides much of the low level APIs that require VoIP expertise.

Here is a blog post with the latest WebRTC frameworks from Telestax in action.

http://www.telestax.com/livechat-and-video-call-with-restcomm/

Ivelin

0 Helpful

ivelin117
Community Member

‎05-28-2015 07:58 PM
  • Mark as Read
  • Mark as New
  • Bookmark
  • Permalink
  • Print
  • Email to a Friend
  • Report Inappropriate Content

‎05-28-2015 07:58 PM

Update on the Open Source project used in this blog. Restcomm 7.3 , which builds on SIP Servlets, now includes client side and server side WebRTC components that work together and provide a smooth turn-key end user experience. Suitable for private and public cloud deployments.

A couple of related resources:

http://www.telestax.com/restcomm-7-3-0-is-here/

http://www.telestax.com/enterprise-webrtc-call-center-for-banking-and-finance-with-restcomm/

Ivelin

Webrtc demo system相关推荐

  1. 在 SAP Gateway Demo System ES5 申请用户遇到问题该怎么处理

    有朋友试图使用下面的链接,申请 SAP ES5 即 SAP Gateway Demo 服务器的用户时,遇到一些问题. 点击注册链接之后,直接跳转到上图的登录页面了: https://register. ...

  2. 可以公开访问的 SAP gateway demo system ES5/002

    SAP gateway demo system,给 SAP 开发人员提供了可以 free 使用的 OData 服务,用来学习 SAP Fiori 和 SAP Fiori Elements 相关的开发. ...

  3. WebRTC 聊天Demo

    我想大部分人应该都还记得"你好Chrome,火狐正在呼叫!"的博客和Demo,向大家展示了在火狐和Chrome中进行WebRTC视频聊天,获得了很多朋友的注意.从那开始,Fresh ...

  4. WebRTC学习与DEMO资源一览

    一. WebRTC学习 1.1   WebRTC现状 本人最早接触WebRTC是在2011年底, 那时Google已经在Android源码中加入了webrtc源码,放在/external/webrtc ...

  5. WebRTC学习笔记

    http://blog.chinaunix.net/uid-24567872-id-3961702.html 1.     WebRTC学习 1.1   WebRTC现状 本人最早接触WebRTC是在 ...

  6. System类的常用方法及类字段

    System 类包含一些有用的类字段和方法.它不能被实例化. 成员方法 static void arraycopy(Object src, int srcPos, Object dest, int d ...

  7. Android IOS WebRTC 音视频开发总结(六二)-- 大数据解密国外实时通讯行业开发现状...

    Android IOS WebRTC 音视频开发总结(六二)-- 大数据解密国外实时通讯行业开发现状 本文主要介绍国外实时通讯行业现状,文章最早发表在我们的微信公众号上,详见这里,欢迎关注微信公众号b ...

  8. system类的 静态方法可以启动垃圾回收器。_跟小伟一起学习类加载机制

    我们在学习 java 基础的时候,从宏观上了解了一个类到运行大致是:.java文件通过javac编译器编译得到.class文件,在用到该类时,jvm 会加载该 class 文件,并创建对应的 clas ...

  9. Linux 部署ASP.NET SQLite 应用 的坎坷之旅 附demo及源码

    Linux 部署ASP.NET SQLite 应用 的坎坷之旅.文章底部 附示例代码. 有一台闲置的Linux VPS,尝试着部署一下.NET 程序,结果就踏上了坑之路,不过最后算是完美解决问题,遂记 ...

  10. WebRTC音视频采集和播放示例及MediaStream媒体流解析

    WebRTC音视频采集和播放示例及MediaStream媒体流解析 目录 示例代码--同时打开摄像头和麦克风,并在页面显示画面和播放捕获的声音 API解析 mediaDevices MediaStre ...

最新文章

  1. eclipse新建python文件夹_eclipse 如何创建python文件
  2. 如何设计一个短URL地址系统
  3. android9 system_server 访问sd卡_Leez学院丨手把手教你栗子板Android9固件编译
  4. 【NOIP2015】【Luogu2669】金币(模拟)
  5. 计算机机房使用多大的光纤引入,弱电施工如何确定光纤使用的芯数
  6. 知云文献翻译选中翻译出现乱码的解决方式
  7. 滚动时RecyclerView对ViewHolder的缓存与复用
  8. 一些国外学位论文和期刊下载链接
  9. java怎么把html转换成word,java 怎么把html 转换成Word
  10. rep的软件用什么打开_rep文件用什么软件打开
  11. 不知道rar压缩包密码可以解密么,rar压缩包有密码怎么解开?
  12. kdc服务器密码修改,kerberos之kdc主备
  13. JDK8中Lambda 表达式语法糖脱糖[非原创]
  14. 《麦田里的守望者》--[美]杰罗姆·大卫·塞林格
  15. 用python编写猜拳游戏
  16. SQL消费表中查找所有用户最后一条消费记录
  17. 装的机械硬盘计算机里没有反应,固态硬盘和机械硬盘运行打开我的计算机图标,有时候读取没有响应,单独用固态硬盘是没问题的 ,机械硬盘也测试了,没有坏道什么的,始终找不到原因...
  18. 【PBR系列七】基于物理的环境光照(下):镜面反射 IBL(Specular IBL)
  19. cout保留两位小数位
  20. Quaternion to angular velocity. 四元数 角速度

热门文章

  1. 操作Visual Studio 2010中的SQL Server数据库比较工具
  2. 了解和熟悉数据库相关知识
  3. PropertyChangeSupport 监听器模式的应用
  4. Unity加载模块深度解析(网格篇)
  5. 帆软报表学习笔记②——行转列
  6. 如何将一个String和多个String值进行比较
  7. MapXtreme2004的Web选择控件(三)
  8. mysql中表示金钱的类型
  9. 关于 Java 的强制类型转换
  10. C++ STL算法系列5---equal() , mismatch()