Dear friends, I have the following issue:
I’m using a SPA3102 as FXO gateway to my Freepbx.
Everything runs ok, i can make and receive calls but only without Caller Id function.
If under PSTN settings / PSTN-To-VoIP Gateway Setup / PSTN-To-VoIP Gateway Enable i set it to YES, when I call to my FXO I can hear Freepbx Busy tone. When I set it to NO, I can receive the calls but without caller ID. Could please someone help me with it?
That seems very strange. I thought that if PSTN-To-VoIP Gateway Enable is off, an incoming call on the POTS line would not be sent to the PBX at all, though it could still ring through to an analog phone connected to Line 1 if enabled.
Several users have reported problems using SPA3102 as a pjsip trunk, if the FXS side is also in use as an extension.
Please post details of your of your setup, including trunk settings and screenshots of the PSTN Line page. Also, post the Asterisk log for a failed call that results in the PBX playing a busy tone.
Many thanks for your reply. I’m sorry if my english is not good enouth… I will try to explain more cleary and detailed all my trials and it’s behaivour when running the system:
Trial 01 SPA3102 IP: 192.168.15.235 ( Gateway is 192.168.15.1) FREEPBX IP: 192.168.15.250 (Gateway is 192.168.15.1)
They are all connected to a router whose ip is 192.168.15.1
SPA3102 Settings are: PSTN LINE TAB
Line Enable: Yes
Nat Map Enable: No
Nat Keep Alive Enable: No
Sip Settings: UDP - PORT 5062
Proxy and Registration
Proxy: 192.168.15.250
Outbound Proxy: Blank
Use Outbound Proxy: No
Use OB Proxy in Dialog: No
Subscriber Information
Display Name: Blank
User ID: PSTN
Password: 123testing
Use Auth Id: No
Audio Configuration
Preferred Codec: G711u
Use Pref Codec only: No
DTMF Tx Method: INFO
Dial Plans
Dial Plan 1 (xx.)
Dial Plan 2 2(S0<:551633710110>)
Dial Plans 3 to 8 (xx.)
VoIP-To-PSTN Gateway Setup
VoIP-To-PSTN Gateway Enable: Yes
VoIP Caller Auth Method: None
VoIP PIN Max Retry:
One Stage Dialing: Yes
Line 1 VoIP Caller DP: 1
Line 1 Fallback DP: None
PSTN-To-VoIP Gateway Setup
PSTN-To-VoIP Gateway Enable: Yes
PSTN Caller Auth Method: None
PSTN Ring Thru Line 1: No
PSTN PIN Max Retry: 3
PSTN CID For VoIP CID: Yes
PSTN Caller Default DP: 2
Off Hook While Calling VoIP: no
Line 1 Signal Hook Flash To PSTN: Disabled
FXO Timer Values (sec)
VoIP Answer Delay: 0
VoIP PIN Digit Timeout: 5
PSTN Answer Delay: 2
PSTN PIN Digit Timeout: 5
PSTN-To-VoIP Call Max Dur: 0
PSTN Ring Thru Delay: 3
VoIP-To-PSTN Call Max Dur: 0
PSTN Ring Thru CWT Delay: 3
VoIP DLG Refresh Intvl: 0
PSTN Ring Timeout: 4
PSTN Dialing Delay: 1
PSTN Dial Digit Len: .1/.1
PSTN Hook Flash Len: .1
PSTN Disconnect Detection
Detect CPC: Yes Detect Polarity Reversal: Yes
Detect PSTN Long Silence: no
Detect VoIP Long Silence: no
PSTN Long Silence Duration: 30
VoIP Long Silence Duration: 30
PSTN Silence Threshold: medium
Min CPC Duration: 0.2
Detect Disconnect Tone: Yes
Disconnect Tone: 420@8;60(.1/.1/1) “that’s correct for according to phone company”
FXO Port Impedance: 600ohms - “That’s correct according to my phone company”
Here are my settings ate my Freepbx 192.168.15.250 # TRUNKS
CHAN_SIP TRUNK
Trunk Name: PSTN_FXO
Outbound Caller ID: 551633710110
Maximum Channels: 1
Asterisk Trunk Dial Options: T
Continue If Busy: No
Disable Trunk: No
Incoming:
User Context: PSTN-IN
User Details:
username=PSTN
type=friend
secret=123test
qualify=yes
port=5062
nat=no
host=192.168.15.235
dtmfmode=inband
context=from-pstn
canreinvite=no
CONECTIVITY/INBOUND ROUTES:
Description:SPA3102_INBOUND
DID NUMBER: 551633710110
CALLER ID NUMBER: ANY
CID PRIORITY ROUTE: NO
ALERT INFO: NONE
RINGER VOLUME OVERIDE: NONE
SET DESTINATION: EXTENSIO 201 (This extension is working)
This is The Behaviour:
SPA3102 Power, Internet and Phone Leds are on (Green)
SPA 3102 Line led is off
Dialing to my cell phone using any extension
1- dial 0+Mycellphone number
In this case, Immediatly The SPA3102’s led “Line” becomes flashing red and call is completed with
success. Both call parties can chat with no issues. - This is perfectly working I solved Showing my CLI Report - Everything looks to be ok here:
-- SIP/PSTN-00000003 Internal Gosub(func-apply-sipheaders,s,1(3)) start
-- Executing [s@func-apply-sipheaders:1] NoOp("SIP/PSTN-00000003", "Applying SIP Headers to channel SIP/PSTN-00000003") in new stack
-- Executing [s@func-apply-sipheaders:2] Set("SIP/PSTN-00000003", "TECH=SIP" ) in new stack
-- Executing [s@func-apply-sipheaders:3] Set("SIP/PSTN-00000003", "SIPHEADER KEYS=") in new stack
-- Executing [s@func-apply-sipheaders:4] While("SIP/PSTN-00000003", "0") in new stack
-- Jumping to priority 12
-- Executing [s@func-apply-sipheaders:13] Return("SIP/PSTN-00000003", "") in new stack
== Spawn extension (from-pstn, 0981533000, 1) exited non-zero on 'SIP/PSTN-000 00003'
-- SIP/PSTN-00000003 Internal Gosub(func-apply-sipheaders,s,1(3)) complete G OSUB_RETVAL=
-- Called SIP/PSTN/981533000
> 0x7f065c0abb10 -- Strict RTP learning after remote address set to: 192. 168.15.235:16470
-- SIP/PSTN-00000003 answered PJSIP/202-00000003
> 0x7f066c052af0 -- Strict RTP learning after remote address set to: 192. 168.15.100:5004
-- Channel SIP/PSTN-00000003 joined 'simple_bridge' basic-bridge <e29bb29a-3 c59-4914-83e9-92bcf1e2d461>
-- Channel PJSIP/202-00000003 joined 'simple_bridge' basic-bridge <e29bb29a- 3c59-4914-83e9-92bcf1e2d461>
> 0x7f065c0abb10 -- Strict RTP switching to RTP target address 192.168.15 .235:16470 as source
> 0x7f066c052af0 -- Strict RTP switching to RTP target address 192.168.15 .100:5004 as source
> 0x7f066c052af0 -- Strict RTP learning complete - Locking on source addr ess 192.168.15.100:5004
> 0x7f065c0abb10 -- Strict RTP learning complete - Locking on source addr ess 192.168.15.235:16470
-- Channel PJSIP/202-00000003 left 'simple_bridge' basic-bridge <e29bb29a-3c 59-4914-83e9-92bcf1e2d461>
== Spawn extension (macro-dialout-trunk, s, 26) exited non-zero on 'PJSIP/202- 00000003' in macro 'dialout-trunk'
== Spawn extension (from-internal, 0981533000, 7) exited non-zero on 'PJSIP/20 2-00000003'
-- Executing [h@from-internal:1] Macro("PJSIP/202-00000003", "hangupcall") i n new stack
-- Executing [s@macro-hangupcall:1] GotoIf("PJSIP/202-00000003", "1?theend") in new stack
-- Goto (macro-hangupcall,s,3)
-- Channel SIP/PSTN-00000003 left 'simple_bridge' basic-bridge <e29bb29a-3c5 9-4914-83e9-92bcf1e2d461>
-- Executing [s@macro-hangupcall:3] ExecIf("PJSIP/202-00000003", "0?Set(CDR( recordingfile)=)") in new stack
-- Executing [s@macro-hangupcall:4] NoOp("PJSIP/202-00000003", "SIP/PSTN-000 00003 montior file= ") in new stack
-- Executing [s@macro-hangupcall:5] GotoIf("PJSIP/202-00000003", "1?skipagi" ) in new stack
-- Goto (macro-hangupcall,s,7)
-- Executing [s@macro-hangupcall:7] Hangup("PJSIP/202-00000003", "") in new stack
== Spawn extension (macro-hangupcall, s, 7) exited non-zero on 'PJSIP/202-0000 0003' in macro 'hangupcall'
== Spawn extension (from-internal, h, 1) exited non-zero on 'PJSIP/202-0000000
Now, when I try to call to my PSTN Number from my cellphone:
Nothing Happens!
PSTN Line led does not blink in SPA3102
I Can see that CLI is not receiving any information from the SPA3102, so I solved to Debug SPA-3102 and the only Info i receive when I try to call my PSTN number is:
FXO:DTMF CID START a
So, my problem is when receiving a call thru FreePbx. I also tried to change SPA3102 Parameter PSTN Line Register - Yes instead of no and I also tried to add Display name: PSTN instead of left blank. It still did not work.
I will make another post here with my second trial using PJSIP instead of CHANSIP. (In this case i can make and receive calls but wihtout caller ID Info. If i setup SPA3102 to send PSTN caller id to Voip, My freepbx stops receiving the call). I will explain better in my next post.
Make the Incoming User Details completely blank.
In the SPA, PSTN Line, set Register to yes.
I believe that if it registers ok and the PSTN line is idle, the LED should be on solid.
If you have trouble, please post a screenshot of the Info page (showing registration, line voltage and current, etc.) Also, what gets logged in syslog and debug from the SPA on an attempted incoming call, and what (if anything) appears in the Asterisk log.
OK, so the Registration now show Failed for the PSTN line, but Registered for Line 1. If you are using the default ports on the PBX (5060 for pjsip, 5160 for chan_sip), then change for the PSTN line: Proxy: 192.168.15.250:5160
See if the Info page now shows the PSTN Line Status as Registered. If not, we need to fix that first; report whether anything appears in Reports->Asterisk Logfiles when the SPA attempts to register.
Possibly, the SPA got ‘banned’ as a result of previous registration failures. Try disabling the FreePBX firewall if it is on and checking for any banned IPs.
Still no success… I tried changing the IP of my SPA3102 to 192.168.15.249. Freepbx still at 192.168.15.250. I also turned off firewall and i changed the username and password at SPA3102 and Freepbx to user: line_pstn password: 123testing
This is the log produced by Asterisk:
[2020-03-01 15:39:24] NOTICE[10795] chan_sip.c: Peer 'PSTN' is now Reachable. (17ms / 2000ms)
[2020-03-01 15:40:18] NOTICE[9794] res_pjsip/pjsip_distributor.c: Request 'REGISTER' from '<sip:[email protected]>' failed for '192.168.15.249:5160' (callid: [email protected]) - No matching endpoint found
[2020-03-01 15:40:18] NOTICE[15363] res_pjsip/pjsip_distributor.c: Request 'REGISTER' from '<sip:[email protected]>' failed for '192.168.15.249:5160' (callid: [email protected]) - No matching endpoint found
[2020-03-01 15:40:18] NOTICE[15363] res_pjsip/pjsip_distributor.c: Request 'REGISTER' from '<sip:[email protected]>' failed for '192.168.15.249:5160' (callid: [email protected]) - Failed to authenticate
[2020-03-01 15:40:18] NOTICE[9794] res_pjsip/pjsip_distributor.c: Request 'REGISTER' from '<sip:[email protected]>' failed for '192.168.15.249:5160' (callid: [email protected]) - No matching endpoint found
[2020-03-01 15:40:18] NOTICE[9794] res_pjsip/pjsip_distributor.c: Request 'REGISTER' from '<sip:[email protected]>' failed for '192.168.15.249:5160' (callid: [email protected]) - Failed to authenticate
That shouldn’t hurt anything (provided that it doesn’t conflict with something else on your network). However, that address should not appear anywhere in your FreePBX configuration, nor on the Line 1 or PSTN Line tabs of the SPA.
As @lgaetz noted, please confirm that the value of Proxy on the PSTN Line tab is 192.168.15.250:5160
If it still won’t register, post new screenshots of PSTN Line and Line 1 top sections (showing Proxy and Registration and Subscriber Information for each), and your trunk settings. At the Asterisk command prompt, type sip set debug on
and pjsip set logger on
restart the SPA so it attempts to register, paste the Asterisk log at https://pastebin.freepbx.org and post the link here.
Thank you all so much for helping… I still had no succes when trying to connect my Freepbx to SPA3102, so i Reseting router/Formating and installing Freepbx in PC / Factory reseting SPA3102 and Grandstream HT814. Starting from 0, my new config is defined as follows: Router
IP:192.168.15.1 - Netmask 255.255.255.0
DHCP is on from IP 192.168.15.101 to 192.168.15.199
FreePbx
Static IP: 192.168.15.3 - Netmask 255.255.255.0
Gateway is: 192.168.15.1
PJSIP Extensions: 202 to 207
SPA3102
Static IP: 192.168.15.5 - No user / No password
Netmask: 255.255.255.0
Registered PSIP Extension here: 207
After Installing FreePbx and setting up its IP/Username/ etc, I have set the “Intrusion Detection” White list as it could have all my devices SPA3102 and Grandstream HT814 free from problems:
After that I have setup all my extensions numbers on FreePbx and devices (Grandstream HT814 and SPA3102). Extensions got perfectly registered and are all working well.
Now, the PSTN trunk Setup:
I made different from the first time when I was setting up FreePbx ChanSip Trunk. Now, I setted up a PJSIP Trunk with the following Settings:
Please note that at the image above, i lefet the option PSTN CID For VoIP CID highlighted because when it is set to yes i cannot receive calls, and when it is off i can receive calls but without identifying the caller - i will explain with more details thereafter…
After Doing all this configurations, My SPA3102 has all its red leds on.
Behavior 01
When at SPA3102 / PSTN LINE / PSTN CID For VoIP CID: is setted to NO
From any Extension, I can dial 0+Number … Call is completed with Success.
Using My cellphone to call to my PSTN number, my extension group rings perfectly. I can Pickup the call parties are able to talk perfeclty. The only problem is that i can’t get Caller ID info. It shows SPA3102 username. CDRepport, shows Caller ID: " pstn_33710110" <pstn_33710110>
In this scenario that I can make and receive calls,
Here’s the log when receiving a call - I’m calling from 98153300 to PSTN plugged into SPA3102:
In this case, i can make calls, but Freepbx stops receving calls… As I can see in the log file, it looks that the caller id number assumes the SPA3102 user id so it’s trying so send CIDNumber@SPA3102IP and FreePbx is not Understanding it, so here is the log when i try calling my PSTN from cellphone 981533000:
[2020-03-01 20:44:33] NOTICE[15450] res_pjsip/pjsip_distributor.c: Request 'INVITE' from '<sip:[email protected]>' failed for '192.168.15.5:5062' (callid: [email protected]) - No matching endpoint found
[2020-03-01 20:44:33] NOTICE[15450] res_pjsip/pjsip_distributor.c: Request 'INVITE' from '<sip:[email protected]>' failed for '192.168.15.5:5062' (callid: [email protected]) - No matching endpoint found
[2020-03-01 20:44:33] NOTICE[15450] res_pjsip/pjsip_distributor.c: Request 'INVITE' from '<sip:[email protected]>' failed for '192.168.15.5:5062' (callid: [email protected]) - Failed to authenticate
[2020-03-01 20:44:33] NOTICE[15450] res_pjsip/pjsip_distributor.c: Request 'INVITE' from '<sip:[email protected]>' failed for '192.168.15.5:5062' (callid: [email protected]) - No matching endpoint found
[2020-03-01 20:44:33] NOTICE[15450] res_pjsip/pjsip_distributor.c: Request 'INVITE' from '<sip:[email protected]>' failed for '192.168.15.5:5062' (callid: [email protected]) - Failed to authenticate
Any suggestion on how to solve it?
Many thanks again !
Here’s an attempt to get it working with a pjsip trunk:
Temporarily disable Line 1 on the SPA.
In the trunk settings, set Authentication to Both and Match Inbound Authentication to Auth Username.
In Asterisk SIP Settings, change Endpoint Identifier Order to ip, auth_username, username, anonymous, header.
Restart (not just reload) Asterisk. Restart the SPA and confirm that the PSTN port still registers.
Test the trunk. If you have trouble, try setting Match Inbound Authentication to IP or Default. If you still have trouble, post details.
Reenable Line 1 on the SPA. See whether the trunk still works and whether the extension is working.
I tried do call my cellphone… When dialing 0981533000, immediately phone led begins flashing red and call is completed.
So i tried to call my Freepbx from my Cellphone. After some seconds it phone led also begins flashing red but I recieve a message in english saying that number dialed is not in service.
Here’s the Log: [2020-03-02 08:02:56] VERBOSE[9570] pbx_variables.c: Setting global variable 'SIPDOMAIN' to '192.168.15.3' [2020-03-02 08:02:56] VERBOSE[14031][C-00000003] pbx.c: Executing [01633710110@from-sip-external:1] NoOp("PJSIP/anonymous-00000003", "Received incoming SIP connection from unknown peer to 01633710110") in new stack [2020-03-02 08:02:56] VERBOSE[14031][C-00000003] pbx.c: Executing [01633710110@from-sip-external:2] Set("PJSIP/anonymous-00000003", "DID=01633710110") in new stack [2020-03-02 08:02:56] VERBOSE[14031][C-00000003] pbx.c: Executing [01633710110@from-sip-external:3] Goto("PJSIP/anonymous-00000003", "s,1") in new stack [2020-03-02 08:02:56] VERBOSE[14031][C-00000003] pbx_builtins.c: Goto (from-sip-external,s,1) [2020-03-02 08:02:56] VERBOSE[14031][C-00000003] pbx.c: Executing [s@from-sip-external:1] GotoIf("PJSIP/anonymous-00000003", "1?setlanguage:checkanon") in new stack [2020-03-02 08:02:56] VERBOSE[14031][C-00000003] pbx_builtins.c: Goto (from-sip-external,s,2) [2020-03-02 08:02:56] VERBOSE[14031][C-00000003] pbx.c: Executing [s@from-sip-external:2] Set("PJSIP/anonymous-00000003", "CHANNEL(language)=en") in new stack [2020-03-02 08:02:56] VERBOSE[14031][C-00000003] pbx.c: Executing [s@from-sip-external:3] GotoIf("PJSIP/anonymous-00000003", "1?noanonymous") in new stack [2020-03-02 08:02:56] VERBOSE[14031][C-00000003] pbx_builtins.c: Goto (from-sip-external,s,5) [2020-03-02 08:02:56] VERBOSE[14031][C-00000003] pbx.c: Executing [s@from-sip-external:5] Set("PJSIP/anonymous-00000003", "TIMEOUT(absolute)=15") in new stack [2020-03-02 08:02:56] VERBOSE[14031][C-00000003] func_timeout.c: Channel will hangup at 2020-03-02 08:03:11.618 -03. [2020-03-02 08:02:56] VERBOSE[14031][C-00000003] pbx.c: Executing [s@from-sip-external:6] Set("PJSIP/anonymous-00000003", "receveip=pjsip,remote_addr") in new stack [2020-03-02 08:02:56] VERBOSE[14031][C-00000003] pbx.c: Executing [s@from-sip-external:7] Log("PJSIP/anonymous-00000003", "WARNING,"Rejecting unknown SIP connection from 192.168.15.5:5062"") in new stack [2020-03-02 08:02:56] WARNING[14031][C-00000003] Ext. s: "Rejecting unknown SIP connection from 192.168.15.5:5062" [2020-03-02 08:02:56] VERBOSE[14031][C-00000003] pbx.c: Executing [s@from-sip-external:8] Answer("PJSIP/anonymous-00000003", "") in new stack [2020-03-02 08:02:56] WARNING[14031][C-00000003] translate.c: No translator path: (starting codec is not valid) [2020-03-02 08:02:56] WARNING[14031][C-00000003] translate.c: No translator path: (starting codec is not valid) [2020-03-02 08:02:56] VERBOSE[14031][C-00000003] pbx.c: Executing [s@from-sip-external:9] Wait("PJSIP/anonymous-00000003", "2") in new stack [2020-03-02 08:02:58] WARNING[14031][C-00000003] channel.c: Unable to find a codec translation path: (g723) -> (ulaw) [2020-03-02 08:02:58] ERROR[14031][C-00000003] channel.c: Could not return write format to its original state [2020-03-02 08:02:58] VERBOSE[14031][C-00000003] pbx.c: Executing [s@from-sip-external:10] Playback("PJSIP/anonymous-00000003", "ss-noservice") in new stack [2020-03-02 08:02:58] VERBOSE[14031][C-00000003] file.c: <PJSIP/anonymous-00000003> Playing 'ss-noservice.ulaw' (language 'en')
From where you are now, if in Asterisk SIP Settings you set Allow Anonymous Inbound SIP Calls to Yes, your inbound call will likely work. IMO you should test that (in case it shows up other problems). Report the result.
However, that can be a security issue so you need to find out why the SPA can’t register. Reboot the SPA so it tries to register and post what the Asterisk log shows on the attempt.
I’m just experiencing some audio issues now, when the calling party calls my FreePBX pstn line plugged into SPA3102, his voice is too low. He can hear me well but he has to speak louder. I suppose it is easy to adjust, only setting audio gains and turning off echo cancel.
Another thing that is happening sometimes, not often… if call from my cellphone to SPA3102, phone led begins flashing, my group of extensions begins ringing, caller Id shows the number, but when I try to answer the call from any extension, I can’t. When I take phone from the hook, this extension plays me a dial tone. The other extensions stops ringing. From my cell phone I still listen calling tone and spa3102 keeps flashing phone led. Sounds that Freepbx some times ignores the call.
When it happens again I will check the log file to see whats happening. Many thks again!
Do you know if Grandstream HT813 is better? Im asking because I have one here. If it sounds more reliable I can try to use it instead of 3102. Thanks