Wednesday, December 9, 2020

Link SIP phone throuhgh PBX to Allstar Node.

 I honestly have no idea why someone would want to do this...but I done it anyway... making a PBX so I could  do all the things made some sense...linking the PBX (asterisk) to the Allstar node (asterisk) seems ridiculous.


So here is how to do it.  (this is more of a quick and dirty reference rather than a walk through explaining everything)


Background...in 2018 I built an Allstar Node using a cheap radio and a Raspberry Pi.  My access to control it was either DTMF on the radio, or logging in using the built in web page.


Also a couple of years ago I got a Hamshack Hotline number and had that on my SIP phone.


(some other things were done...time passed) 


And just now I built a PBX using Incredible PBX on a Raspberry Pi.


So obviously I would link the Allstar node to the PBX.   Trust me, there are much more advanced set ups that folks have done with Asterisk and radios...Such as K8JTK's multimode hub.


Anywho it took a day of pain and watching error screens before I got the solution...and the first verified solution did not work at all...maybe I typo'd something, but it was wrong.


This won't be full of info, because it is pretty simple...it is just the terminology that is difficult.


If  you built a PBX then you know some of these terms already.


Big picture is Allstar uses Asterisk to do all the heavy work, the DTMF controls the hub linking etc.

Incredible PBX (FreePBX) ALSO uses Allstar for all the heavy lifting...it just has a pretty GUI to make admin easier.


What we will do is connect two peer Asterisk servers.   Allstar <-> Incredible PBX


To do that we will Trunk them together using the IAX protocols.

That means, on Incredible PBX we will ADD a IAX Trunk.


If you already have the Allstar node, then you are already used to editing the various .conf files.


We will edit two of them.  iax.conf and extensions.conf     (if you were to connect a SIP phone to the Allstar node directly you would edit sip.conf and externsions.conf. SIP for phone, IAX for server)


IAX.conf is basically the 'add IAX Trunk' for the folks that like using the linux terminal.

[pbx2_to_pbx1}
host=(IP address of PBX2 goes here)
username=pbx1_to_pbx2
secret=UseALongPasswordNumbersLike1234AreOk
type=friend
disallow=all
allow=ulaw

[pbx1_to_pbx2]
host=  (IP address of PBX1 goes here)
username=pbx2_to_pbx1
secret=UseALongPasswordNumbersLike1234AreOk
type=friend
context=radio-control
disallow=all
allow=ulaw

So those two matching entries are the Trunk entries or IAX.conf entries, depending on which device you are working on.   The HUGE hint is to look at the name in [brackets] that is the TRUNK name.   Note also that the OPPOSITE machine uses that TRUNK name as USERNAME and vice versa.   That lets the two Trunks to talk to each other.

Not understanding that, and following the wrong instructions took a day to figure out.


You will note in my screenshots that I didn't put all that stuff in it...but the important takeaway is the relation of the "Trunk Name" in the OUTGOING section of the Trunk entry to the username of the Trunk in the machine you want to link to.


The other edit required is in the  extensions.conf   again note the name in [brackets] it has to match the "context=" value in the Allstar node IAX.conf.


So how does it work?  I select the same extension I am using for GV,  punch in my Allstar node number, the PBX connects my phone to the Allstar node.  From there I punch in the codes to connect to outside nodes...or just listen to what is coming over my node.   I haven't done any speed dials etc yet...


Some links.

I used this to make the extensions.conf

Here is where I learned the correct format for the iax.conf/Trunk entries

Some screenshots.






No comments: