CiviCRM Community Forums (archive)

*

News:

Have a question about CiviCRM?
Get it answered quickly at the new
CiviCRM Stack Exchange Q+A site

This forum was archived on 25 November 2017. Learn more.
How to get involved.
What to do if you think you've found a bug.



  • CiviCRM Community Forums (archive) »
  • Old sections (read-only, deprecated) »
  • Developer Discussion »
  • Google Summer of Code »
  • GSOC 2015: CiviCRM Integration with FreeSWITCH
Pages: [1] 2 3

Author Topic: GSOC 2015: CiviCRM Integration with FreeSWITCH  (Read 4039 times)

ashishbitm

  • I’m new here
  • *
  • Posts: 18
  • Karma: 0
  • CiviCRM version: 4.4.14
  • CMS version: Joomla 2.5.17
  • MySQL version: 5.2.3
  • PHP version: 5.5.19
GSOC 2015: CiviCRM Integration with FreeSWITCH
March 19, 2015, 12:31:16 am
Hi Xavier, Joe, and the members of CiviCRM,

The abstract of my project that I proposed for GSOC 2015 is as follows:

Abstract: Developing a bridge that connects FreeSWITCH and the CiviCRM to make and receive calls. The bridge will be in a form of an open source plugin which can be installed and hence enabling the CRM to communicate and route calls through FreeSWITCH running in background.

Please share your views.

Thanks,
Ashish


totten

  • Administrator
  • Ask me questions
  • *****
  • Posts: 695
  • Karma: 64
Re: GSOC 2015: CiviCRM Integration with FreeSWITCH
March 19, 2015, 02:30:49 am
Sounds pretty interesting. I haven't used it and don't quite understand how a volunteer at a non-profit (logged into the Civi web application) would place a call that gets routed to a constituent (on a traditional phone). There's mention of WebRTC and SIP in https://freeswitch.org/confluence/display/FREESWITCH/Specifications , so my imagination kicks in with a story like this:

  1. A volunteer at "SaveTheWhales.org" uses Chrome or Firefox (or any other WebRTC-enabled browser) to login to Civi.
  2. In Civi, the volunteer opens the information about a donor and clicks on the donor's phone number (202-555-1212).
  3. The browser connects via WebRTC to a FreeSWITCH instance.
  4. The FreeSWITCH instance is run by (or on behalf of) SaveTheWhales.org.
  5. The FreeSWITCH instance routes the call over SIP to UberVoipProvider.com (where SaveTheWhales.org has an account).
  6. UberVoipProvider.com routes the call over PSTN to the constituent's phone (202-555-1212).

But this is totally made-up -- based on no real-world experience. Please bring me back to reality. What's a realistic story for routing a call? Or are you still at a stage where that's something to be researched?

ashishbitm

  • I’m new here
  • *
  • Posts: 18
  • Karma: 0
  • CiviCRM version: 4.4.14
  • CMS version: Joomla 2.5.17
  • MySQL version: 5.2.3
  • PHP version: 5.5.19
Re: GSOC 2015: CiviCRM Integration with FreeSWITCH
March 20, 2015, 09:19:24 am
Hi,

I am pasting a link that describes the high level model of the project proposed by me, which will help you have a clear understanding of what I am trying to accomplish.

Although I have tried my best to be able to answer all your queries but ,if any, left please ask for it.

The link is: https://drive.google.com/folderview?id=0B73pd7pfimfvfnA2dDBYUGhMUk9paFNVT0t1UDE4c2ZROHN1WkZtNVUzZ3R5eHB5VnhIVnc&usp=sharing

Please follow this order while going through the document: 1-> Introduction and Scope 2->Routing Plan 3-> Experiences with freeSWITCH

Thanks,
Ashish

 

JoeMurray

  • Administrator
  • Ask me questions
  • *****
  • Posts: 578
  • Karma: 24
    • JMA Consulting
  • CiviCRM version: 4.4 and 4.5 (as of Nov 2014)
  • CMS version: Drupal, WordPress, Joomla
  • MySQL version: MySQL 5.5, 5.6, MariaDB 10.0 (as of Nov 2014)
Re: GSOC 2015: CiviCRM Integration with FreeSWITCH
March 21, 2015, 05:44:08 pm
JMA Consulting have developed a voice broadcast extension that uses the summer 2014 CiviMail interface pattern to place voice broadcast calls. The architecture uses a plugin to connect to Plivo, a cheaper alternative to Twilio. Some versions of my specs referred to Asterisk as a third plugin because it was used by VoIPDrupal and had a more mature codebase. Hoever freeSWITCH is a better architected platform aand has good project momentum. In particular, I was researching using it with openWRT last summer and fall and am still keen on that.

In terms of integrating telephony into CiviCRM I think Click-to-Call is one easy integration point. This would allow a permissioned staff user to click on any phone number in their browser to initiate a call to that number. A second area of functionality I am interested in is to make an IVR version of CiviSurvey. The interface would constrain the responses either to keypressed numbers or would accept the text from voice to text features that various providers make available. This would dovetail with using CiviSurvey as the basis for SMS surveys as well. Developing outbound call centre capabilities with human operators should also be done on top of CiviSurvey. A new batching and call assignment protocol that is essential here for the economics and competitiveness of the product is predictive dialing. This basically involves predicting when the next operator is likely to be available, and using likelihood of a call being answered within a specific length of time to initiate calls before an operator is free so that they are connected promptly to a new call when they are done the one they are on, while ensuring those called don't have to wait too long before they are connected.

These techniques have been used for decades. Electronic town halls have hit the mainstream more recently. In this case one might have 10,000 - 20,000 calls initiated and linked into a single call. Typically a moderator will interview a guest of honour like a politician, allow members of the audience to pose questions to the luminary, and then get all audience members to respond to some poll questions, usually in political contexts related to likelihood they will vote for the candidate. They are very effective at engaging the public and gathering voter intention data quickly and cost effectively. I see this as farther down the roadmap for CiviCRM VoIP integration.

Supporting inbound calls should be considered as an immediate feature. In this case you need to correlate a logged in user to their phone number to receive calls (or do it via browser). When a call arrives a popup screen shows caller info from CiviCRM and likely a bit of their qctivity history and membership status etc. Operator script starts by verifying caller is the person in system for that number (or creating new contact), and recording call details into an Activity that can be assigned for followup.

I think we should frame a project that adds freeswitch as another supported plugin, and takes on a functional feature or two. I think outbound calls with CiviSurvey on top of a freeswitch plugin would be more than enough for a project. Perhaps as a stretch goal if that was all finished to productio  quality with good automated testing we could look at support for predictive dialing, but I think it may not be feasible to get it all done well. Personally I would prefer fewer but higher quality deliverables.
Co-author of Using CiviCRM https://www.packtpub.com/using-civicrm/book

ashishbitm

  • I’m new here
  • *
  • Posts: 18
  • Karma: 0
  • CiviCRM version: 4.4.14
  • CMS version: Joomla 2.5.17
  • MySQL version: 5.2.3
  • PHP version: 5.5.19
Re: GSOC 2015: CiviCRM Integration with FreeSWITCH
March 24, 2015, 07:08:58 am
Joe,

Thanks for letting me know about your voice broadcast extension. I am curious to see how the extension integrates and works with Civi. Also, you rightly pointed out that FreeSWITCH is better architected, and has good project momentum.
If I understand correctly, you have mentioned three potential items which can be taken up as projects,

•   Make calls through FreeSWITCH wherein the phone number appears in the form of a hyperlink and simply by clicking (click-to-call             through webRTC, preferably) on the link and hence recording the CDRs in Civi.

•   Enabling CiviSurvey to make outbound calls on top of the FreeSWITCH plugin.

•   Receive incoming calls and displaying the caller’s information through a pop-up (by running a script which checks the presence of the user in the contact list within Civi, as suggested by you) and displaying a short bio(information) of the user calling.



I have personally experienced the need of CRM+Telephony during my internship with Stanford University, where an NGO had to broadcast calls in order to convey messages to its members, in the most remote areas of India where mobile phones were the only means to reach out to people. Also, they had to organize and record the activity of each of its member and conduct surveys as well. An open-source CRM with telephony is the best suited solution for such organizations. And hence the integration will surely find its utility in the real world.

I agree that fewer, but quality deliverables should be the focus. I see that these features can be treated as individual projects themselves, considering the scope of work involved for them. My order of preference to implement the features would be in the order stated above. 

Also, in my conversation with Xavier on IRC, he advised that we should have someone with knowledge on FreeSWITCH as co-mentor. I know someone who can help us out with regards to FreeSWITCH. He is running a production instance of Freeswitch for his business needs to meet Indian Government regulatory requirements. He is also keen on building this bridge between Civi and Freeswitch. Currently he runs VTiger for his CRM needs, and together we are evaluating Civi.

Please share your views.

Thanks.

JoeMurray

  • Administrator
  • Ask me questions
  • *****
  • Posts: 578
  • Karma: 24
    • JMA Consulting
  • CiviCRM version: 4.4 and 4.5 (as of Nov 2014)
  • CMS version: Drupal, WordPress, Joomla
  • MySQL version: MySQL 5.5, 5.6, MariaDB 10.0 (as of Nov 2014)
Re: GSOC 2015: CiviCRM Integration with FreeSWITCH
March 24, 2015, 07:41:21 am
This sounds very good.

I expect we'd supplement the call detail record information with optional manually entered information for a phone call activity in CiviCRM (see http://d45.demo.civicrm.org/civicrm/activity?reset=1&action=add&context=standalone). And as an initial project, we could just have people calling using CiviCRM use click-to-call in a slightly customized way for that area of application if we get that far.

Cheers,
Joe
Co-author of Using CiviCRM https://www.packtpub.com/using-civicrm/book

xavier

  • Forum Godess / God
  • I’m (like) Lobo ;)
  • *****
  • Posts: 4453
  • Karma: 161
    • Tech To The People
  • CiviCRM version: yes probably
  • CMS version: drupal
Re: GSOC 2015: CiviCRM Integration with FreeSWITCH
March 26, 2015, 01:40:34 am
Quick reminder, not sure if the student(s) interested have done it already for this project, but you have to register and submit the proposal before tomorrow

http://forum.civicrm.org/index.php/topic,36143.0.html

If it's done already, all good, we'll discuss internally and with you and let you learn better our development workflow and tools we use and give you a chance to mingle with the community
-Hackathon and data journalism about the European parliament 24-26 jan. Watch out the result

ashishbitm

  • I’m new here
  • *
  • Posts: 18
  • Karma: 0
  • CiviCRM version: 4.4.14
  • CMS version: Joomla 2.5.17
  • MySQL version: 5.2.3
  • PHP version: 5.5.19
Re: GSOC 2015: CiviCRM Integration with FreeSWITCH
March 26, 2015, 10:14:32 am
Thanks Joe, for now I think we have clarity on the scope of the project.


ashishbitm

  • I’m new here
  • *
  • Posts: 18
  • Karma: 0
  • CiviCRM version: 4.4.14
  • CMS version: Joomla 2.5.17
  • MySQL version: 5.2.3
  • PHP version: 5.5.19
Re: GSOC 2015: CiviCRM Integration with FreeSWITCH
April 13, 2015, 11:00:12 pm
PERSONAL INFORMATION
First/Last Name: Ashish Mishra

Email: itsme.kunnu@gmail.com

School/University: Birla Institute of Technology, Mesra

Graduation Date: 2015

Major/Focus: Computer Science and Engineering

Location: India

Timezone: IST(Indian Standard Time;+5:30)

Drupal.org Profile:

IRC: used Nas4free, FusionPBX IRC with temporary usernames

CV/Resume URL:https://drive.google.com/file/d/0B73pd7pfimfvcEVpOU9qMi10Q3c/view?usp=sharing

Preferred time of day for virtual/video interview: After 10 pm (IST)

Open Source Experience: Worked and configured FreeSWITCH and generated a system that automatically records all the calls coming in and going out through FreeSWITCH.
Successfully installed FusionPBX and controlled FreeSWITCH with it. Developed conference line using FusionPBX.
Installed and implemented NAS using NAS4Free which is currently used by a financial organization called Brokerage Free for data storage and back up.

GSOC INFORMATION
If you have participated in Google Summer of Code in the past, please describe your participation:
No, I have never participated in GSoC in the past.
Have you applied to GSoC in the past and are you applying to any other organizations this year? If so, please explain.
No, this is the first time I am participating in GSoC.
How many hours will you devote to your GSoC project each week? What are your other summer plans (vacation, this time of year isn't your summer and you are in class, etc)?
28-35 hours per week, I have no plans for this summer. My college will get closed after April 27 2015. I will be completing my graduation this year and will be joining, Tata (one of the fortune 500 company) in the last week of August.

CIVICRM INFORMATION
Have you registered an account at CiviCRM.org?
Yes, I have registered an account on CiviCRM.org

Have you even built a site with Drupal, WordPress, or Joomla?  (Please provide details)
No, I have not built any site Drupal, WordPress or Joomla

Have you ever built a CiviCRM site or helped on a CiviCRM project? 
Not actually, but I have installed CiviCRM and explored its features.

Have you ever posted a questions to the CiviCRM Forums, JIRA, or GitHub?
Yes, http://forum.civicrm.org/index.php?topic=36085.0

Have you ever contributed code to CiviCRM?
No.

If you have not previously contributed to any open source projects, can you provide example code from school?
On my internship with Stanford University, I have deployed several IVRS who source code can be found on GitHub.
(https://github.com/itsmekunnu/IVRS-using-kookoo)  and also certain projects undertaken by me during college days such as graph plotter, etc are available with me which I have not pushed on GitHub.

TECHNICAL INFORMATION
Have you ever utilized IRC?
Yes, whenever I had to seek some knowledge about FusionPBX, Nas4Free, I used IRC.

Have you ever worked with Git?
Yes, I have working knowledge of Git.

Question based on knowledge of git:
You just committed some code (and not pushed yet), but you realized there is a typo in commit message. How would you change it (please explain each step of the solution)?
git commit --amend -m "New commit message" will help us change the commit message’s typo.
git commit –amend will open the last message that has typo.

Question based on given 'almighty_function':
Given this function:
functiongsoc_funciton($x, $y, $z) {
     if ($y != $z && $x == $y && $x == $z) {
       return "Success!";
     }
return "FAIL!"
}

Please provide set of values for $x, $y and $z for function to return "Success!". Explain your solution.
What, if anything would you change or fix in the function?
I will explain this with an example: gsoc_funciton(12,"12","12a")
will give success, because when doing 12=="12" and 12="12a" the strings are converted to integer but will doing "12"=="12a" the strings are not converted and string compassion is done by which they are not equal.
Hence, we will follow the same pattern that is $x should be integer; $y and $z will be strings with same numerical part as explained in the example above.

PROJECT INFORMATION
Which project idea sparks your interest and why?
The project idea of making outbound calls through CiviCRM using freeSWITCH, which is running in the background, interests me the most.
Calls form a significant aspect of CRM services. To have a bridge that improves the efficiency of managing call records with respect customer records, will make a big difference. There is a need for such service, and is not commonly found in CRM softwares.

Detailed overview:
Making calls through civi wherein a number appears in the form of hyperlink and user can simply call by clicking the link (click-to-call through webRTC preferably). The call routing will be done by freeSWITCH running in the background.
Also, storing or updating the Call Detail records either manually or automatically within CiviCRM.
The detailed project breakdown and project management as well as communication methods are described below under each head respectively:

Timeline breakdown: The initial project idea, description and discussions can be found on the following link: http://forum.civicrm.org/index.php?topic=36085.0

The detail weekly breakup is as follows:
19th-26th May 2015:
The very first week would be completely research week wherein the time will be spent in finding out how to enable CiviCRM’s communication with FreeSWITCH. Referring the use cases wherein CRM’s like Vtiger who have recently incorporated the freeSWITCH extension and studying and analysing the methodology used by them.

26th May-9th June 2015:
Documenting the research done and the information gathered and sharing it on the forum and hence gathering the useful comments by the community members of CiviCRM.

9th-30th June 2015:
Discussing the high level model of the project and deciding the road map mutually with my mentor. The useful discussions with mentor shall be documented simultaneously and each and every detail of the roadmap shall be well researched.
Also, delivering the first prototype of the project wherein the number can appear in the form of hyperlink and the Civi and freeSWITCH’s communication is achieved.

30th June- 7th July 2015:
Buffer week.

7th July-28th July 2015:
After successful completion of the communication between Civi and FreeSWITCH and that outbound calls are now possible, we will shift our attention to recording CDR’s (information to be included and the information to be excluded from CDR’s) in a fashion that is mutually decided by the mentor as well as the members of Civi Community.

28th July-4th August 2015:
First release of the working model of the project wherein the project will behave as decided and handling errors/bugs wherever reported by the community members.

4th-11th August 2015:
Fixing the bugs/errors (if any) otherwise making the project undergo with automated testing.

11th-18th August 2015:
Incorporating the code to the Civi Core and releasing the tutorials on how to use the new feature.

Disclaimer: In the event if implementation takes more time than anticipated, the proposed timelines will have to be readjusted accordingly.

Communication method: Google hangouts, Social media such as facebook, or via emails is perfectly suitable to me. However, if my mentor has some other preferences I have no problems in switching to that particular communication medium.

My email id is: itsme.kunnu@gmail.com
Facebook id: https://www.facebook.com/AshishMishraBIT

Which aspect of project idea do you see to be most difficult?
The understanding of CiviCRM’s architecture seems most difficult to me as I have not worked on Civi before.

Which aspect of project idea do you see to be easiest?
The implementation of FreeSWITCH and its communication with Civi seems to be easiest as I have a lot of working experience with FreeSWITCH.

Which portion of project idea will you start with?
Understanding of Civi’s architecture and figuring out the way to implement its communication with FreeSWITCH is what I want to start with.



ashishbitm

  • I’m new here
  • *
  • Posts: 18
  • Karma: 0
  • CiviCRM version: 4.4.14
  • CMS version: Joomla 2.5.17
  • MySQL version: 5.2.3
  • PHP version: 5.5.19
Re: GSOC 2015: CiviCRM Integration with FreeSWITCH
April 13, 2015, 11:02:10 pm
Hi Emily, Joe, Xavier,

I will update the things that you have asked me to within 48 hours time.

Please ask me if you want any further detail on the project proposal.

Thanks,
Ashish

ashishbitm

  • I’m new here
  • *
  • Posts: 18
  • Karma: 0
  • CiviCRM version: 4.4.14
  • CMS version: Joomla 2.5.17
  • MySQL version: 5.2.3
  • PHP version: 5.5.19
Re: GSOC 2015: CiviCRM Integration with FreeSWITCH
April 16, 2015, 03:46:15 am
Hi Xavier, Emily, Joe and the members of CiviCRM,

As asked by Xavier to do the four things here is an update on them:
1->"Are you able to communicate with the community?"

Yes, I am able to communicate well with the members of CiviCRM community. Members like Emily, Xavier, Joe and Owen have been asking me questions on my project proposal and I have been successful in giving them a clear understanding on the project proposal.
I have been posting on civi forum and also on the melange whenever there is an update or anything that has been asked of me.
I although apologize for not having too early in answering the questions due intermittent Internet and also due to my final semester examinations which are commencing from 20th April and will end on 24th April.
I assure that I will be replying faster and will be more active on the civi forum as well as melange after my examinations.   
I have also created an account on stack exchange to seek answers while using civi and its tools.

2-> "Are you able to set up an environment needed to develop for civiCRM?"

Yes, I have successfully installed civiCRM on my ubuntu machine.
3-> "Are you able to use our git workflow?"

Yes, I am able to use the civi git workflow and have successfully completed the task on github.
4->"Are you able to communicate well with your mentor?"

Yes, I am able to communicate well my mentors, Joe and Ravi (Brokerage Free). Ravi and me have also worked together and various projects like FreeSWITCH, NAS4Free, etc, and we have successfully completed it.
I keep him well informed about all my progress and we have regular discussions on GSOC.

Thanks,
Ashish

joemcl

  • I post occasionally
  • **
  • Posts: 72
  • Karma: 1
    • Citizen Action of New York
  • CiviCRM version: 4.4.13
  • CMS version: Drupal 7.34
  • MySQL version: 5.6
  • PHP version: Unsure
Re: GSOC 2015: CiviCRM Integration with FreeSWITCH
May 07, 2015, 07:01:03 am
Hi Ashish, great that you're working on this. Reading through the forum posts to catch up.

JoeMurray

  • Administrator
  • Ask me questions
  • *****
  • Posts: 578
  • Karma: 24
    • JMA Consulting
  • CiviCRM version: 4.4 and 4.5 (as of Nov 2014)
  • CMS version: Drupal, WordPress, Joomla
  • MySQL version: MySQL 5.5, 5.6, MariaDB 10.0 (as of Nov 2014)
Re: GSOC 2015: CiviCRM Integration with FreeSWITCH
May 07, 2015, 07:38:43 am
I've added a top level wiki page for the project athttp://wiki.civicrm.org/confluence/display/CRM/GSoC+2015%3A+Click-to-Call%2C+freeSwitch+integration?moved=true.
« Last Edit: May 07, 2015, 11:02:24 am by JoeMurray »
Co-author of Using CiviCRM https://www.packtpub.com/using-civicrm/book

leoburd

  • I’m new here
  • *
  • Posts: 5
  • Karma: 0
  • CiviCRM version: n/a
  • CMS version: Drupal
  • MySQL version: n/a
  • PHP version: n/a
Re: GSOC 2015: CiviCRM Integration with FreeSWITCH
May 08, 2015, 02:48:37 am
Hello all,

Sorry for joining the conversation so late, but I've just found out about it.

It's great to see so much energy around the integration of Civi and VoIP. However, wouldn't it be better to combine Civi with VoIP Drupal instead of FreeSWITCH?

VoIP Drupal is an open source Drupal-based framework that already provides most of the functionality proposed for the project (drupal.org/project/voipdrupal). In fact, the team has just released a Callblast installation profile that makes it easier to create and manage bulk SMS and voice calls (https://www.drupal.org/project/callblast). In addition to that, VoIP Drupal already manages voice translations and has a plug-in architecture that supports multiple VoIP providers including Plivo/FreeSWITCH, Twilio, Tropo and KooKoo.

You can have a look at VoIP Drupal in action at http://voipdrupal.org/. Its click2call functionality is under "weather report" on the top right of the screen.

The idea of connecting Civi and VoIP Drupal is not new (https://www.drupal.org/node/1200366), but never managed to be implemented. Perhaps now it's a good opportunity. I'd be more than happy to help that happen.

Best,

Leo

« Last Edit: May 08, 2015, 03:07:26 am by leoburd »

joemcl

  • I post occasionally
  • **
  • Posts: 72
  • Karma: 1
    • Citizen Action of New York
  • CiviCRM version: 4.4.13
  • CMS version: Drupal 7.34
  • MySQL version: 5.6
  • PHP version: Unsure
Re: GSOC 2015: CiviCRM Integration with FreeSWITCH
May 09, 2015, 06:38:12 pm
Leo, thanks. There are many really good reasons to continue work towards a platform-agnostic CiviCRM extension that connects CiviCRM to Freeswitch - and the two biggest reasons are CiviCRM on Wordpress and CiviCRM on Joomla.

VOIPDrupal looks really cool, and as a Drupal/Civi shop, connecting that up to Civi would be useful for us. But we want to support the entire CiviCRM community including the growing number of Civi/Wordpress and Civi/Joomla sites and users.

It would be great for you and your shop at MIT to jump in and help mentor Ashish as he works through the CiviCRM + FreeSwitch GSoC project. No doubt your experience and coding VOIPDrupal would be invaluable. Interested?       

Pages: [1] 2 3
  • CiviCRM Community Forums (archive) »
  • Old sections (read-only, deprecated) »
  • Developer Discussion »
  • Google Summer of Code »
  • GSOC 2015: CiviCRM Integration with FreeSWITCH

This forum was archived on 2017-11-26.