← Downloads

Lulu Cloud Connect for FreePBX

Bring the phone system already sitting in your office onto the Lulu Integrations cloud — without moving your phone line.

Download version 2.4.1 39 KB · for FreePBX 15 and 16 · MD5 1393bc4b8dc2eaa10b207b5fa4e9a9c8

What this is, in plain words

Many businesses in India get their phone line delivered over a dedicated connection from the operator — a separate cable that comes into the building and plugs into your phone system. That line only exists inside your building. It is not on the public internet, and the operator cannot simply redirect it to a data centre, no matter who asks. This is true of Jio's SIP trunks, and of most similar handoffs.

That normally means you must choose: keep your existing line, or move to a cloud phone system. Lulu Cloud Connect removes the choice. It is a small piece of software you add to the FreePBX system you already own. Once installed, it builds a private, encrypted connection from your office to our platform, and from then on your existing phone line behaves as though it were plugged directly into our cloud.

Your team can answer your existing numbers from anywhere, calls out still go through your own line at your own rates, and everything the platform offers — call recording, reports, the AI telecaller, your CRM — starts working on the line you already have.

Nothing about your current setup is thrown away. The phone line stays exactly where it is. The trunk that works today is left untouched. Only the numbers you specifically choose are routed to the cloud — every other number keeps ringing exactly where it rings now.

What you need before you start

  • Your FreePBX system, version 15 or 16, with its web page open in front of you.
  • Someone who can log in as an administrator on that system — usually whoever set up your phones, or your IT person.
  • An account on our portal, at your own portal address — the web address you sign in to, such as yourcompany.luluintegrations.com.
  • An enrolment code. This is a short code such as LULU-4K2P-9QX7 that we generate for your site. Ask us for one, or get it yourself from your portal under Outside Numbers → Connect my own number or trunk.
  • A list of the phone numbers you want the cloud to handle. Start with one you can spare — you can add the rest once you have seen it work.
  • About twenty minutes, ideally at a quiet time of day.

You do not need a static IP address, a new internet connection, or any change to your firewall or router. The connection is made outward from your office, the same way a browser reaches a website.

Step-by-step: getting connected

1Download the file

Use the download button at the top of this page. You will get a file called lulucpe-2.4.1.tgz. Save it somewhere you can find it, such as your Desktop. Do not unzip or open it — FreePBX wants the file exactly as it is.

2Upload it into FreePBX

In the FreePBX web page, go to Admin → Module Admin, then click the Upload modules tab. Choose Upload from local file, pick the file you just downloaded, and upload it. Then find Lulu Cloud Connect in the module list, mark it Install, and click Process followed by Apply Config.

If FreePBX refuses the file and mentions a signature, it is being cautious about software it did not publish itself. Your administrator can allow it by running this once on the phone system:
fwconsole setting SIGNATURECHECK 0
Then upload the file again.

3Run the one-time preparation command

Because this module sets up a network connection, it needs permission that the FreePBX web page does not normally have. Your administrator runs this once, on the phone system itself:

sudo bash /var/www/html/admin/modules/lulucpe/bin/bootstrap.sh

It takes a second and prints Bootstrap complete. This grants exactly seven specific commands and nothing wider. If we supplied your box ready-made, this is already done and you can skip this step.

4Open the page and check what it found

In FreePBX, go to Connectivity → Lulu Cloud Connect. The page examines your system as it loads. If you already have a working phone line on it, you will see a message naming that line — for example "Found a carrier trunk already on this box: jiosip" — and the form will already be filled in for you.

Leave the first box set to "Use the trunk already configured on this PBX". This is the safe choice and it means your existing line is used as it stands, with nothing rewritten.

5Enter your numbers

In the Numbers on this trunk box, type the phone numbers you want the cloud to answer, separated by commas, in full international form — for example +915223106647, +915223106648.

Start with one number only, and preferably not your main advertised number. Any number you list here will begin ringing through the cloud instead of wherever it rings today. Any number you leave out is completely unaffected. Once you are happy, come back and add the rest.

6Paste your enrolment code

Lower down, under Cloud, enter your own portal address — the same web address you sign in to, such as https://yourcompany.luluintegrations.com — and paste the enrolment code we gave you into the Enrolment code box. Each code works for one phone system and expires after 30 days.

7Press Save & activate

This is the only button you need. In order, it configures your line, creates the private connection to our platform, sets up call routing in both directions, publishes your numbers to your portal, and applies the changes. It takes up to a minute, and the status panel on the right fills in as it goes.

If this is a brand-new system

Everything above assumes your phone line already works on this system. On a new box — one we have shipped you, or one you are building yourself — the operator's cable is plugged into a socket that has never been set up. In that case, choose "Create the trunk from the details below" at the top of the page and an extra section appears: Carrier network connection.

When the operator installs your line they hand over a slip of paper with three things on it. That is all this section asks for:

  • Which socket the carrier cable is in. The list shows every network socket on the machine with what it currently holds. The one carrying your internet is greyed out and cannot be selected — configuring that one would cut the system off.
  • The IP address and prefix the operator gave you (for example 100.65.146.148 and 28). If they said it is assigned automatically, choose DHCP instead and leave these blank.
  • The carrier gateway (for example 100.65.146.145).

Press Configure the cable. The system sets that socket up, and adds routes so that traffic for the operator's equipment — and only that traffic — travels down that cable. Your internet keeps its own route and is not affected. If the settings turn out to be wrong and the cable fails to come up, the previous configuration is put straight back rather than leaving you with a system that has lost its network.

Then carry on with the trunk details above and press Save & activate as normal. The new Carrier cable connected light appears in the status panel, showing the socket, whether it is up, and the address it holds.

Under Advanced trunk settings you will also find transport, keypad-tone handling, from-user and from-domain, how often the line is checked, and the number of simultaneous calls your operator sold you. These have sensible defaults and are only there for operators who ask for something unusual.

Reading the status lights

The panel on the right of the page is the honest answer to "is it working?". Green means checked and working. Amber means worth a look but not broken. Red means it needs fixing.

What it saysWhat it means
Module installed correctly The preparation command in step 3 has been run. Red here means go back and run it.
Configuration written Your settings were saved onto the phone system successfully.
Carrier cable connected Shown when this module set the carrier socket up: which socket, whether it is up, and the address it holds. Red usually means the cable is unplugged.
Carrier circuit reachable Your operator's equipment can be reached, and it names the cable it travels down.
Carrier SBC responds Your operator answered a network ping. Some operators deliberately ignore these, so amber here is normal and not a fault as long as the next row is green.
Carrier trunk qualified Your phone line answered a proper telephone-system check, with the response time. This is the row that matters.
Carrier registration Only appears if your system tries to log in to your operator. Many operators, Jio included, identify you by your connection instead and refuse the login. Amber here usually means a leftover setting that does no harm.
Incoming calls working Taken from your actual call records: the last call that came in, who from, and how many in the past day. Not a guess from settings.
Outgoing calls working The last call that went out, to whom, and how many were answered in the past day.
Cloud tunnel The private connection to our platform, and how recently the two ends spoke.
Cloud SIP path Our platform is answering your phone system across that connection.

Proving it works

Underneath the lights are two tests you can run yourself.

Outgoing

Type your own mobile number into Ring a number through the carrier and press Test outbound. Your phone should ring within a few seconds. Answer it — you will hear a short recorded message, which confirms not just that the call connected but that the audio is travelling correctly. The page then confirms the call by finding it in your call records.

Incoming

Press Start listening, then ring one of the numbers you listed from your mobile. Let it ring, then press Check. The page reports the call it found: the time, the number that called, and whether it was handed to the cloud or answered by your existing setup. That last detail is the one to look for — it tells you the handover is genuinely working rather than the call simply having arrived.

On your portal

Sign in at your own portal address — the web address you sign in to, such as yourcompany.luluintegrations.com. The numbers you listed will now be present and ready to point at a person, a team, a menu or the AI telecaller, exactly like any other number on the platform.

What it changes on your phone system

Everything this module adds is written into two clearly-marked sections of your configuration, in files that FreePBX keeps for exactly this purpose and never rewrites on its own. Each section begins with a line reading BEGIN lulucpe and ends with END lulucpe.

What it does not do:

  • It does not change the phone line that already works — not its settings, not its login, nothing. If a working line is found, it is used as it stands.
  • It does not touch your extensions, your menus, your recordings or your existing call routing.
  • It does not take numbers you did not list. There is deliberately no "everything" option, because on a working phone system that would silently divert calls people are relying on.
  • It does not open any door into your network. The connection is made outward only, and nothing from outside can reach in through it uninvited.

Pressing Disconnect on the same page, or removing the module, takes out precisely what was added and puts the system back exactly as it was.

Changing the details later, or a lost code

Both are done in the same place you started: your portal, under Outside Numbers → Connect a Number or Source (Trunk). The carrier details you entered are shown back to you, filled in, so you can correct one line without retyping the rest.

A detail was wrong — say the SBC address, or a number range that grew.

  1. Change the line that is wrong and press Save and get a new code.
  2. On the phone system, open Connectivity → Lulu Cloud Connect, put the new code into step 2 and press Re-link. The corrected details travel down with it.

Until you do that second part, the phone system keeps running on the details it collected last time. Saving in the portal on its own changes nothing about a line that is already up — no call is interrupted by it.

The code is lost.

Press the same Save and get a new code button with nothing changed. A code cannot be shown to you a second time — we keep only a fingerprint of it, never the code itself — so the answer to a lost code is always a fresh one. Issuing it stops the old code working, which is the point: a code written on a note in an office cupboard should not stay valid for a year. A code you have not used within 30 days expires by itself.

Note that a code only lets a phone system join. It is not a password to your account and it does not carry over to anything else, so a code found by someone else, after you have issued a new one, is worth nothing.

If something does not work

"The helper is not installed"

Step 3 has not been run, or it did not finish. Run it again and read what it prints.

The tunnel never shows a handshake

Your office network is not letting the connection out. It uses UDP port 51820 outbound. Most networks allow this already; a stricter firewall may need it permitted. Nothing needs to be opened inbound — only outbound.

"That enrolment code is not recognised"

Codes are one per site and expire after 30 days. Check for a typo — the code deliberately avoids look-alike characters, so there is no letter O or number 0 confusion — or ask us for a fresh one.

Outgoing calls fail but the line shows green

Almost always the number format. Operators are particular about whether numbers carry the international +. Change the Number format setting on the page to the other option, press Save & activate, and test again.

An incoming test call was answered by the old setup

That number was not in your list, or the list has not been saved yet. Check the number is written in full international form with the +, exactly as your operator delivers it.

Still stuck

Contact support and tell us what the status panel shows. Those rows tell us almost everything we need, and we can see your box's own reports from our side.

Technical appendix

For engineers who want to know precisely what happens.

  • Transport. WireGuard, outbound to UDP 51820, with PersistentKeepalive = 25 so the platform can originate calls into the site through NAT or CGNAT. A key pair is generated on the box at enrolment; the private key is written 0600 to /etc/wireguard/lulucpe.key and never transmitted. Each device holds a unique key — none is ever shared between sites.
  • Addressing. The platform allocates a fixed tunnel address per site from 10.8.0.0/16, which is what our routing and trust rules reference — so a site's ISP changing its public address changes nothing.
  • Privilege. The FreePBX web layer runs as asterisk and is granted exactly seven whitelisted commands via /etc/sudoers.d/lulucpe. The helper accepts its configuration on standard input rather than as a file path, so the web process cannot direct it at a configuration of its own.
  • Configuration. Written between markers in pjsip_custom.conf and extensions_custom.conf. Trunk creation is refused if an existing endpoint already matches the same SBC address, since two identify sections for one address resolve by load order.
  • Inbound. Per-DID entries in from-pstn-custom. There is no catch-all pattern, by design.
  • Diagnostics. Call state is read from the CDR database rather than inferred from configuration, because a trunk can qualify perfectly and still carry no calls.

Download version 2.4.1 Talk to support