Howto Freepbx container

From Vidalinux Wiki
Revision as of 18:16, 8 January 2024 by Mandulete1 (talk | contribs)
Jump to navigation Jump to search

install docker

first we need to install docker and docker compose:

https://wiki.vidalinux.org/index.php/Howto_docker

create your own ssl cert

create rsa key:

openssl genrsa -out server.key 3072

create certificate csr:

openssl req -new -key server.key -out server.csr

fill the following blanks:

Country Name (2 letter code) []: US
State or Province Name (full name) []: Puerto Rico
Locality Name (eg, city) []: San Juan
Organization Name (eg, company) []: Vidalinux.com Corp.
Organizational Unit Name (eg, section) []: Linux Consulting
Common Name (eg, your name or your server's hostname) []: freepbx.ovox.io
Email Address []: asterisk@ovox.io
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: just press enter
An optional company name []: just press enter

create the certificate:

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

deploy freepbx container

clone the following repo from github:

git clone https://github.com/vidalinux/docker.git

enter docker-freepbx directory:

cd docker/docker-freepbx

create certs directory and add your domain name ssl certificate and key:

mkdir certs
cp server.crt server.key certs/

fix sql directory permissions:

chmod 755 -R sql/

if you want to change container parameters you need to edit docker-compose.yml file:

vi docker-compose.yml

deploy freepbx container using docker-compose:

docker-compose up -d

view containers deployment log using this command:

docker-compose logs -f

callcentric account

go to callcentric and create and account:

https://callcentric.com

add outbound plan to your account:

https://www.callcentric.com/rate/plans/

add inbound plan to your account:

https://www.callcentric.com/did/

change extension password:

https://my.callcentric.com/extensions.php

forward your inbound calls to your extension:

https://my.callcentric.com/pref_callforward.php

accesss freepbx interface

edit /etc/hosts to add your domain name matching your ssl certificates:

192.168.75.2 freepbx.ovox.io

enter freepbx interface using your domain:

https://freepbx.ovox.io

configure freepbx

add iax2 extension:

user extension: 101
display name 101
outbound cid: 77777777
secret: mypassword

add pjsip trunk:

PJSIP Trunk / General

trunk name: callcentric
outbound callerid: 77777777
maximum channels: 5

PJSIP Trunk / Dial Number Manipulation Rules

( 1 ) | [ 787. ]
( 1 ) | [ 939. ]

PJSIP Trunk / pjsip Settings / General

username: 1777xxxxxxx
secret: mypassword
sip server: sip.callcentric.net
context: from-pstn

PJSIP Trunk / pjsip Settings / Advanced

send line in registration: yes
send connected line: no
permanent auth rejection: no
user = phone: no
from domain: sip.callcentric.net
from user: 1777xxxxxxx

configure outbound routes on freepbx:

Outbound Routes / Route Settings

route name: callcentric-outgoing
override extension: no
trunk sequence for matched routes: callcentric

Outbound Routes / Dial Patterns

(   ) | [ 1NXXNXXXXXX ]
( 1 ) | [ 787. ]
( 1 ) | [ 939. ]

configure inbound routes on freepbx:

description: callcentric-incoming
did number: ANY
callid number: ANY
cid priority route: no
set destination: Extensions / 101

install iax2 client

install zoiper client on archlinux:

yay -S zoiper

download zoiper client for debian:

https://www.zoiper.com/en/voip-softphone/download/zoiper5/for/linux-deb

install zoiper client on debian:

dpkg -i Zoiper5_5.6.1_x86_64.deb

download zoiper client for rhel:

https://www.zoiper.com/en/voip-softphone/download/zoiper5/for/linux-rpm

install zoiper client on rhel:

yum install -y Zoiper5_5.6.1_x86_64.rpm

download zoiper client for windows:

https://www.zoiper.com/en/voip-softphone/download/zoiper5/for/windows

debug or troubleshoot

to enter freepbx_server container environment:

docker exec -it freepbx_server bash

inside the container to view asterisk server logs:

asterisk -vvr

turn on debug:

asterisk -r
core set verbose 5
core set debug 5
sip set debug on
module logger reload

revert debug settings:

asterisk -r
core set verbose 0
core set debug 0
sip set debug off
module logger reload

show iax2 extentions:

iax2 show peers

show sip trunks registrations:

pjsip show registrations

show all commands help:

core show help

references