Για την υλοποίηση του παραπάνω project θα χρειαστούμε:

1. Έναν μικρο-υπολογιστή που να διαθέτει 2 network interfaces (2 ethernet ports ή 1 ethernet + 1 wifi/wlan).  Εμείς χρησιμοποιήσαμε Raspberry Pi 4 το οποίο διαθέτει 1 ether + 1 wlan interface.
2. Ένα router ή managed switch με τουλάχιστον 2 ethernet ports, το οποίο οποίο να έχει τη δυνατότητα να δημιουργήσεις pppoe bridge και vlan interfaces. Εμείς χρησιμοποιήσαμε Mikrotik HeX Lite (πρώην RB750) με 5 x ethernet ports (10/100) και επεξεργαστή MIPS 24Kc 850MHz με 64ΜΒ RAM.

To internet router της Nova που έχουμε για την σύνδεση Fiber 100Mbps είναι το μοντέλο Nokia GPON Home Gateway G-2425G-A στο οποίο έχουμε πρόσβαση στην ip: 192.168.1.254
Για την παραμετροποίηση του Nokia router, πρέπει να εισέλθουμε με τους root κωδικούς:
Username: Nova_admin
Password : *************

ΒΗΜΑ 1 Απενεργοποίηση του TR069_INTERNET_R_VID_835 και VOIP_R_VID_837

 

 

 

Από το μενού Network –> WAN επιλέγουμε τα 2 interfaces διαδοχικά και τα κάνουμε disable. Ύστερα πατάμε save. Προσοχή το router κάνει restart σε κάθε save και θέλει λίγο χρόνο ώστε να μπορέσουμε να εισέλθουμε ξανά για να κάνουμε disable το επόμενο.

ΒΗΜΑ 2 Ενεργοποίηση του Bridge mode στην LAN1 του Nokia router

 

 

Από το μενού Network–>LAN βάζουμε το Port1 σε Bridge Mode και πατάμε save. Προσοχή! Μετά το save το router κάνει restart και χάνουμε την πρόσβαση. Θα την αποκτήσουμε ξανά στα επόμενα βήματα.

ΒΗΜΑ 3 Δημιουργία των bridge και vlan interfaces στο Mikrotik. Σύνδεση με το διαδίκτυο και όλες οι ρυθμίσεις (ip, nat, dhcp server, dns)

 

 

Δημιουργούμε δύο bridge interfaces από το μενού Bridge του Mikrotik. Στο ένα bridge interface θα γεφυρώσουμε τις ether1 και ether2 και στο άλλο τις υπόλοιπες ether3, ether4, ether5. Το πρωτο bridge θα είναι για το δίκτυο της Nova και το άλλο στην ουσία θα είναι το switch μας από το οποίο θα παίρνουμε εμείς internet και θα συνδέσουμε το δικό μας Lan εκεί.

 

 

Δημιουργούμε το vlan835 interface με id 835 πάνω στην ether1, από το μενού Interface–>Vlan. Ύστερα δημιουργούμε ένα pppoe client interface στο οποίο δηλώνουμε σαν interface, το vlan835. Στην καρτέλα Dial Out του pppoe client interface συμπληρώνουμε τα στοιχεία username και password από τη σύνδεση internet Nova, πατάμε apply και το interface κάνει connect.

 

 

Στο μενού Ip–>Address ορίζουμε την local lan ip μας στο Bridge interface του lan μας (στην συγκεκριμένη περίπτωση χρησιμοποιούμε ένα subnet με 32 ips, την 10.35.175.1/27 και στο ίδιο bridge interface δίνουμε και μια ip την 192.168.1.2/24 από το subnet του Nova router. Αυτο το κάνουμε για να έχουμε πρόσβαση στο μενού του Nova router (χτυπώντας πχ στον browser 192.168.1.254) αν το χρειαστούμε ποτέ στο μέλλον, ή αν θέλουμε να δούμε στατιστικά στοιχεία για το ΟΝΤ interface. Ύστερα φτιάχνουμε τα δύο masquerade NAT rules στο μενού Ip–>Firewall–>NAT για να μασκάρονται τα πακέτα στην έξοδο, δηλώντας σωστά ποια είναι τα out interfaces (pppoe-nova και bridge-3-5-switch).

 

 

 

Στη συνέχεια από το μενου Ip–>Pool δημιουργούμε ένα range από ips χωριζόμενο με  “-”  για το τοπικό μας lan, και ύστερα δημιουργούμε τον Dhcp server από το μενού Ip–>Dhcp server. Στην καρτέλα Network του dhcp server ορίζουμε το δίκτυό μας. Στην συγκεκριμένη περίπτωση χρησιμοποιούμε την network address του local lan που κόψαμε στο bridge-3-5-switch (10.35.175.0/27) και συμπληρώνουμε και 2-3 dns servers. Ο dhcp server είναι έτοιμος!

 

 

 

 

Μένει μόνο να δημιουργήσουμε τον dns server, ο οποίος θα είναι το ίδιο το Mikrotik σαν cache dns server. Αυτό θα μας δώσει το πλεονέκτημα της καλύτερης απόκρισης των σελίδων στο internet, μιας και ό,τι ζητάμε θα μας το σερβίρει κατευθείαν το Mikrotik. Από το μενού IP-Dns συμπληρώνουμε τον OpenDNS και της Google ή όποιον άλλον επιθυμούμε.

BHMA 4 Σύνδεση του Raspberry Pi 4 στο local lan μέσω WiFi και δημιουργία vlan837 για τη διασύνδεση με το voip δίκτυο της Nova

 

 

 

 

 

 

Υποσημείωση 1: To Raspberry Pi 4 είναι σεταρισμένο με Debian Bookworm 12 και FreePBX 17 με Asterisk 22. Η εγκατάσταση είναι default από τον boot installer του RaspBerry (έχουμε επιλέξει την default εγκατάσταση Debian Bookworm 64-bit χωρίς γραφικό περιβάλλον) όπου είναι εγκατεστημένος ο network-manager ο οποίος μας κάνει τη ζωή λίγο πιο έυκολη στην παραμετροποίηση των interfaces.

Υποσημείωση 2: Στο router της Nokia πλέον δεν λειτουργεί το wifi. Πρέπει λοιπόν να κουμπώσουμε στο switch μας (bridge-3-5-switch) ένα Access Point ή ένα δεύτερο Router και να τo ρυθμίσουμε κατάλληλα (θα του ορίσουμε ώς gateway την 10.35.175.1 με μάσκα /27 ή 255.255.255.224 και θα του δώσουμε μια στατική ip από αυτό το range. Επίσης πρέπει να του κλείσουμε τον Dhcp. Τη διαχείριση ips την κάνει αποκλειστικά το Mikrotik).

 

 

 

 

Εκτελούμε το terminal configurator του Network Manager δίνοντας: nmtui
Κάνουμε Edit a Connection, πηγαίνουμε στην ασύρματη σύνδεση και συμπληρώνουμε τα στοιχεία του wifi μας (ssid, password κλπ). Επιλέγουμε manual ip (θέλουμε το freepbx μας να έχει πάντα static ip). Αφού ολοκληρώσουμε τη ρύθμιση, βγαίνουμε και τεστάρουμε, δίνοντας στο terminal: ip a Πρέπει να δούμε ότι ότι πήρε την ip που του δώσαμε και το interface είναι up. Τεστάρουμε κάνοντας ping κάτι στο internet να δούμε ότι παίρνουμε απάντηση και είμαστε έτοιμοι.

Στη συνέχεια θα φτιάξουμε το vlan interface που θα προσαρτηθεί στην eth0 για να μας φέρει το voip lan της Nova μέσα στο Raspberry Pi.
Βεβαιωνόμαστε ότι έχουμε το πακέτο vlan εγκατεστημένο στο debian, αν όχι τότε:

# apt-get install vlan

Θα πρέπει τώρα να φορτώσουμε το module 8021q το οποίο είναι απαραίτητο για να παίξει το vlan.

# modprobe 8021q

Στη συνέχεια το περνάμε μόμινα στo  /etc/modules ωστε να το φορτώνει κάθε φορά που κάνουμε reboot το μηχάνημα

# echo "8021q"tee -a /etc/modules

Στη συνέχεια θα δημιουργήσουμε το vlan interface με id 837 με χρήση του εργαλείου nmcli
Προσοχή στο τμήμα του dhcp-client-id. Aντικαταστείτε με το δικό σας τηλεφωνικό αριθμό. Επίσης στο metric βάλτε κάτι μεγάλο (πχ 700) ώστε η σύνδεση αυτή να έχει πάντα δευτερεύουσα προτεραιότητα.

# nmcli connection add type vlan \ 
con-name "eth0.837" \ 
dev eth0 \ 
id 837 \ 
ip4 "" \ 
ipv4.method auto \ 
ipv4.dhcp-client-id "30210XXXXXXX_cid.ims.wind.gr" \
ipv4.route-metric 700 \
ipv4.dns-priority -1

Κάνουμε restart τον Network Manager (προσοχή, θα διακοπεί προσωρινα και το wlan, οπότε αν είμαστε με terminal putty από άλλο μηχάνημα θα πρέπει να κάνουμε reconnect)

# systemctl restart NetworkManager

Στη συνέχεια ελέγχουμε ότι πήραμε ip στο eth0.837

# ip addr show eth0.837

 

Ύστερα ελέγχουμε ότι πήραμε όλα τα routes από τη Nova

# route -n

 

 

 

Είμαστε έτοιμοι να ξεκινήσουμε τη ρύθμιση του FreePBX!

BHMA 5 Ρύθμιση FreePBX και δημιουργία Nova sip trunk

 

Στο μενού Settings–>Advanced Settings ρυθμίζουμε τα indication tones σε ελληνικά καθώς επίσης και το timezone.

 

 

 

 

 

Στο μενου Settings–>Asterisk SIP Settings πατάμε το Detect Network Settings και μας φέρνει όλο το voip lan καθώς και τις ρυθμίσεις του τοπικού μας δικτύου όπως τα βλέπει απο τα routes του debian.

 

 

 

Δημιουργούμε το trunk από το μενου Connectivity–>Trunks  +Add (chan_pjsip) Trunk. Ονομάζουμε το trunk μας sipnova και συμπληρώνουμε το callerid μας το οποίο είναι ο αριθμός του σταθερού μας που εμφανίζεται όταν καλούμε. (χωρίς το 30 μπροστά)
Στο μενού pjsip Settings συμπληρώνουμε το username μας το οποίο είναι ο αριθμός τηλεφώνου με το 30 μπροστά και παρακάτω το password της σύνδεσής μας. Συμπληρώνουμε τον sip server: sip-voice.forthnet.gr και τo port: 5060

 

 

 

Στο μενου pjsip Settings στην καρτέλα Advanced αλλάζουμε το DTMF Mode σε Inband κι όλες τις υπόλοιπες ρυθμίσεις τις αφήνουμε στο default όπως είναι ρυθμισμένες από το freepbx. Στην καρτέλα Codecs αφήνουμε ενεργούς μόνο τους alaw και ulaw. Είμαστε έτοιμοι!

 

 

Μπορούμε να ελέγξουμε αν το sip trunk έγινε registered με δύο τρόπους. Είτε πηγαίνοντας στο μενου Reports–>Asterisk Info και βλέπουμε με πράσινο χρώμα το sipnova. (Παίρνει λιγο χρόνο να εμφανιστεί οκ σ’ αυτό το μενού) είτε από το Asterisk CLI δίνοντας την εντολή pjsip show registrations.

Το trunk έχει γίνει register, και πλέον έχουμε μεταφέρει την τηλεφωνία από το router της Nova μέσα στο Raspberry Pi 4. Τα επόμενα βήματα είναι να δημιουργήσουμε τα sip endpoints μας (extensions) να φτιάξουμε τα Inbound και Outbound rules ώστε να μπορούμε να καλούμε και να δεχόμαστε κλήσεις, αλλά δεν θα καλυφθούν σ’ αυτόν τον οδηγό.