MikoPBX and FreePBX (PJSIP)

Instructions for integrating multiple PBX systems

Creating a Provider on MikoPBX

  1. In MikoPBX, go to "Routing""Telephony Providers":

"Telephony Providers" section
  1. Add a new SIP provider by clicking "Connect SIP":

"Connect SIP" button
  1. Fill in the following parameters:

  • Provider Name – any name

  • Account Type – Incoming Registration

Copy the "Username" and "Password"; you will need them later.

Provider parameters (MikoPBX)

Creating a Trunk on FreePBX

  1. In the FreePBX interface, go to "Connectivity""Trunks":

"Trunks" section
  1. Add a new trunk of type "chan_pjsip".

Adding a new trunk
  1. Insert the MikoPBX provider’s login into the "Trunk Name" field:

"Trunk Name" field
  1. Go to "pjsip Settings""Advanced":

  • From User – your MikoPBX provider login

  • Trust RPID/PAI – "yes"

  • Send RPID/PAI – "Send Remote-Party-ID header"

Advanced parameters of the trunk
  1. On the "Dialed Number Manipulation Rules" tab, define your dial patterns

Save the changes.

Dialed Number Manipulation Rules

Registration Variants

Next, choose one of the two registration methods:

FreePBX Registers on MikoPBX

Registration Sample 1

MikoPBX Registers on FreePBX

Set a password (complex, arbitrary). It must be the same on both MikoPBX and FreePBX.

Registration Sample 2

In the MikoPBX “advanced settings” of your provider, under "Additional Parameters," include:

[endpoint]
trust_id_inbound=yes
send_rpid=yes

Save and apply the changes.

Advanced Options of provider

Routing Configuration

  1. Define an outbound route (“Outbound Routing” article) in MikoPBX:

Outgoing routing template MikoPBX
  1. Define an inbound route (“Incoming Routing” article) in MikoPBX:

Inbound routing template MikoPBX

If necessary, define a separate route for each DID to direct calls to the correct destination (e.g., if a FreePBX user dials 202, route it to extension 202 on MikoPBX):

Inbound routing template (Individual DID configuring)
  1. Go to "Connectivity""Inbound Routes" in FreePBX and define an inbound route:

Inbound routing template FreePBX
  1. Go to "Connectivity""Outbound Routes" in FreePBX and define an outbound route:

Outbound routing template FreePBX

Subscriber Statuses

Sometimes users on one PBX need to see the statuses of users on the other PBX, for example when using BLF. To configure statuses:

MikoPBX

  1. In the "System File Customization" section, add the following text to the end of "extensions.conf" on the first PBX:

[internal-hints]
exten => 301,hint,PJSIP/301
exten => 303,hint,PJSIP/303
exten => 302,hint,PJSIP/302

List all internal extensions configured on FreePBX.

  1. For each PBX, in the "System file customization" section, add the following text to the end of "pjsip.conf":

[SIP-TRUNK-41C1B8B4-devicestate]
type=outbound-publish
server_uri=sip:[email protected]:5060
event=asterisk-devicestate

[SIP-TRUNK-41C1B8B4]
type=asterisk-publication
devicestate_publish=SIP-TRUNK-41C1B8B4-devicestate
device_state=yes

[SIP-TRUNK-41C1B8B4]
type=inbound-publication
event_asterisk-devicestate=SIP-TRUNK-41C1B8B4

FreePBX

  1. Use the "Config Edit" module to edit files.

  2. In "extensions_custom.conf," add all of MikoPBX’s internal extensions:

[mikopbx-hints]
exten => 201,hint,PJSIP/201
exten => 202,hint,PJSIP/202
  1. In "pjsip_custom.conf," add:

[SIP-TRUNK-41C1B8B4-devicestate]
type=outbound-publish
server_uri=sip:[email protected]:5060
event=asterisk-devicestate
outbound_auth=SIP-TRUNK-41C1B8B4

[SIP-TRUNK-41C1B8B4]
type=asterisk-publication
devicestate_publish=SIP-TRUNK-41C1B8B4-devicestate
device_state=yes
device_state_filter=^PJSIP/

[SIP-TRUNK-41C1B8B4]
type=inbound-publication
event_asterisk-devicestate=SIP-TRUNK-41C1B8B4

Last updated

Was this helpful?