The Basic Meeting List Toolbox

Merging a Regional Yap Server into a Zonal Yap Server

Since Yap 3.0.0 (released in March 2019), it’s been possible to use a single Yap server with multiple Twilio accounts.  What this means is that a service body can handle the overhead of server management while another service body retains the management of phone numbers and billing.

Yap 3 also introduced the concept of configuration precedence (  This creates the ability to manifest all kinds of powerful capability without requiring access to the config.php on the server (critical for this situation where server management is handled by someone else).  It also has the ability to set a value at regional level while the hierarchy of the BMLT automatically cascades down to the member areas.

Recently I had to migrate my regional yap server to the zonal server.  Below is the process I followed, feel free to send an email to if you’d like more details.

Consider whether you may want to take a backup and overwrite your existing Yap database, or make a copy with a new install and config to do side by side testing.  You may also want to consider setting in the database config ahead of time or afterward.  You may also want to transfer any other settings in your top level config.php to the Config settings in the admin portal.  Keep in mind that service bodies will use the hierarchy, so if you set this as a regional level all the service bodies connected will inherit them.

1) Delete any configuration from the target yap server, use the server body IDs that would be the IDs that would be the query below:

DELETE FROM config where service_body_id in (x [,x]);

2) Begin an export from your source yap server, select only data and exclude the flags table.  See the screenshot below.  (Use a self-contained file)

Pasted Graphic.png

3) After the file has been exported run the below on your system.  In the below example, “export.sql” is the file exported from Step 2 above.

cat export.sql | sed -e “s/([0-9]*,/(NULL,/g” > export-mod.sql

4) Import export-mod.sql into the target yap server.  “export-mod.sql” is the output from the command run locally in Step 3 above.

5) Your phone numbers must have explicit service body overrides in order to pull configuration values from the database (you can use either override_service_body_id or override_service_body_config_id).  One changes your service body for call routing and the other selects configuration, respectively.

Customize the CSS of Crouton

Here is a sample of the CSS that was used to customize the Volunteer Region crouton.  Utilizing the recent feature released with crouton 2.1.0, you can fully customize the colors.  I thought this might be useful to assist in making it easy to reuse.  (Note: this may become incompatible very quickly) 

You can also submit your theme design to crouton to be included:

Read more

Study on Statewide Meeting Schedules

Service bodies tend to not necessarily follow boundaries that make sense to someone who does not understand it’s organizational makeup.  By using the Tomato server, it’s entirely possible to create a schedule that follows geopolitical boundaries without much effort.  For this study, I decided to use the 50 states of the United States.  This study could have easily been other such designations, perhaps provinces in Canada.  I’m also going to make use of the recent feature released in bread 1.6.x (see the blog post on “Reusable Templates w/Bread 1.6.x“)

Read more

Creating a map of meetings using Google MyMaps

With Google MyMaps you can create a map of NA meetings as well as embed that map on your site. This however unlike the Flexible Map plugin blogpost is not updated dynamically. This will add pinpoints of each meeting location which are clickable and display basic info about the meeting. I have used this to generate some nice images that I’ve used on various NA sites.

We’ll start by getting the kml data we want from the semantic interface of your local BMLT server. First select KML as your returned data.

Read more

Prototype of A Virtual Area

This has come up a few times in some discussions.  I have responded to a few posts, but I thought it might be better served to snapshot some thoughts while they were fresh.  Virtual meetings are location independent.  There might be a place a web server is hosted or an area/country code resides, but that is not really the same as a meeting with a physical location or an address.

There are elements to a virtual meeting that do matter, which are the language(s) that are spoken and the medium that the meeting is delivered over.  Although the root server code base does have elements of location, they do not necessarily have to be used.

Read more

Embedding a map of meetings on WordPress using Flexible Map plugin

With the Flexible Map WordPress plugin you can embed a map of your meetings in real time. This will add pinpoints of each meeting location which are clickable and display basic info about the meeting. One of the ways I’ve found this useful is I can easily tell when a meetings geocode is way out of wack.

We’ll start by adding and then activating the Flexible Map plugin. Then go to Settings -> Flexible Map and enter your Google API key as shown.

Read more

Javascript Satellites & bmlt.js

The latest release of the root server (v2.10.3), has some exciting new features.  It introduces a new response endpoint called JSONP, or JSON w/padding.  Typically making a JSON request/response requires that both the client and the server are on the same exact domain.  This is a by design security feature of most modern browsers to prevent XSS (Cross Site Scripting Attacks).
Read more

[UPDATED] Google Maps, API Keys and Geolocation Issues

NOTE: As of Root Server version 2.12.0, meetings cannot be saved without a Google Maps API Key.

Das Pröblem:

As most of you have probably already found out, Google now enforces HTTPS and API keys in their Maps.

This results in:

1) the dreaded “Oops! Something went wrong!” display:

Oops! Something Went Wrong!

NOTE: In the Root Server, this results in the map display shown as “all blue,” with no map displayed. Also, the “Set Longitude and Latitude to Address” button will not work.

2) and/or the “Unable to Determine Your Location” display:

Can't Find Your Location

This happens if you try to use a location-tracking feature, like the “Find Meetings Near Me” button in the Satellite.
Read more