who likes to contribute funds to backport webRTC to ast 1.4?

Discussions about development of VICIDIAL and astGUIclient

Moderators: gerski, enjay, williamconley, Op3r, Staydog, gardo, mflorell, MJCoate, mcargile, Kumba, Michael_N

who likes to contribute funds to backport webRTC to ast 1.4?

Postby bobbymc » Mon Jan 14, 2013 3:58 pm

im looking to hire a outside contractor to backport webRTC to asterisk 1.4/1.8 to use sipml5 as a replacement for all these java soft phones out there. this will not only lessen the user load but also removed all these JAVA security issues that are caused all the time by javas lack of proper coding. like the past couple of days i had to help tons of agents because firefox blocked java due to their security issue. if anybody shares this same issue or likes to help contribute to this project please post here so we can as a group help eachother.

matt any input of yours is always greatly appreciated
bobbymc
 
Posts: 425
Joined: Fri Jan 05, 2007 12:26 am

Re: who likes to contribute funds to backport webRTC to ast

Postby mflorell » Mon Jan 14, 2013 4:35 pm

Our early tests with webRTC were not promising, but it's an early technology, and I expect support and reliability of long phonecalls to get better as the technology matures.

We have many clients on Zoiper webphone, which is not java-based, and it has worked very well for them for the last two years. The only problem with Zoiper web is that it is windows-only, but only a very small portion of our client based uses non-windows agent stations.
mflorell
Site Admin
 
Posts: 18383
Joined: Wed Jun 07, 2006 2:45 pm
Location: Florida

Re: who likes to contribute funds to backport webRTC to ast

Postby ZoVoS » Mon Jan 14, 2013 11:55 pm

That will be one of my next projects, if I'm done before you are (and the other director clears it) ill post it.
ZoVoS
 
Posts: 58
Joined: Fri Aug 17, 2012 11:07 am

Re: who likes to contribute funds to backport webRTC to ast

Postby bobbymc » Tue Jan 15, 2013 4:28 pm

great guys =) either way once i have a finished code i will publish it here for everyone to use =) will keep you guys updated
bobbymc
 
Posts: 425
Joined: Fri Jan 05, 2007 12:26 am

Re: who likes to contribute funds to backport webRTC to ast

Postby williamconley » Tue Jan 15, 2013 7:46 pm

But do be careful how much you put into this. The Vicidial Group has been working on Asterisk 1.8 for a while. I'm sure it won't be done tomorrow, but when it does complete ... any backports to 1.4 could suddenly become obsolete ... :)
Vicidial Installation and Repair, plus Hosting and Colocation
Newest Product: Vicidial Agent Only Beep - Beta
http://www.PoundTeam.com # 352-269-0000 # +44(203) 769-2294
williamconley
 
Posts: 20253
Joined: Wed Oct 31, 2007 4:17 pm
Location: Davenport, FL (By Disney!)

Re: who likes to contribute funds to backport webRTC to ast

Postby Noah » Fri Oct 03, 2014 12:14 pm

Hi All Vici / WebRTC hopefuls - Installed tested and working webrtc2sip with no asterisk patching
(Next step is adding sipml5 api into agent either direct embed or via web phone feature )
Contribution of this instruction is in hopes that someone will help pickup the javascript pieces for loading the web phone on login.

Preface:
---------------------------------------------------------------------------------------------------------------------------------------------------
Needed and Wanted html 5 webphone / WebRTC, not java, not active x, not flash based phone.
Wanted to keep 1.8.29.0-vici asterisk unchanged for performance and stability.
The main purpose for us was to get to a web phone app where agents could nail up voice on login, and not necessarily to use the web phone for general outbound calling, again to use it for the purpose of nailed up voice on agent login.

Version installed and tested with:
ViciBox Redux v.5.0.2-130821 (zypper up && zypper refresh to grab the latest svn during vicibox-install)
1.8.29.0-vici asterisk
(Standard Install)
Install and testing was done to an external ip vicibox with 1 to 1 natting and appropriate iptables firewalling
Tested with latest version of chrome on WinXP
Tested with a Chromebook (fantastic)
Tested with latest version of Firefox on WinXP

(since this is a javascript implementation and html 5 this should work theoretically on any device and browser that supports html5 and WebRTC)

Summary of findings and some narrative:
---------------------------------------------------------------------------------------------------------------------------------------------------
Webrtc2sip will act as a gateway to asterisk converting websocket connections and handing off SDP instruction to any version of asterisk.
Asterisk does not need to be modified patched or otherwise changed from a source code perspective. Some adjustments to .conf are helpful.
Upon testing, have not seen an increase in load on the server, no voice degradation.
The key here is don't trans-code. No trans-coding = low load / no load. Use ulaw or you can compile the gateway with g729 if you need to and have g729 compiled and loaded our your vici asterisk flavor.

With the advent of DTLS and SRTP (Forced in the new versions of Chrome and Firefox) - the gateway handshakes these secure protocols with the WEBRTC request, and hands off the SDP to asterisk for a connection and voice delivery.

The settings for the webphone are instructions to let the gateway know where to hand off the SDP.
Again the gateway doesn't need to be installed with any codecs if you are using ulaw, just ssl and srtp

Instruction to setup gateway:
---------------------------------------------------------------------------------------------------------------------------------------------------
Below is a simple set of instructions to get you started:
Most of the instructions or guidance came from the doubango wiki and a credits to resource I found to be very helpful navaismo
wiki/Building_Source_v2_0
and this guys read on the install was helpful
build-and-install-doubango-webrtc2sip/


This short guide is for vicidial with PCMU codec and just voice no video using doubango and webrtc2sip gateway.

Do this first:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib


cd /usr/src follow the instructions below
1. svn checkout http://doubango.googlecode.com/svn/ doubango-source
2. svn checkout http://webrtc2sip.googlecode.com/svn/trunk/ webrtc2sip
3. Make note that you will be using branch 2.0 for doubango-source

4. Add using yast or "zypper in" and add the tools that are needed (Make sure all these are added)

sudo yum install make libtool autoconf subversion git cvs wget libogg-devel gcc gcc-c++
pkgconfig libxml2-devel

Building libsrtp
libsrtp is required (this repo just recently changed 10-2-14)
5.
git config --global http.sslVerify false
(set this flag above temporarily if you don’t wan to load certs for git)
git clone https://github.com/cisco/libsrtp/
cd libsrtp
CFLAGS=-fPIC ./configure --enable-pic && make && make install
make runtest

6. OpenSSL is probably installed on vicibox but source is not in the right path for Doubango ./configure process

Building OpenSSL
OpenSSL is required if you want to use the RTCWeb Breaker module or Secure WebSocket transport (WSS). OpenSSL version 1.0.1 is required if you want support for DTLS-SRTP.

openssl version if you are above 1.0.1 (great but you need source files)
To build OpenSSL: (We used the version below for install and testing I'm sure later versions will work just fine 1.0.1e )

wget http://www.openssl.org/source/openssl-1.0.1c.tar.gz
tar -xvzf openssl-1.0.1c.tar.gz
cd openssl-1.0.1c
./config shared --prefix=/usr/local --openssldir=/usr/local/openssl && make && make install

7. You have to build a self signed cert for the secure handshake (realm is asterisk)
http://codeghar.wordpress.com/2013/04/1 ... -on-linux/
http://codeghar.wordpress.com/2013/04/1 ... -on-linux/
http://codeghar.wordpress.com/2013/04/1 ... -on-linux/

Some of these steps are in the tutorials above
mkdir -p /home/cg/myca && cd /home/cg/myca && mkdir private certs newcerts conf export csr
mkdir -p /home/cg/mycert && cd /home/cg/mycert && mkdir private conf csr

copy in certs and self signed
cd /home/cg/mycert/private copy in key.csr.server1.pem
cd /home/cg/myca/certs copy in crt.ca.cg.pem and crt.server1.pem

8. This is where you can add other flags to build doubango with different codecs for voice and video. Also with -with flag can be changed to provide source to packages like openssl (already installed with vici isos) You need source files uncomplied from what I’ve gathered.
(the doubango ./configure is going to be looking for your flagged add ons here /usr/local unless you specify path: example -with-ssl=PATH -with-srtp=PATH )
export LDFLAGS="$LDFLAGS -ldl"

cd /usr/src/doubango-source/branches/2.0/doubango && ./autogen.sh && ./configure -with-ssl -with-srtp
make && make install
(if you got errors don't continue, figure it out before moving on past this point)

9.
export PREFIX=/opt/webrtc2sip
export LDFLAGS="$LDFLAGS -ldl"

cd /usr/src/webrtc2sip && ./autogen.sh && CFLAGS='-lpthread' ./configure -prefix=$PREFIX -with-doubango=/usr/local

make clean && make -ldl -lpthread && make install

cp -f ./config.xml $PREFIX/sbin/config.xml
edit config.xml - the edit is below

WEBRTC2SIP CONFIG.XML

<?xml version="1.0" encoding="utf-8" ?>
<!-- Please check the technical guide (http://webrtc2sip.org/technical-guide-1.0.pdf) for more information on how to adjust this file -->
<config>

<debug-level>INFO</debug-level>

<transport>udp;*;10060</transport>
<transport>ws;*;10060</transport>
<transport>wss;*;10062</transport>
<!--transport>tcp;*;10063</transport-->
<!--transport>tls;*;10064</transport-->

<enable-rtp-symetric>yes</enable-rtp-symetric>
<enable-100rel>no</enable-100rel>
<enable-media-coder>yes</enable-media-coder>
<enable-videojb>yes</enable-videojb>
<video-size-pref>vga</video-size-pref>
<rtp-buffsize>65535</rtp-buffsize>
<avpf-tail-length>100;400</avpf-tail-length>
<srtp-mode>optional</srtp-mode>
<srtp-type>dtls</srtp-type>
<dtmf-type>rfc4733</dtmf-type>

<codecs>pcmu</codecs>
<codec-opus-maxrates>48000;48000</codec-opus-maxrates>
<!--unused codecs opus;pcma;gsm;vp8;h264-bp;h264-mp;h263;h263+ -->

<!--<stun-server>stun.l.google.com;19302;stun-user@doubango.org;stun-password</stun-server>
<enable-icestun>yes</enable-icestun>

<max-fds>-1</max-fds>
-->
<nameserver>8.8.8.8</nameserver>

<ssl-certificates>
/home/cg/mycert/private/key.csr.server1.pem;
/home/cg/myca/certs/crt.server1.pem;
*;
no
</ssl-certificates>

<!-- ***CLICK-TO-CALL SERVICE*** -->

<transport>c2c;*;10070</transport>
<transport>c2cs;*;10072</transport>
<database>sqlite;*</database>
<!--account-mail>smtps;*;*;auth.smtp.1and1.fr;465;noreply@example.com;noreply@example.com;mysecret</account-mail-->
<!--account-sip-caller>*;sip:a@example.com;a;example.com;mysecret</account-sip-caller-->

</config>

10.

PATH=$PATH:/opt/webrtc2sip/sbin
To run the gateway change the config.xml to INFO vs Error for more verbose debug
webrtc2sip --config=/opt/webrtc2sip/sbin/config.xml


sip.conf changes:
realm=asterisk ; Realm for digest authentication
bindaddr=0.0.0.0 ; IP address to bind to (0.0.0.0 binds to all)

Conf extensions custom for the phone through the web admin interface for vici
type=friend
secret=*****
context=default
host=dynamic
disallow=all
allow=all
videosupport=no
qualify=yes (or no either worked fine I suspect yes will keep ports open on firewalls if you have short timers)
callerid="wrtc" <777>
nat=no

11.
Login to sipml5.org/call.htm with setting guidance below:
sipml5 web phone settings
Display Name: 777
Private Identity*: 777
Public Identity*: sip:777@lan side ip of the asterisk
Password: ******
Realm*: asterisk

Expert Mode:
Disable Video: Check
Enable RTCWeb Breaker[1]: Check
WebSocket Server URL[2]: ws://externalip or dns name:10060
SIP outbound Proxy URL[3]:udp://lan side of the asterisk (for making a call out of the web phone)

The web phone should prompt for allow mic and then you'll need to click the answer button. Wa LA


How to create a service to start webrtc2sip
------------------------------------------------------------
1. First dupliacate cron.service in /usr/lib/systemd/system
# cp /usr/lib/systemd/system/cron.service /usr/lib/systemd/system/webrtc.service

2. Create a Link
# ln -s usr/lib/systemd/system/wertc2sip.service /etc/systemd/system/multi-user.target.wants/wertc2sip.service

3. nano vi or your flavor /usr/lib/systemd/system/webrtc.service
edit the [Service] section to this:
ExecStart=/opt/webrtc2sip/sbin/webrtc2sip --config=/opt/webrtc2sip/sbin/config.xml


4. Start to confirm
# systemctl start webrtc2sip

5. Confirm with:
# service webrtc2sip status

IF it's running that's a good sign.
If it's not running check your steps above for correctness or adjustments to your linux enviornment

6. Reboot
# reboot

7. To confirm then check after reboot

# service webrtc2sip status
Last edited by Noah on Tue Oct 07, 2014 8:31 pm, edited 3 times in total.
MyCallCloud.com - Cool Vici Customizations - Hosted - Configured - Supported
Web: https://mycallcloud.com
P: 888-663-0760
E: sales@mycallcloud.com
Noah
 
Posts: 90
Joined: Tue Feb 08, 2011 7:14 pm

Re: who likes to contribute funds to backport webRTC to ast

Postby bobbymc » Fri Oct 03, 2014 12:29 pm

Nice post, is it stable ? Does hold and other features work ?
bobbymc
 
Posts: 425
Joined: Fri Jan 05, 2007 12:26 am

Re: who likes to contribute funds to backport webRTC to ast

Postby Noah » Fri Oct 03, 2014 5:00 pm

DTMF works
Hold and Transfer do not work (I'm removing those buttons from the front end)
The purpose of the phone is for agent side voice nail up with no client install required.

Looks like we'll have the implementation for the web phone published in the next couple days.
MyCallCloud.com - Cool Vici Customizations - Hosted - Configured - Supported
Web: https://mycallcloud.com
P: 888-663-0760
E: sales@mycallcloud.com
Noah
 
Posts: 90
Joined: Tue Feb 08, 2011 7:14 pm

Re: who likes to contribute funds to backport webRTC to ast

Postby Noah » Mon Feb 02, 2015 6:30 pm

Stable WebRTC implementation notes completed.

viewtopic.php?f=2&t=33571
MyCallCloud.com - Cool Vici Customizations - Hosted - Configured - Supported
Web: https://mycallcloud.com
P: 888-663-0760
E: sales@mycallcloud.com
Noah
 
Posts: 90
Joined: Tue Feb 08, 2011 7:14 pm

Re: who likes to contribute funds to backport webRTC to ast

Postby bobbymc » Mon Feb 02, 2015 6:34 pm

Are the instructions the same or are there updates to the setup so I can test ?
bobbymc
 
Posts: 425
Joined: Fri Jan 05, 2007 12:26 am

Re: who likes to contribute funds to backport webRTC to ast

Postby udfxrookie » Sun Jan 03, 2016 9:58 pm

Following, any updates aside from using latest openssl version?
Vicibox 6.0.2 from Vicibox_v.6.0.x86_64-6.0.2.iso | Vicidial 2.10-452n build: 14111-0554 | Asterisk 1.8.31.0-vici | 1 AIO Setup Helping local companies startup www.AKAMarketing.net
udfxrookie
 
Posts: 178
Joined: Thu Dec 10, 2009 9:42 am
Location: Florida

Re: who likes to contribute funds to backport webRTC to ast

Postby udfxrookie » Sun Jan 03, 2016 11:24 pm

Here's where I'm stuck a bit:
How to create a service to start webrtc2sip
------------------------------------------------------------
1. First dupliacate cron.service in /usr/lib/systemd/system
# cp /usr/lib/systemd/system/cron.service /usr/lib/systemd/system/webrtc.service

2. Create a Link
# ln -s usr/lib/systemd/system/wertc2sip.service /etc/systemd/system/multi-user.target.wants/wertc2sip.service

3. nano vi or your flavor /usr/lib/systemd/system/webrtc.service
edit the [Service] section to this:
ExecStart=/opt/webrtc2sip/sbin/webrtc2sip --config=/opt/webrtc2sip/sbin/config.xml


4. Start to confirm
# systemctl start webrtc2sip


and get :
Code: Select all
Failed to issue method call: Unit webrtc2sip.service failed to load: No such file or directory.


Everything command in the step went smooth until I tried starting the service.
Vicibox 6.0.2 from Vicibox_v.6.0.x86_64-6.0.2.iso | Vicidial 2.10-452n build: 14111-0554 | Asterisk 1.8.31.0-vici | 1 AIO Setup Helping local companies startup www.AKAMarketing.net
udfxrookie
 
Posts: 178
Joined: Thu Dec 10, 2009 9:42 am
Location: Florida

Re: who likes to contribute funds to backport webRTC to ast

Postby udfxrookie » Mon Jan 04, 2016 12:09 am

fixed it part 3 was a bit different in the online doc
Vicibox 6.0.2 from Vicibox_v.6.0.x86_64-6.0.2.iso | Vicidial 2.10-452n build: 14111-0554 | Asterisk 1.8.31.0-vici | 1 AIO Setup Helping local companies startup www.AKAMarketing.net
udfxrookie
 
Posts: 178
Joined: Thu Dec 10, 2009 9:42 am
Location: Florida

Re: who likes to contribute funds to backport webRTC to ast

Postby Noah » Sun Jan 24, 2016 7:15 am

Updated installation procedure on github
Added the ssl components necessary now due to the Chrome and Firefox Changes.
https://github.com/noahseis/webrtc2sip
MyCallCloud.com - Cool Vici Customizations - Hosted - Configured - Supported
Web: https://mycallcloud.com
P: 888-663-0760
E: sales@mycallcloud.com
Noah
 
Posts: 90
Joined: Tue Feb 08, 2011 7:14 pm


Return to Development

Who is online

Users browsing this forum: Google [Bot] and 30 guests