Drupal.org repository page: http://drupal.org/sandbox/pocock/1926052
DruCall is a WebRTC module for Drupal web sites, as it is based on GPL code I am sharing it here for consideration as a full Drupal project for the benefit of the wider Drupal community. I'd appreciate any assistance and feedback to improve this project to work the way Drupal expects. I'm the developer of Lumicall and I also collaborate on projects like reSIProcate (the SIP stack, proxy and TURN server) and Drupal is not my main focus, but I have contributed this to bridge the gap between the existing RTC world and the new WebRTC paradigm. I have avoided putting a lot of logic into the module, because I feel it should interact with things like the VoIP number field (another module) rather than duplicating such functionality within DruCall.
- The main project page is here: DruCall.org web site
- The git repository is here: http://drupal.org/project/1926052/git-instructions
- and online git browser here: http://drupalcode.org/sandbox/pocock/1926052.git
The project is based on the JavaScript SIP client SIPml5, which is a GPL v3 project
| Comment | File | Size | Author |
|---|---|---|---|
| #4 | webrtc-overview.png | 60.17 KB | pocock |
Comments
Comment #1
klausiWelcome,
please get a review bonus first. Then try to fix issues raised by automated review tools: http://ventral.org/pareview/httpgitdrupalorgsandboxpocock1926052git
The Libraries API module is a recommended method for adding 3rd party dependencies without directly including the code on Drupal.org.
Comment #2
pocock commentedSIPml-api.js is also GPL code, and it is credited in the COPYRIGHT file. Do I need to actually ask the original developer of the code to upload it himself as a library module? Or can I link to it as a git submodule?
Comment #3
pocock commentedI've prepared an architecture diagram demonstrating how Drupal and DruCall can be combined with other free software to build a complete real-time communications solution:
Comment #3.0
pocock commentedMake sandbox link more prominent
Comment #4
pocock commentedComment #5
marvil07 commentedThanks for the diagram.
About initial klausi comments:
Now, let me suggest a couple of things:
Your current approach is using git submodules. The only problem with that is that currently full project release tarballs does not support git submodules. That means that the automatically generated tarball on drupal.org will not have the library included (we use git archive, which does not support git submodules). I have seen there is a custom release script, but I guess that's not ideal, specially if you want to re-use drupal.org hosting capabilities, which is considered in general a good idea.
It seems like the js libray used is really in active development, so git submodules looks like a good idea to follow it, but as mention drupal.org will no produce the right output in the tarball.
My suggestion would be:
You can keep using submodules for development if needed (but I would say it's better not, because you would need to teach libraries api to look on your specifc location of the git submodule), but require an specific version (hopefully tag, but hash works too) on the release (documented on the README.txt). Then depend on and use Libraries API project to interact with the library.
I'm not sure if it is a good idea to try to re-use the code on voipphone project (a D7 port will be a blocker for sandbox to be usable, and I guess that's too much for a project application), but thinking in long term maintainership, maybe it is a good idea at least to ask the voipphone maintainers for an opinion.
Notice also that they do not currently support WebRTC in any way, and pocock has commented there to point the sandbox examined here.
As mentioned there, that is not possible, so in order to follow using drupal.org infrastructure that file needs to be removed.
Notice also that tarballs generated on drupal.org for full projects automatically include a LICENSE.txt with GPLv2.
PS: Please change the status of this issue to needs review when new feedback is required(so project application reviewers can find this easier).
PS2: I'll be probably testing the sandbox module by hand this weekend.
Comment #6
pocock commentedI've had discussions with Doubango, the makers of SIPml5 (the JavaScript code) and they have decided to release their code under the BSD license now.
Previously, their code included a GPL v2 copyright notice and their Google Code project page stated it was a GPL v3 project. Now, all references to their project state it is BSD. This is fully compatible with all GPL versions.
DruCall itself was originally released as a GPL v3 project to be compatible with the licensing of SIPml5 (taking the strictest definition being the GPL v3 reference on the Google Code page). Now that SIPml5 licensing is BSD, I've change the DruCall license to GPL v2 or later. I believe this is now fully compliant with the Drupal project hosting.
I emailed the VoIP Drupal project leader before publishing DruCall, he is aware of my work in this area but we haven't had any thorough discussions about it.
I believe that the DruCall module could be used as a backend for the VoIP phone project, but it could also develop independently. The VoIP phone project UI may be too heavy for DruCall. There are many ways to construct a WebRTC site without mimicking a traditional phone. It also has some similarities to chat projects, as the SIP library can be used for presence and messaging.
Comment #7
pocock commentedI've now separated the SIPml5 JavaScript completely into a library module.
It is in another sandbox project here
One thing I am not clear about is the version information in the library module definition - there is no easily extracted version in the JavaScript code. As a hack, I just create a file called VERSION, e.g.
echo "1.0.0" > sites/all/libraries/sipml5/VERSION
Comment #8
PA robot commentedProject 1: http://drupal.org/node/1928458
Project 2: http://drupal.org/node/1949616
As successful completion of the project application process results in the applicant being granted the 'Create Full Projects' permission, there is no need to take multiple applications through the process. Once the first application has been successfully approved, then the applicant can promote other projects without review. Because of this, posting multiple applications is not necessary, and results in additional workload for reviewers ... which in turn results in longer wait times for everyone in the queue. With this in mind, your secondary applications have been marked as 'closed(duplicate)', with only one application left open (chosen at random).
If you prefer that we proceed through this review process with a different application than the one which was left open, then feel free to close the 'open' application as a duplicate, and re-open one of the project applications which had been closed.
I'm a robot and this is an automated message from Project Applications Scraper.
Comment #9
marvil07 commentedJust to mention I tried the module in the last state(using this and the library module) some weeks ago, and it worked fine, it seems to not be working after the first time, but I cannot really say for sure that it's because of the module, I would say it's maybe because of related software configuration.
Notice that the technology behind (webrtc) is quite new, so some browsers used to test needs special versions. The review is kind of tricky because you need to have a good amount of infrastructure to test this. Daniel give me some access to test on his servers, where I could see it worked.
I would be happy to help this development, as soon as I can get some time to figure out how to deploy all related software by myself.
About the project application, I would say it is better to do this on a simpler module, i.e. #1949616: [D7] SIPml5 JavaScript library module for DruCall and WebRTC
Comment #9.0
marvil07 commentedUpdate description
Comment #10
drummondf commentedIs there anyone available who can help me get this configured on my site? My main issue is the SIP server. If anyone is available to help please email me through Drupal - ready to pay for your time. Thank you!
Comment #11
avpaderno