Somleng SCFM
Somleng Simple Call Flow Manager (Somleng SCFM) (part of The Somleng Project) is an Open Source Contact Management System and Call Flow manager. It can manage both inbound and outbound calls through Somleng or Twilio.
Somleng SCFM is best used via the REST API. There is also a dashboard available so you can play around without writing any code.
This repository includes the following core features:
- REST API
- Dashboard
- Terraform infrastructure as code for deployment to AWS
Concepts
SCFM contains the following core concepts:
- Contact - A person with a phone number and optional custom metadata.
- Callout - A callout to a group of people with a call flow logic defined as code.
- Callout Participation - A participation of a contact in a callout.
- Phone Call - A phone call to the participation.
Unlike RapidPro, which provides a graphical user interface for designing call flows, SCFM is powered by programmable call-flow logic.
Documentation
Usage
Somleng SCFM can be run independent of Somleng, so it's not a requirement to have to full Somleng stack up and running. If you want actual phone calls to be delivered/answered then you can either run the full Somleng stack on your development machine by following the GETTING STARTED guide, or you can connect it to Twilio. Both options can be configured via the Dashboard.
Deployment
The infrastructure directory contains Terraform configuration files in order to deploy Somleng SCFM to AWS.
The infrastructure in this repository depends on some shared core infrastructure. This core infrastructure can be found in The Somleng Project repository.
The current infrastructure deploys Somleng SCFM to AWS behind an Application Load Balancer (ALB) to Elastic Container Service (ECS). There are two main tasks, a webserver task and a worker task. The webserver task has an NGINX container which runs as a reverse proxy to the main Rails webserver container. The worker task runs as a separate ECS service.
License
The software is available as open source under the terms of the MIT License.