I am trying to set up an internal-only “art” project where (to begin with) 4 phones can call each other. The goal is to have this run without any internet, simply raspberry pi and grandstream and some local dnsmasq magic. For now, I simply have the two using LAN DHCP with Automatic fixed IPs.
I have 4 analog (pulse) phones configured through a Grandstream HT704, talking to FreePBX on raspberry pi. I will submit screenshots of the configuration and provide any more info as requested.
I have the Asterisk logs showing that each is registered against their extensions configured in FreePBX so I know that the Grandstream HT704 is talking to Asterisk and registering the extensions but nothing shows when trying to dial the extensions from one to another, I just get an intermittent beep and I am unable to diagnose where the issue originates, but I assume it is generated by FreePBX since I get only silence if the network cable is removed from GrandStream.
I am sure that the configuration required is super simple, but I have tried searching every end of this forum, I have RTFM and documentation countless times and I have spent 3 long days over the past month trying everything I can find. I am not reaching out on this forum as anything other than a last resort and would hugely appreciate any help anyone can give. I am very willing to buy many beers/wines/gifts for the time and help given - I appreciate that people’s time has a value and will happily pay for people’s time if they can help me get one of my four phones to call each other.
Detailed screenshots and configuration can be provided but I’m unable to post a link or embed any image as a new user… How odd.
Many thanks to anyone who has the time and patience!
Russell
Please ignore the trunk - I was just desperately trying to figure out how to get these things working. I even created an inbound route, which I currently understand to not be necessary with no future WAN/internet/other entity. Here is the info I see in Asterisk Info → Peers under PJSIP:
Chan_PJSip Endpoints
Endpoint: <Endpoint/CID.....................................> <State.....> <Channels.>
I/OAuth: <AuthId/UserName...........................................................>
Aor: <Aor............................................> <MaxContact>
Contact: <Aor/ContactUri..........................> <Hash....> <Status> <RTT(ms)..>
Transport: <TransportId........> <Type> <cos> <tos> <BindAddress..................>
Identify: <Identify/Endpoint.........................................................>
Match: <criteria.........................>
Channel: <ChannelId......................................> <State.....> <Time.....>
Exten: <DialedExten...........> CLCID: <ConnectedLineCID.......>
==========================================================================================
Endpoint: 111/111 Not in use 0 of inf
InAuth: 111-auth/111
Aor: 111 1
Contact: 111/sip:[email protected]:5060 775c60fc19 Avail 14.924
Endpoint: 222/222 Not in use 0 of inf
InAuth: 222-auth/222
Aor: 222 1
Contact: 222/sip:[email protected]:5062 19301f6ec6 Avail 14.580
Endpoint: 333/333 Not in use 0 of inf
InAuth: 333-auth/333
Aor: 333 1
Contact: 333/sip:[email protected]:5064 ec2547fa8d Avail 15.107
Endpoint: 444/444 Not in use 0 of inf
InAuth: 444-auth/444
Aor: 444 1
Contact: 444/sip:[email protected]:5066 150154495d Avail 14.695
Endpoint: GrandStream_Trunk_111 Unavailable 0 of inf
Aor: GrandStream_Trunk_111 0
Contact: GrandStream_Trunk_111/sip:10.10.10.20:5060 f24e88ca73 Unavail 0.000
Transport: 0.0.0.0-udp udp 3 96 0.0.0.0:5060
Identify: GrandStream_Trunk_111/GrandStream_Trunk_111
Match: 10.10.10.20/32
Endpoint: anonymous Unavailable 0 of inf
Endpoint: dpma_endpoint Unavailable 0 of inf
Objects found: 7
Inside grandstream, here is how they are configured:
At the Asterisk console, type pjsip set logger on
which will cause all SIP traffic to appear in the Asterisk log (along with the usual entries). Make a failing test call, e.g. 222 to 333 and save the relevant section of the log (view in the GUI at Reports -> Asterisk Logfiles). Paste it at pastebin.freepbx.org and post the link here.
(If nothing appears, it’s probably an issue with the HT704 dialplan or related settings.)
Take screenshots of the Profile page and post here. If trouble posting multiple images, create a post at https://imgur.com/ and post the link.
If you have trouble posting a link, edit it by removing the http:// or https:// and replacing the dot before com or org with %2E then put the result on a line by itself. The reader can easily open it by triple-clicking (to select it), then right-clicking and choosing “Go to …”
I ssh’d in to raspbpx/asterisk and turned on logging. Here are some of the outputs of the test calls.
Dial 444 from 111. Both are registered. pastebin.freepbx%2Eorg/view/99cbff2f
Dial 111 from 444. pastebin.freepbx%2Eorg/view/f24dfbf1
Dial 789 from 111 (789 does not exist). pastebin.freepbx%2Eorg/view/c74c6cca
I’m suspicious of certain settings that I may have very wrong. Above all, the Extension -> Advanced -> Dial. I have tried many combinations and nothing seems to alter the output of the debug PJSIP log.
IP of Grandstream HT704: 10.10.10.20
IP of FreePBX/Asterisk: 10.10.10.13
Port of phones within Grandstream (111 => 5060, 222 => 5062 … 444 => 5056)
I’d suggest trying with normal DTMF phones before you go down a rabbit hole. Sounds like the grandstream doesn’t understand pulse dialing.
Thanks, Rob! My mistake for using the wrong wording initially. I’m actually using 3-4 DTMF phones right now to test and verify the basics. The cute old pulse phones have 2 ways forward after this first step - 1. via a couple of pulse to tone converters (which seem to work, but have issues with the ON HOOK awareness) or via grandstream’s pulse-awareness. Either way, for now, I’m using tone until everything else works as expected.
OK, so your first test ALWAYS is dialing *43. That is the echo test. That makes sure that you can talk to FreePBX, and you have audio.
I’d also suggest starting again with the FXS device - do a factory reset, configure one port, dial *43. Make sure that works. Then configure the second port, dial *43, make sure it works. Then try to call the first port from the second, and vice versa.
If you do it in simple steps, you won’t get buried in a bunch of confusion, where you may have done something wrong 10 steps ago, and didn’t notice.
Delete your extensions and set up just one. Leave everything at default except for User Extension (the extension number) and Secret (set a short password that matches what you have in the Grandstream).
In the Grandstream Profile 1 page, set the Dial Plan to {x+|*x+}
(this permits dialing * codes).
Confirm registration, test dialing *43. If it doesn’t work, post the log as you did before. If it works, configure another extension and test calling between them. Proceed from there.