Outbound calls not completing with Grandstream GXW4108

Hi, my outbound calls are not completing, inbound is okay I have no problem with that. It looks as if the call is placed to the Grandstream instead of the number I want to dial. The only problem is we updated the firmware of the Grandstream (1.4.1.4). The previous Grandstream firmware was working fine. I have also tried without a prefix 9 that didn’t work either. The extension of the Grandstream is 5100 and my dial pattern is 9XXXXXX or XXXXXX. I only have one line to the Grandstream, the line is connected and idle.

The PBX is Elastix 2.2.0.14 with Freepbx 2.8.1.7

peer details

type=peer
host=192.168.2.75
qualify=yes&2000
relaxdtmf=yes&yes
context=from-trunk
dtmfmode=auto
dtmf=auto
canreinvite=no

	User Accounts 	SIP User ID 	SIP Account ID 	SIP Registration

System Info Account 1 “5100” “0” “Yes”

server*CLI> sip show peers
Name/username Host Dyn Forcerpor t ACL Port Status
235 (Unspecified) D N A 0 UNKNOWN
4190 (Unspecified) D N A 0 UNKNOWN
5100/5100 192.168.2.75 D N A 5 060 OK (2 ms)
5110/5110 192.168.2.19 D N A 5 060 OK (4 ms)
5111/5111 192.168.2.36 D N A 5 060 UNREACHABLE
5130/5130 192.168.2.23 D N A 5 060 UNREACHABLE
5150/5150 192.168.2.34 D N A 5 060 OK (16 ms)
5510/5510 192.168.2.39 D N A 5 060 UNREACHABLE
5 060 Unmonitored
fxoGX4104 192.168.2.75 5 060 OK (2 ms)
10 sip peers [Monitored: 4 online, 5 offline Unmonitored: 1 online, 0 offline]
– Remote UNIX connection
– Remote UNIX connection disconnected
== Using SIP RTP TOS bits 184
== Using SIP RTP CoS mark 5
– Executing [945XXXX@from-internal:1] Macro(“SIP/5110-00000008”, “user-callerid,SKIPTTL,”) in new stack
– Executing [s@macro-user-callerid:1] Set(“SIP/5110-00000008”, “AMPUSER=5110”) in new stack
– Executing [s@macro-user-callerid:2] GotoIf(“SIP/5110-00000008”, “0?report”) in new stack
– Executing [s@macro-user-callerid:3] ExecIf(“SIP/5110-00000008”, “1?Set(REALCALLERIDNUM=5110)”) in new stack
– Executing [s@macro-user-callerid:4] Set(“SIP/5110-00000008”, “AMPUSER=5110”) in new stack
– Executing [s@macro-user-callerid:5] Set(“SIP/5110-00000008”, “AMPUSERCIDNAME=HQ”) in new stack
– Executing [s@macro-user-callerid:6] GotoIf(“SIP/5110-00000008”, “0?report”) in new stack
– Executing [s@macro-user-callerid:7] Set(“SIP/5110-00000008”, “AMPUSERCID=5110”) in new stack
– Executing [s@macro-user-callerid:8] Set(“SIP/5110-00000008”, “CALLERID(all)=“HQ” <5110>”) in new stack
– Executing [s@macro-user-callerid:9] ExecIf(“SIP/5110-00000008”, “0?Set(CHANNEL(language)=)”) in new stack
– Executing [s@macro-user-callerid:10] GotoIf(“SIP/5110-00000008”, “1?continue”) in new stack
– Goto (macro-user-callerid,s,19)
– Executing [s@macro-user-callerid:19] Set(“SIP/5110-00000008”, “CALLERID(number)=5110”) in new stack
– Executing [s@macro-user-callerid:20] Set(“SIP/5110-00000008”, “CALLERID(name)=HQ”) in new stack
– Executing [s@macro-user-callerid:21] NoOp(“SIP/5110-00000008”, “Using CallerID “HQ” <5110>”) in new stack
– Executing [945XXXX@from-internal:2] NoOp(“SIP/5110-00000008”, “Calling Out Route: rtPSTN”) in new stack
– Executing [945XXXX@from-internal:3] Set(“SIP/5110-00000008”, “MOHCLASS=default”) in new stack
– Executing [945XXXX@from-internal:4] Set(“SIP/5110-00000008”, “_NODEST=”) in new stack
– Executing [945XXXX@from-internal:5] Macro(“SIP/5110-00000008”, “record-enable,5110,OUT,”) in new stack
– Executing [s@macro-record-enable:1] GotoIf(“SIP/5110-00000008”, “1?check”) in new stack
– Goto (macro-record-enable,s,4)
– Executing [s@macro-record-enable:4] ExecIf(“SIP/5110-00000008”, “0?MacroExit()”) in new stack
– Executing [s@macro-record-enable:5] GotoIf(“SIP/5110-00000008”, “0?Group:OUT”) in new stack
– Goto (macro-record-enable,s,15)
– Executing [s@macro-record-enable:15] GotoIf(“SIP/5110-00000008”, “0?IN”) in new stack
– Executing [s@macro-record-enable:16] ExecIf(“SIP/5110-00000008”, “1?MacroExit()”) in new stack
– Executing [945XXXX@from-internal:6] Macro(“SIP/5110-00000008”, “dialout-trunk,2,45XXXX,”) in new stack
– Executing [s@macro-dialout-trunk:1] Set(“SIP/5110-00000008”, “DIAL_TRUNK=2”) in new stack
– Executing [s@macro-dialout-trunk:2] GosubIf(“SIP/5110-00000008”, “0?sub-pincheck,s,1”) in new stack
– Executing [s@macro-dialout-trunk:3] GotoIf(“SIP/5110-00000008”, “0?disabletrunk,1”) in new stack
– Executing [s@macro-dialout-trunk:4] Set(“SIP/5110-00000008”, “DIAL_NUMBER=45XXXX”) in new stack
– Executing [s@macro-dialout-trunk:5] Set(“SIP/5110-00000008”, “DIAL_TRUNK_OPTIONS=tr”) in new stack
– Executing [s@macro-dialout-trunk:6] Set(“SIP/5110-00000008”, “OUTBOUND_GROUP=OUT_2”) in new stack
– Executing [s@macro-dialout-trunk:7] GotoIf(“SIP/5110-00000008”, “1?nomax”) in new stack
– Goto (macro-dialout-trunk,s,9)
– Executing [s@macro-dialout-trunk:9] GotoIf(“SIP/5110-00000008”, “0?skipoutcid”) in new stack
– Executing [s@macro-dialout-trunk:10] Set(“SIP/5110-00000008”, “DIAL_TRUNK_OPTIONS=”) in new stack
– Executing [s@macro-dialout-trunk:11] Macro(“SIP/5110-00000008”, “outbound-callerid,2”) in new stack
– Executing [s@macro-outbound-callerid:1] ExecIf(“SIP/5110-00000008”, “0?Set(CALLERPRES()=)”) in new stack
– Executing [s@macro-outbound-callerid:2] ExecIf(“SIP/5110-00000008”, “0?Set(REALCALLERIDNUM=5110)”) in new stack
– Executing [s@macro-outbound-callerid:3] GotoIf(“SIP/5110-00000008”, “1?normcid”) in new stack
– Goto (macro-outbound-callerid,s,6)
– Executing [s@macro-outbound-callerid:6] Set(“SIP/5110-00000008”, “USEROUTCID=”) in new stack
– Executing [s@macro-outbound-callerid:7] Set(“SIP/5110-00000008”, “EMERGENCYCID=”) in new stack
– Executing [s@macro-outbound-callerid:8] Set(“SIP/5110-00000008”, “TRUNKOUTCID=42XXXX”) in new stack
– Executing [s@macro-outbound-callerid:9] GotoIf(“SIP/5110-00000008”, “1?trunkcid”) in new stack
– Goto (macro-outbound-callerid,s,12)
– Executing [s@macro-outbound-callerid:12] ExecIf(“SIP/5110-00000008”, “1?Set(CALLERID(all)=42XXXX)”) in new stack
– Executing [s@macro-outbound-callerid:13] ExecIf(“SIP/5110-00000008”, “0?Set(CALLERID(all)=)”) in new stack
– Executing [s@macro-outbound-callerid:14] ExecIf(“SIP/5110-00000008”, “0?Set(CALLERID(all)=)”) in new stack
– Executing [s@macro-outbound-callerid:15] ExecIf(“SIP/5110-00000008”, “0?Set(CALLERPRES()=prohib_passed_screen)”) in new stack
– Executing [s@macro-dialout-trunk:12] GosubIf(“SIP/5110-00000008”, “0?sub-flp-2,s,1”) in new stack
– Executing [s@macro-dialout-trunk:13] Set(“SIP/5110-00000008”, “OUTNUM=45XXXX”) in new stack
– Executing [s@macro-dialout-trunk:14] Set(“SIP/5110-00000008”, “custom=SIP/fxoGX4104”) in new stack
– Executing [s@macro-dialout-trunk:15] ExecIf(“SIP/5110-00000008”, “0?Set(DIAL_TRUNK_OPTIONS=M(setmusic^default))”) in new stack
– Executing [s@macro-dialout-trunk:16] Macro(“SIP/5110-00000008”, “dialout-trunk-predial-hook,”) in new stack
– Executing [s@macro-dialout-trunk-predial-hook:1] MacroExit(“SIP/5110-00000008”, “”) in new stack
– Executing [s@macro-dialout-trunk:17] GotoIf(“SIP/5110-00000008”, “0?bypass,1”) in new stack
– Executing [s@macro-dialout-trunk:18] GotoIf(“SIP/5110-00000008”, “0?customtrunk”) in new stack
– Executing [s@macro-dialout-trunk:19] Dial(“SIP/5110-00000008”, “SIP/fxoGX4104/45XXXX,300,”) in new stack
== Using SIP RTP TOS bits 184
== Using SIP RTP CoS mark 5
– Called SIP/fxoGX4104/45XXXX
– SIP/fxoGX4104-00000009 is ringing
– SIP/fxoGX4104-00000009 answered SIP/5110-00000008
– Executing [h@macro-dialout-trunk:1] Macro(“SIP/5110-00000008”, “hangupcall,”) in new stack
– Executing [s@macro-hangupcall:1] GotoIf(“SIP/5110-00000008”, “1?endmixmoncheck”) in new stack
– Goto (macro-hangupcall,s,9)
– Executing [s@macro-hangupcall:9] NoOp(“SIP/5110-00000008”, “End of MIXMON check”) in new stack
– Executing [s@macro-hangupcall:10] GotoIf(“SIP/5110-00000008”, “1?nomeetmemon”) in new stack
– Goto (macro-hangupcall,s,15)
– Executing [s@macro-hangupcall:15] NoOp(“SIP/5110-00000008”, “MEETME_RECORDINGFILE=”) in new stack
– Executing [s@macro-hangupcall:16] GotoIf(“SIP/5110-00000008”, “1?noautomon”) in new stack
– Goto (macro-hangupcall,s,18)
– Executing [s@macro-hangupcall:18] NoOp(“SIP/5110-00000008”, “TOUCH_MONITOR_OUTPUT=”) in new stack
– Executing [s@macro-hangupcall:19] GotoIf(“SIP/5110-00000008”, “1?noautomon2”) in new stack
– Goto (macro-hangupcall,s,25)
– Executing [s@macro-hangupcall:25] NoOp(“SIP/5110-00000008”, “MONITOR_FILENAME=”) in new stack
– Executing [s@macro-hangupcall:26] GotoIf(“SIP/5110-00000008”, “1?skiprg”) in new stack
– Goto (macro-hangupcall,s,29)
– Executing [s@macro-hangupcall:29] GotoIf(“SIP/5110-00000008”, “1?skipblkvm”) in new stack
– Goto (macro-hangupcall,s,32)
– Executing [s@macro-hangupcall:32] GotoIf(“SIP/5110-00000008”, “1?theend”) in new stack
– Goto (macro-hangupcall,s,34)
– Executing [s@macro-hangupcall:34] Hangup(“SIP/5110-00000008”, “”) in new stack
== Spawn extension (macro-hangupcall, s, 34) exited non-zero on ‘SIP/5110-00000008’ in macro ‘hangupcall’
== Spawn extension (macro-dialout-trunk, h, 1) exited non-zero on ‘SIP/5110-00000008’
== Spawn extension (macro-dialout-trunk, s, 19) exited non-zero on ‘SIP/5110-00000008’ in macro ‘dialout-trunk’
== Spawn extension (from-internal, 945XXXX, 6) exited non-zero on ‘SIP/5110-00000008’

I haven’t used Elastix/FreePBX in a long time so I’m a little rusty. Can someone help me?

This is Elastix with a very old version of freePBX which I understand was forked by them some time go. It might be better to post in the Elastix forum. However, have you tried simply downgrading the firmware on the Grandstream to see if that works?

We ran into a similar situation with a customer that we had on the Grandstream GXW4104. Basically the latest versions of their firmware are riddled with bugs. We ended up rolling back to 1.3.4.10 as it was the only version that worked “well enough”. In that version CallerID in our region is broken, but the next release 1.3.4.13 which fixes teh CallerID introduces a random “ringback/tone” bug that Grandstream has acknowledged but still made 0 progress in actually fixing. On top of that in 1.4.1.4 they changed all of the tone detection/voltage levels to try and help reduce echo, but we found that on some calls those lower levels ended up causing the Grandstream to fail to realize the call had been answered. Sounds like that is the issue you’ve run into.

I would suggest rolling back the firmware, unless you really need some feature of 1.4.1.4 (that actually works). You can turn on syslog on the Grandstream and troubleshoot it further, but our experience has been less than stellar with their support staff…