At Facebook, we believe in empowering individuals and communities with the tools for communication. This is particularly relevant in rural areas, where traditional methods of building network infrastructure — such as centralized telecom roll-outs — are often infeasible for financial reasons.
Today we are announcing the release of the Community Cellular Manager (CCM) open source project. CCM is a software management and deployment suite enabling the operation of small-scale cellular networks that can also be used with the OpenCellular platform we announced in June. It makes it possible for organizations with limited technical capacity to leverage OpenCellular or third-party radio access network (RAN) solutions to build small-scale cellular networks in their own communities.
The CCM system consists of two primary components: The first is the CCM client, which supports local breakout and disconnected operation (e.g., caching of messages during network disconnects) and automatic deployment and runs on a variety of hardware platforms. The second is the CCM cloud, which allows for the centralized management (e.g., subscriber management, billing, and upgrading) and control (e.g., routing and configuration) of small-scale mobile networks.
Each base station runs the CCM client, a management agent that communicates with the CCM cloud for device registration, configuration, reporting, and management services. The agent acts as a coordinator and integration point for various other software components:
The CCM cloud is a Django-based web application providing simple registration of base stations and an interface for users to configure them. Operators use this cloud UI to set prices in their network, monitor usage on clients, and provision new subscribers on client networks. CCM clients maintain a connection to the CCM cloud, which configures each client node and synchronizes subscriber balances among all client devices in a network.
The CCM cloud also includes a number of open source backend systems to interconnect the local voice and SMS service on CCM clients to the global telephony network using standard SIP providers. The CCM cloud is multi-tenant by design, allowing a single installation of the cloud to support a number of separate CCM networks, each with their own billing policies and subscribers.
Finally, the CCM development environment includes configuration files for standard virtualization solutions, allowing for local installation and testing of both the client and cloud components.
With OpenCellular, CCM, and an open source software radio stack (e.g., Osmocom or OpenBTS), it is now feasible to build an entire functional 2G cellular network with open source components; from hardware to routing to management to interconnect.
In the Philippines, we've partnered with Globe Telecom and the University of the Philippines to practically validate this model of rural access. The first network utilizing the CCM software went up in a rural area lacking cellular coverage approximately 1.5 hours outside of Manila. The local community, primarily subsiding on agriculture and tourism, now has access to cellular connectivity. In conjunction with Globe and hardware vendor partners we're in the process of scaling out this model of rural cellular access in the Philippines. Globe will leverage CCM to manage prepaid charging while forging business partnerships with organizations who can provide the local resources to carry out on ground operations.
The code for CCM is available at https://github.com/facebookincubator/CommunityCellularManager. We welcome contributions to the project via GitHub.