shettima / bigbluebutton

Automatically exported from code.google.com/p/bigbluebutton
0 stars 0 forks source link

Add support for an external SIP client #832

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
For ease of use, BigBlueButton has a built-in SIP client.  With one click (two 
if you count having to accept the Flash security dialog box), a use is bridged 
into the voice conference hosted by Asterisk or FreeSWITCH.

This ease-of-use comes at a price: the audio packets from the user's Flash 
client must travel through the red5phone module.  The path of

Flash Client -> red5Phone (nellymoser to mlaw) -> FreeSWITCH -> red5Phone (mlaw 
to nellymoser) -> Flash Client

introduces delays that can only be reduced to a certain point.  Furthermore, 
Flash uses TCP/IP for sending/receiving audio packets.  It would be more 
desirable to use UDP.

One solution is to offload the communications to the SIP server to an external 
SIP client.  The scenario would be:

1.  User clicks headset icon
2.  BigBlueButton launches an external SIP client and passes it the necessary 
parameters for the audio bridge (IP address, extension, password, etc).

The user's audio then uses the following path

Sip Client -> FreeSWITCH -> SIP Client

Original issue reported on code.google.com by ffdixon@gmail.com on 24 Jan 2011 at 7:09

GoogleCodeExporter commented 9 years ago

Original comment by ffdixon@gmail.com on 24 Jan 2011 at 7:12

GoogleCodeExporter commented 9 years ago
mapping inbound caller-id to a bbb user in listeners window would be neat,  but 
not sure how easy that is :)   Might be able to have freeswitch change the 
caller id to friendly name with db lookup, then join so listener name appears.

I already use x-lite and can control name in listeners window, using bbbuser 
secret
but dont want to give that out to users....

Original comment by 207T...@gmail.com on 24 Jan 2011 at 7:48

GoogleCodeExporter commented 9 years ago

Original comment by ffdixon@gmail.com on 6 Feb 2011 at 6:09

GoogleCodeExporter commented 9 years ago

Original comment by ffdixon@gmail.com on 7 Feb 2011 at 6:16

GoogleCodeExporter commented 9 years ago
If "BigBlueButton launches an external SIP client" can mean opens a web page 
then [6]  seems to have a proof-of-concept built on Adhearsion, see below.  Not 
sure to what extent using Asterisk is an issue rather than Freeswitch?

 - Adhearsion[1] and [2] (click-to-call example [3], others [4]) uses Ruby to create voice-enabled applications on top of Asterisk

[1] http://adhearsion.com 
[2] https://github.com/adhearsion/adhearsion 
[3] https://github.com/jsgoecke/restful_clicktocall
[4] http://adhearsion.com/examples

Original comment by hedgehog...@gmail.com on 8 Feb 2011 at 12:02

GoogleCodeExporter commented 9 years ago
If "BigBlueButton launches an external SIP client" can mean opens a web page 
then [6]  seems to have a proof-of-concept built on Adhearsion, see below.  Not 
sure to what extent using Asterisk is an issue rather than Freeswitch?

 - Adhearsion[1] and [2] (click-to-call example [3], others [4]) uses Ruby to create voice-enabled applications on top of Asterisk

[1] http://adhearsion.com 
[2] https://github.com/adhearsion/adhearsion 
[3] https://github.com/jsgoecke/restful_clicktocall
[4] http://adhearsion.com/examples

Original comment by hedgehog...@gmail.com on 8 Feb 2011 at 12:03

GoogleCodeExporter commented 9 years ago
Hi Hedgehog,

We're not familiar with Adhersion, but we're thinking along the lines of 
experimenting launching an external SiP client via a URL (see: 
http://www.apps.ietf.org/rfc/rfc3261.html#sec-19.1.6).

The browser initially wouldn't recognize the MIME type, but if the user 
associated it with their SIP client, we could prototype providing all the 
information needed in the SIP URL for the client to connect.

A use case scenario would be:

  1.  Join the BigBlueButton session through their browser.

      In the chat window is a link that reads User clicks SIP URL in the chat window

          Welcome to this BigBlueButton demo server.  This server is running 0.71a.

          For help see _tutorial videos_.

          To join the voice conference:
              (1) click the headset icon in the upper-left, or
              (2) dial 613-366-1985 and enter conference ID: 74665.
              (3) Click _Launch SIP Client_

  2.  The user clicks _Launch SIP Client_

The SIP client launches and they are communicating directly with asterisk or 
FreeSWITCH.  

Of course, the downside of the above is that the user's would need to have a 
separate SIP client installed, but with a bit of support, there could be 
scenarios where a teacher would used a SIP client to connect, whereas the 
students would stay with the built-in VoIP.

Original comment by ffdixon@gmail.com on 9 Feb 2011 at 12:21

GoogleCodeExporter commented 9 years ago
Adhearsion is a convenience library on the server side, see [0].

In [1] there is a HTML-page-as-SIP-client proof of concept in javascript.

I'm working on Chef for BBB right now so haven't yet delved into the BBB client 
code - maybe launching a web page as a HTML-dialog-box is tricky? 

HTH?

[0] https://github.com/jsgoecke/restful_clicktocall/blob/master/web/run_me.rb
[1] https://github.com/jsgoecke/restful_clicktocall

Original comment by hedgehog...@gmail.com on 9 Feb 2011 at 8:15

GoogleCodeExporter commented 9 years ago
It's been a while since I've looked at Adhearsion.

What I have played with is to start a SIP app in the user's machine to join the 
conference.

I have a webpage with the following.
<a href="sip:74341@192.168.0.166">Call me </a>

I have also installed Linphone on my PC. When I click on the link, the browser 
prompts me on what application I want to handle the SIP url. I chose Linphone 
and I got connected into the conference.

I just tried this a couple of times and was surprised the delay was larger than 
using BBB-voip. More investigation is needed and how to handle this seamlessly 
on the backend. Aso, what setting will provide the optimum performance 
minimizing the delay as much as possible.

Original comment by ritza...@gmail.com on 9 Feb 2011 at 8:56

GoogleCodeExporter commented 9 years ago
To update the issue for the external SIP Client for the Bigbluebutton. Coral 
CEA team was working on developing an external SIP client solution. 

Phase 1 of the plan was to be able to implement a customized stand-alone SIP 
phone for the Bigbluebutton that would be pre-configured to connect the user 
automatically to the Bigbluebutton conference bridge. 

Phase 2 was to implement a Java Applet SIP Client that would be attached to the 
Bigbluebutton client in the same manner as the Desktop share app. 

A prototype for the Bigbluebutton SIP phone is available for Windows OS only. 
It implemented as proof of concept for testing the quality of the voice for a 
customized SIP phone. The SIP phone was based on the Opensoftshone project that 
is based on the PjSIP stack. 

As for the SIP Client applet, we used the MjSIP SIP stack. The applet seems to 
work well within the Bigbluebutton and using Asterisk as a SIP Server. We 
hadn't tested it with FreeSWITCH yet. 

There are issue with capturing the audio streams and issues also with running 
the applet on Safari and Firefox on Mac computers. 

The SIP Client applet is still under development, so for more details about the 
stand-alone SIP phone and the applet you can check out the details on the 
Bigbluebutton SIP Client page ( 
http://code.google.com/p/bigbluebutton/wiki/BigbluebuttonSIPClient ) on the 
Bigbluebutton Project wiki under Bigbluebutton labs.

As always, help with improvements and testing is welcomed. 

Nadia Noori 

Coral CEA   

Original comment by saadnouri on 11 Mar 2011 at 4:42

GoogleCodeExporter commented 9 years ago
Hi!

If/when it becomes possible to use a desktop SIP client, I intend to use Jitsi 
(formerly SIP Communicator) which is very interesting.

Other options can be found here:
https://www.ohloh.net/tags/client/sip

Best regards,

M ;-)

Original comment by marclaporte on 14 Apr 2011 at 8:22

GoogleCodeExporter commented 9 years ago
Hi Marc,

Nadia has put more up-to-date information on the BigBlueButton labs project for 
SIP phone.  See

  http://code.google.com/p/bigbluebutton/wiki/BigbluebuttonSIPClientDemo

Regards,... Fred

Original comment by ffdixon@gmail.com on 14 Apr 2011 at 8:31