Skip to main content

GROWING AND SUSTAINING RELATIONSHIPS

GROWING AND SUSTAINING RELATIONSHIPS
Close
Pablo Sullivan

Administrator, End-user

Movimiento por la Paz -MPDL-

http://www.mpdl.org

We needed a CRM, found CiviCRM and fell in love with it :). We're starting with 4.3, we hope we can be of some help for future updates.

GROWING AND SUSTAINING RELATIONSHIPS
Close
Shane Hill

Implementor, Service Provider, Administrator, Consultant, End-user

CiviSMTP

http://www.civismtp.com

I run the CiviSMTP Service that provides an easy and reliable way to send your newsletters using CiviCRM on Drupal/Joomla/WordPress platforms.

GROWING AND SUSTAINING RELATIONSHIPS
Close
Joe Murray

Consultant, Implementor, Developer, Trainer

JMA Consulting

CiviCRM is a great solution for non-profits looking to integrate their fundraising, event, membership, grant and email management systems. JMA Consulting is a leader in developing extensions and core contributions for CiviCRM.

GROWING AND SUSTAINING RELATIONSHIPS
Close
Karin Gerritsen

Developer

Semper IT Inc.

http://semper-it.com

I help non-profit organizations optimize workflows by creating interactive Drupal/CiviCRM websites for them.

GROWING AND SUSTAINING RELATIONSHIPS
Close
Mark Tompsett

End-user, Administrator, Implementor, Developer

QualityTime Services

http://www.qualitytime.co.uk

I have consistently found the CiviCRM community to be welcoming, inclusive and supportive, and this has inspired me to want to become a part of it. It is great that the open source community allows everyone to benefit from the contributions that each of us is able to make, and I am making my own contributions as I can.
As a software product, CiviCRM is powerful, versatile and extensible and is enjoying active development and growth by the community that uses it.

GROWING AND SUSTAINING RELATIONSHIPS
Close
Hans Idink

Implementator, Developer

Orgis

http://www.orgis.com

CiviCRM has a key value for the Organisations I support with software.

GROWING AND SUSTAINING RELATIONSHIPS
Close
Jon Goldberg

Implementor

Palante Technology Cooperative

http://palantetech.com

Palante Tech works with social justice organizations on a tight budget to be more effective through technology. CiviCRM allows us to provide a high-quality low-cost database for community organizing, donor and membership management.

GROWING AND SUSTAINING RELATIONSHIPS
Close
Merlise Clyde

End-user, administrator

International Society of Bayesian Analysis

http://bayesian.org

ISBA is an international non-profit society with members from all over the world. We have sections that represent different scientific areas and chapters that represent different regions of the world. Civi Member powers our membership system! We use CiviEvent for Conference and Workship registration, and utilize CiviPetition for creating new sections to our society through member petitions. We are epxloring how CiviGrants can be used to track our travel awards and look forward to features for integrating accounting and finance. As a growing non-profit CiviCRM plays a major role in managing our membership system!

GROWING AND SUSTAINING RELATIONSHIPS
Close
Simon West

End-user, Administrator, Implementor

ZING

http://zing.uk.com

We feel there are too many obstacles facing not-for-profits (NFPs) considering commercial CRM offerings, including many of those that are charity oriented. From licensing models which restrict the fluid expansion of an organisation's user base (why should you be punished with higher costs for being successful?), to support from commercial companies being inherently tied to one supplier; a NFP would benefit from the option to 'shop around' for those most appropriate, e.g. based on: proximity and availability on-site, cost, experience, value added services... They also often lack the capacity for charity relevant workflows, necessitating either customisations, complicated and inefficient workarounds or an en-masse call for new functionality, as individual charities do not appear to carry the weight required to influence subtle NFP-only changes to market leading software, without large expense.

On the flip side, CiviCRM is completely free and open-source, carrying with it a friendly, hard-working and enthusiastic community of developers and implementers, constantly listening to the users' needs and sculpting future releases to the requirements of NFP organisations. This is exciting!

GROWING AND SUSTAINING RELATIONSHIPS
Close
Lisa Hubbert

94110

Creative Arts Charter School, SFArtsED

http://www.sfartsedsummer.org

Online donations, class registration, school tour registration, online enrollment applications, volunteer hour tracking, organization directories

GROWING AND SUSTAINING RELATIONSHIPS
Close
Rachel Daniell

end-user, implementor

consulting/multi

CiviCRM provides a vital tool whereby nonprofits and other social projects can implement strong contact-relationship management capabilities without high monthly fees. It also provides the integration and customization capabilities necessary to make such software useful in the complex, lived reality of doing social engagement work. Plus it continues to build the open source toolset made available to the Commons and grow the common good.

GROWING AND SUSTAINING RELATIONSHIPS
Close
Allen Gunn

Ally, FanBoy

Aspiration

http://aspirationtech.org/

By giving the nonprofit sector a values-driven, free/open source solution for CRM needs!

LOGIN | REGISTER
  • Create new account
  • Request new password

Search form

  • BLOG
  • DEMO
  • Find An Expert
  • NEED HELP
  • SUPPORT US
  • DEVELOPER RESOURCES
CiviCRM Community Site logo CiviCRM Community Site
  • WHAT IS CIVICRM
    • Community
    • Case Studies
    • Experts
    • Contributors
    • Core Team
    • Licensing
    • Contact Us
  • WILL CIVICRM MEET YOUR NEEDS?
    • Contacts
    • Contributions
    • Communications
    • Peer-To-Peer Fundraisers
    • Advocacy Campaigns
    • Events
    • Members
    • Reports
    • Case Management
  • GET STARTED
    • Evaluate Your CRM Needs
    • Evaluate CiviCRM Features
    • Read Books
    • Contact an Ambassador
    • Demo CiviCRM
    • Download CiviCRM
    • Download Extensions
    • Find An Expert
  • PARTICIPATE
    • Join the community
    • Make it happen
    • Support CiviCRM
    • Meet ups
    • Document CiviCRM
    • Translate CiviCRM
    • Developer resources

You are here

Home » Blogs » jcm55's blog

Blog

  • API
  • Architecture Series
  • CiviCampaign
  • CiviCase
  • CiviCon
  • CiviContribute
  • CiviCRM
  • CiviCRM v4.1
  • CiviEvent
  • CiviMail
  • CiviMember
  • CiviMobile
  • CiviPledge
  • CiviReport
  • Documentation
  • Drupal
  • Extensions
  • Finance and Accounting
  • Interface Design and Layout Standards
  • Internationalization and Localization
  • Joomla
  • Make it happen
  • Marketing and Promotion
  • Meetups
  • Older Versions
  • Release
  • Schools
  • Solutions (case studies and user stories)
  • Sprints
  • Teams
  • Training
  • v1.6
  • v1.7
  • v1.8
  • v1.9
  • v2.0
  • v2.1
  • v2.2
  • v2.3
  • v3.0
  • v3.1
  • v3.2
  • v3.3
  • v3.4 and v4.0
  • v4.2
  • v4.3
  • WordPress

Automated Event Info by Phone with CiviCRM and Asterisk

Submitted by jcm55 on February 18, 2013 - 13:56

One of the most common phone calls we receive at Bay Area Children's Theatre is "Are tickets still available for performance xyz?"  That call is especially common on show days, when most of our staff is at the performance venue and not in the office to answer the phone.

BACT already uses Asterisk to provide our virtual PBX and I wanted to see if there was a way to automatically give callers a list of sold-out performances based on CiviCRM event data.  I discovered an Asterisk AGI script called GoogleTTS that uses Google's text-to-speach API to read arbitrary text to callers:

http://zaf.github.com/asterisk-googletts/

The only thing that was left was to come up with a little php to get the list of sold-out events from CiviCRM and pass it to GoogleTTS to read it to callers.  The php is pretty straightforward -- it uses the CiviCRM API to fetch the list of events with start_date > today.  Two small complications though.  1) I wanted to include the location of the performance, and there's currently no way to get an event location via the API, so I had to use direct calls to BAO functions for that.  2) The API also provides no way to get the true participant count for an event that accounts for price set participant multipliers, so I had to use direct BAO function calls for that too.  Here's the PHP code:


require_once '/home/.................../civicrm.settings.php';
require_once 'CRM/Core/Config.php';
require_once('CRM/Core/BAO/Location.php');
require_once('CRM/Event/BAO/Event.php');

$config = CRM_Core_Config::singleton( );

# get set of all events with start_date > now

$events = civicrm_api('Event', 'Get', array('filters' => array('start_date_low' => date('Ymd')), 'event_type_id' => 5, 'options' => array('limit' => 200), 'version' => 3));

$soldoutshows = array();

foreach ($events['values'] as $ekey => $event) {

# find sold-out events
$soldseats = CRM_Event_BAO_Event::eventTotalSeats($ekey);
if ($soldseats >= $event['max_participants']) {

# look up city name
$locparams = array('entity_table' => 'civicrm_event',
'entity_id' => $event['id']);
$location = CRM_Core_BAO_Location::getValues($locparams);
$stime = strtotime($event['start_date']);
$newshow = $location['address'][1]['city'] . ': ' . date('l F j g', $stime);
if (date('i', $stime) != "00") {
$newshow .= date(':i', $stime);
}
if (date('a', $stime) == "am") {
$newshow .= " ay-em";
}
else {
$newshow .= " pee-em";
}
$soldoutshows[] = $newshow;
}
}

$saystring = 'SET VARIABLE MYSHOWS "';

if (empty($soldoutshows)) {
$saystring .= "Tickets are available for all upcoming performances.";
}
else {
$saystring .= "The following upcoming performances are sold out, ";
foreach ($soldoutshows as $skey => $show) {
$saystring .= $show . ", ";
}
}

$saystring .= '"';
print $saystring;

$text = '';
$in = fopen('php://stdin', 'r');
while(!feof($in)){
$text = $text . fgets($in, 4096);
}

And here's how we call it from our Asterisk dialplan:
exten => 1,2,agi(events.php)
exten => 1,3,agi(googletts.agi, "${MYSHOWS}", en,,1)

The first line calls the "events.php" code above, which sets an Asterisk variable called $MYSHOWS with the text that needs to be read to the caller. The second line calls the "googletts.agi" which accesses the Google API to covert the text to speech and read it to the caller.

  • jcm55's blog
  • Log in or register to post comments

CIVICRM


GROWING AND SUSTAINING RELATIONSHIPS

WHAT IS CIVICRM
  • Community
  • Case Studies
  • Experts
  • Contributors
  • Core Team
  • Licensing
  • Contact Us
WILL CIVICRM MEET YOUR NEEDS?
  • Contacts
  • Contributions
  • Communications
  • Peer-To-Peer Fundraisers
  • Advocacy Campaigns
  • Events
  • Members
  • Reports
  • Case Management
GET STARTED
  • Evaluate Your CRM Needs
  • Evaluate CiviCRM Features
  • Read Books
  • Documentation
  • Demo CiviCRM
  • Download CiviCRM
  • Download Extensions
  • Find An Expert
PARTICIPATE
  • Join the CiviCRM Community
  • Read Our Blog
  • Community Forum
  • Attend a Training or Meetup
  • Make It Happen
  • Become A CiviCRM Developer
  • Issue Tracker
  • Help with Documentation
  • Translate