ATT IP Flex VoIP Nearly Working

We have an appliance 100 we bought from the sangoma portal along with 23 s505 phones.

We had test and turn up for our AT&T IP Flex internet and VoIP today. I was told to configure the second interface (eth1) on our appliance with an ip address of 1.1.2.21/24 (I know, that’s not how you’re supposed to use that range, but tell that to AT&T) and gateway of 1.1.2.1. This immediately caused a problem where the system choose that as its default route, which means my phones can’t talk to it and I can’t access the web interface.

After some hurried searching and trial and error, I managed to get the system back to using the other interface (eth0; its address is 10.0.40.9).

I first tried to add 0.0.0.0/0 via 10.0.40.9 dev eth0 to /etc/sysconfig/network-scripts/route-eth0 and re start the network service, but that didn’t work. I also added that same line to /etc/sysconfig/network-scripts/route-eth1, but that didn’t work either. I finally did route add -net 0.0.0.0 netmask 0.0.0.0 gw 10.0.40.254, which worked.
See the resulting route table here:

[root@kfpbx ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.0.40.254     0.0.0.0         UG    0      0        0 eth0
0.0.0.0         1.1.2.1         0.0.0.0         UG    0      0        0 eth1
1.1.2.0         0.0.0.0         255.255.255.0   U     0      0        0 eth1
10.0.40.0       0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1003   0        0 eth1

That second line concerns me, but the system works; my phones can connect to it and I can access the web interface. I went on to configure the sip trunk to AT&T, but this is where I’m having problems.

The AT&T engineer’s information was basically "send your calls to 1.1.2.1" and not much else. No security, no user account, etc. I fumbled through the pjsip trunk configuration and I’ve gotten to the following situation: I can receive calls via either of the two test phone numbers, but when trying to make a call, I get “all circuits are busy now…”

pjsip settings right now:

My outbound routes are the routes for the SIPStation service (I used a trial to test the initial setup of this system), but the trunks set to use the ATT trunk.

Digging into the log files, I think the following lines hint at the problem:

[2019-03-13 20:18:57] ERROR[25471] res_pjsip.c: Endpoint 'att': Could not create dialog to invalid URI 'att'. Is endpoint registered and reachable?
[2019-03-13 20:18:57] ERROR[25471] chan_pjsip.c: Failed to create outgoing session to endpoint 'att'
[2019-03-13 20:18:57] WARNING[20731][C-0000003b] app_dial.c: Unable to create channel of type 'PJSIP' (cause 3 - No route to destination)

I’ve tried setting the client uri in pjsip settings → advanced to sip:1.1.2.1:5060, but it still gives me the same log message. I’ve also tried changing the name of the trunk to sip:1.1.2.1:5060, but it just sits quietly until it times out saying that the phone didn’t pick up.

Any ideas?

The full log those 3 lines came from:
(REDACTED is one of the test phone numbers and REDACTED2 is my cell phone that I’m trying to call.

[2019-03-13 20:31:37] VERBOSE[25471] pbx_variables.c: Setting global variable 'SIPDOMAIN' to '10.0.40.9'
[2019-03-13 20:31:37] VERBOSE[25471] netsock2.c: Using SIP RTP Audio TOS bits 184
[2019-03-13 20:31:37] VERBOSE[25471] netsock2.c: Using SIP RTP Audio TOS bits 184 in TCLASS field.
[2019-03-13 20:31:37] VERBOSE[25471] netsock2.c: Using SIP RTP Audio CoS mark 5
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [REDACTED@from-internal:1] Macro("PJSIP/117-00000054", "user-callerid,LIMIT,EXTERNAL,") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-user-callerid:1] Set("PJSIP/117-00000054", "TOUCH_MONITOR=1552509097.84") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-user-callerid:2] Set("PJSIP/117-00000054", "AMPUSER=117") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-user-callerid:3] GotoIf("PJSIP/117-00000054", "0?report") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-user-callerid:4] ExecIf("PJSIP/117-00000054", "1?Set(REALCALLERIDNUM=117)") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-user-callerid:5] Set("PJSIP/117-00000054", "AMPUSER=117") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-user-callerid:6] GotoIf("PJSIP/117-00000054", "0?limit") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-user-callerid:7] Set("PJSIP/117-00000054", "AMPUSERCIDNAME=Kolton Benoit") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-user-callerid:8] ExecIf("PJSIP/117-00000054", "0?Set(__CIDMASQUERADING=TRUE)") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-user-callerid:9] GotoIf("PJSIP/117-00000054", "0?report") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-user-callerid:10] Set("PJSIP/117-00000054", "AMPUSERCID=117") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-user-callerid:11] Set("PJSIP/117-00000054", "__DIAL_OPTIONS=HhTtr") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-user-callerid:12] Set("PJSIP/117-00000054", "CALLERID(all)="Kolton Benoit" <117>") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-user-callerid:13] GotoIf("PJSIP/117-00000054", "0?limit") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-user-callerid:14] ExecIf("PJSIP/117-00000054", "1?Set(GROUP(concurrency_limit)=117)") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-user-callerid:15] ExecIf("PJSIP/117-00000054", "0?Set(CHANNEL(language)=)") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-user-callerid:16] NoOp("PJSIP/117-00000054", "Macro Depth is 1") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-user-callerid:17] GotoIf("PJSIP/117-00000054", "1?report2:macroerror") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx_builtins.c: Goto (macro-user-callerid,s,18)
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-user-callerid:18] GotoIf("PJSIP/117-00000054", "1?continue") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx_builtins.c: Goto (macro-user-callerid,s,37)
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-user-callerid:37] Set("PJSIP/117-00000054", "CALLERID(number)=117") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-user-callerid:38] Set("PJSIP/117-00000054", "CALLERID(name)=Kolton Benoit") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-user-callerid:39] GotoIf("PJSIP/117-00000054", "0?cnum") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-user-callerid:40] Set("PJSIP/117-00000054", "CDR(cnam)=Kolton Benoit") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-user-callerid:41] Set("PJSIP/117-00000054", "CDR(cnum)=117") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-user-callerid:42] Set("PJSIP/117-00000054", "CHANNEL(language)=en") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [REDACTED@from-internal:2] Gosub("PJSIP/117-00000054", "sub-record-check,s,1(out,REDACTED2,dontcare)") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@sub-record-check:1] GotoIf("PJSIP/117-00000054", "0?initialized") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@sub-record-check:2] Set("PJSIP/117-00000054", "__REC_STATUS=INITIALIZED") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@sub-record-check:3] Set("PJSIP/117-00000054", "NOW=1552509097") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@sub-record-check:4] Set("PJSIP/117-00000054", "__DAY=13") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@sub-record-check:5] Set("PJSIP/117-00000054", "__MONTH=03") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@sub-record-check:6] Set("PJSIP/117-00000054", "__YEAR=2019") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@sub-record-check:7] Set("PJSIP/117-00000054", "__TIMESTR=20190313-203137") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@sub-record-check:8] Set("PJSIP/117-00000054", "__FROMEXTEN=117") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@sub-record-check:9] Set("PJSIP/117-00000054", "__MON_FMT=wav") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@sub-record-check:10] NoOp("PJSIP/117-00000054", "Recordings initialized") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@sub-record-check:11] ExecIf("PJSIP/117-00000054", "0?Set(ARG3=dontcare)") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@sub-record-check:12] Set("PJSIP/117-00000054", "REC_POLICY_MODE_SAVE=") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@sub-record-check:13] ExecIf("PJSIP/117-00000054", "0?Set(REC_STATUS=NO)") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@sub-record-check:14] GotoIf("PJSIP/117-00000054", "3?checkaction") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx_builtins.c: Goto (sub-record-check,s,17)
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@sub-record-check:17] GotoIf("PJSIP/117-00000054", "1?sub-record-check,out,1") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx_builtins.c: Goto (sub-record-check,out,1)
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [out@sub-record-check:1] NoOp("PJSIP/117-00000054", "Outbound Recording Check from 117 to REDACTED2") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [out@sub-record-check:2] Set("PJSIP/117-00000054", "RECMODE=dontcare") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [out@sub-record-check:3] ExecIf("PJSIP/117-00000054", "1?Goto(routewins)") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx_builtins.c: Goto (sub-record-check,out,7)
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [out@sub-record-check:7] Gosub("PJSIP/117-00000054", "recordcheck,1(dontcare,out,REDACTED2)") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [recordcheck@sub-record-check:1] NoOp("PJSIP/117-00000054", "Starting recording check against dontcare") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [recordcheck@sub-record-check:2] Goto("PJSIP/117-00000054", "dontcare") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx_builtins.c: Goto (sub-record-check,recordcheck,3)
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [recordcheck@sub-record-check:3] Return("PJSIP/117-00000054", "") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [out@sub-record-check:8] Return("PJSIP/117-00000054", "") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [REDACTED2@from-internal:3] ExecIf("PJSIP/117-00000054", "0 ?Set(CDR(accountcode)=)") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [REDACTED2@from-internal:4] Set("PJSIP/117-00000054", "MOHCLASS=default") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [REDACTED2@from-internal:5] Set("PJSIP/117-00000054", "_NODEST=") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [REDACTED2@from-internal:6] Macro("PJSIP/117-00000054", "dialout-trunk,1,REDACTED2,,off") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-dialout-trunk:1] Set("PJSIP/117-00000054", "DIAL_TRUNK=1") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-dialout-trunk:2] ExecIf("PJSIP/117-00000054", "0?Set(DIAL_OPTIONS=Hhtr)") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-dialout-trunk:3] GosubIf("PJSIP/117-00000054", "0?sub-pincheck,s,1()") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-dialout-trunk:4] ExecIf("PJSIP/117-00000054", "0?Set(CALLERID(num)=117)") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-dialout-trunk:5] GotoIf("PJSIP/117-00000054", "0?disabletrunk,1") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-dialout-trunk:6] Set("PJSIP/117-00000054", "DIAL_NUMBER=REDACTED2") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-dialout-trunk:7] Set("PJSIP/117-00000054", "DIAL_TRUNK_OPTIONS=HhTtr") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-dialout-trunk:8] Set("PJSIP/117-00000054", "OUTBOUND_GROUP=OUT_1") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-dialout-trunk:9] Set("PJSIP/117-00000054", "DIAL_TRUNK_OPTIONS=T") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-dialout-trunk:10] GotoIf("PJSIP/117-00000054", "0?nomax") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-dialout-trunk:11] GotoIf("PJSIP/117-00000054", "0?chanfull") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-dialout-trunk:12] GotoIf("PJSIP/117-00000054", "0?skipoutcid") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-dialout-trunk:13] Macro("PJSIP/117-00000054", "outbound-callerid,1") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-outbound-callerid:1] NoOp("PJSIP/117-00000054", "117") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-outbound-callerid:2] NoOp("PJSIP/117-00000054", "") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-outbound-callerid:3] NoOp("PJSIP/117-00000054", "off") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-outbound-callerid:4] ExecIf("PJSIP/117-00000054", "0?Set(CALLERPRES(name-pres)=)") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-outbound-callerid:5] ExecIf("PJSIP/117-00000054", "0?Set(CALLERPRES(num-pres)=)") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-outbound-callerid:6] ExecIf("PJSIP/117-00000054", "0?Set(REALCALLERIDNUM=117)") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-outbound-callerid:7] ExecIf("PJSIP/117-00000054", "0?Set(AMPUSER=117)") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-outbound-callerid:8] GotoIf("PJSIP/117-00000054", "1?normcid") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx_builtins.c: Goto (macro-outbound-callerid,s,12)
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-outbound-callerid:12] Set("PJSIP/117-00000054", "USEROUTCID=") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-outbound-callerid:13] Set("PJSIP/117-00000054", "EMERGENCYCID=") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-outbound-callerid:14] Set("PJSIP/117-00000054", "TRUNKOUTCID=REDACTED") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-outbound-callerid:15] GotoIf("PJSIP/117-00000054", "1?trunkcid") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx_builtins.c: Goto (macro-outbound-callerid,s,20)
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-outbound-callerid:20] ExecIf("PJSIP/117-00000054", "1?Set(CALLERID(all)=REDACTED)") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-outbound-callerid:21] ExecIf("PJSIP/117-00000054", "0?Set(CALLERID(all)=)") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-outbound-callerid:22] ExecIf("PJSIP/117-00000054", "0?Set(CALLERID(all)=)") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-outbound-callerid:23] ExecIf("PJSIP/117-00000054", "0?Set(CALLERPRES(name-pres)=prohib_passed_screen)") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-outbound-callerid:24] ExecIf("PJSIP/117-00000054", "0?Set(CALLERPRES(num-pres)=prohib_passed_screen)") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-outbound-callerid:25] Set("PJSIP/117-00000054", "CDR(outbound_cnum)=REDACTED") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-outbound-callerid:26] Set("PJSIP/117-00000054", "CDR(outbound_cnam)=") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-dialout-trunk:14] GosubIf("PJSIP/117-00000054", "0?sub-flp-1,s,1()") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-dialout-trunk:15] Set("PJSIP/117-00000054", "OUTNUM=REDACTED2") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-dialout-trunk:16] Set("PJSIP/117-00000054", "custom=PJSIP") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-dialout-trunk:17] ExecIf("PJSIP/117-00000054", "0?Set(DIAL_TRUNK_OPTIONS=M(setmusic^default)T)") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-dialout-trunk:18] ExecIf("PJSIP/117-00000054", "0?Set(DIAL_TRUNK_OPTIONS=TM(confirm))") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-dialout-trunk:19] Macro("PJSIP/117-00000054", "dialout-trunk-predial-hook,") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-dialout-trunk-predial-hook:1] MacroExit("PJSIP/117-00000054", "") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-dialout-trunk:20] GotoIf("PJSIP/117-00000054", "0?skipcrm") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-dialout-trunk:21] Set("PJSIP/117-00000054", "__CRM_DIRECTION=OUTBOUND") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-dialout-trunk:22] Set("PJSIP/117-00000054", "__CRM_DESTINATION=REDACTED2") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-dialout-trunk:23] Set("PJSIP/117-00000054", "__CRM_SOURCE=117") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-dialout-trunk:24] AGI("PJSIP/117-00000054", "sangomacrm.agi") in new stack
[2019-03-13 20:31:37] VERBOSE[30088][C-0000003d] res_agi.c: Launched AGI Script /var/lib/asterisk/agi-bin/sangomacrm.agi
[2019-03-13 20:31:38] VERBOSE[30088][C-0000003d] res_agi.c: <PJSIP/117-00000054>AGI Script sangomacrm.agi completed, returning 0
[2019-03-13 20:31:38] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-dialout-trunk:25] Set("PJSIP/117-00000054", "CHANNEL(hangup_handler_push)=crm-hangup,s,1") in new stack
[2019-03-13 20:31:38] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-dialout-trunk:26] NoOp("PJSIP/117-00000054", "CRM Finished") in new stack
[2019-03-13 20:31:38] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-dialout-trunk:27] GotoIf("PJSIP/117-00000054", "0?bypass,1") in new stack
[2019-03-13 20:31:38] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-dialout-trunk:28] ExecIf("PJSIP/117-00000054", "1?Set(CONNECTEDLINE(num,i)=REDACTED2)") in new stack
[2019-03-13 20:31:38] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-dialout-trunk:29] ExecIf("PJSIP/117-00000054", "1?Set(CONNECTEDLINE(name,i)=CID:REDACTED)") in new stack
[2019-03-13 20:31:38] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-dialout-trunk:30] ExecIf("PJSIP/117-00000054", "0?Set(CONNECTEDLINE(name,i)=CID:(Hidden)REDACTED)") in new stack
[2019-03-13 20:31:38] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-dialout-trunk:31] GotoIf("PJSIP/117-00000054", "0?customtrunk") in new stack
[2019-03-13 20:31:38] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-dialout-trunk:32] Dial("PJSIP/117-00000054", "PJSIP/REDACTED2@att,300,Tb(func-apply-sipheaders^s^1,(1))") in new stack
[2019-03-13 20:31:38] ERROR[27195] res_pjsip.c: Endpoint 'att': Could not create dialog to invalid URI 'att'. Is endpoint registered and reachable?
[2019-03-13 20:31:38] ERROR[27195] chan_pjsip.c: Failed to create outgoing session to endpoint 'att'
[2019-03-13 20:31:38] WARNING[30088][C-0000003d] app_dial.c: Unable to create channel of type 'PJSIP' (cause 3 - No route to destination)
[2019-03-13 20:31:38] VERBOSE[30088][C-0000003d] app_dial.c: Everyone is busy/congested at this time (1:0/0/1)
[2019-03-13 20:31:38] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-dialout-trunk:33] NoOp("PJSIP/117-00000054", "Dial failed for some reason with DIALSTATUS = CHANUNAVAIL and HANGUPCAUSE = 3") in new stack
[2019-03-13 20:31:38] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-dialout-trunk:34] GotoIf("PJSIP/117-00000054", "0?continue,1:s-CHANUNAVAIL,1") in new stack
[2019-03-13 20:31:38] VERBOSE[30088][C-0000003d] pbx_builtins.c: Goto (macro-dialout-trunk,s-CHANUNAVAIL,1)
[2019-03-13 20:31:38] VERBOSE[30088][C-0000003d] pbx.c: Executing [s-CHANUNAVAIL@macro-dialout-trunk:1] Set("PJSIP/117-00000054", "RC=3") in new stack
[2019-03-13 20:31:38] VERBOSE[30088][C-0000003d] pbx.c: Executing [s-CHANUNAVAIL@macro-dialout-trunk:2] Goto("PJSIP/117-00000054", "3,1") in new stack
[2019-03-13 20:31:38] VERBOSE[30088][C-0000003d] pbx_builtins.c: Goto (macro-dialout-trunk,3,1)
[2019-03-13 20:31:38] VERBOSE[30088][C-0000003d] pbx.c: Executing [3@macro-dialout-trunk:1] Goto("PJSIP/117-00000054", "continue,1") in new stack
[2019-03-13 20:31:38] VERBOSE[30088][C-0000003d] pbx_builtins.c: Goto (macro-dialout-trunk,continue,1)
[2019-03-13 20:31:38] VERBOSE[30088][C-0000003d] pbx.c: Executing [continue@macro-dialout-trunk:1] NoOp("PJSIP/117-00000054", "TRUNK Dial failed due to CHANUNAVAIL HANGUPCAUSE: 3 - failing through to other trunks") in new stack
[2019-03-13 20:31:38] VERBOSE[30088][C-0000003d] pbx.c: Executing [continue@macro-dialout-trunk:2] ExecIf("PJSIP/117-00000054", "1?Set(CALLERID(number)=117)") in new stack
[2019-03-13 20:31:38] VERBOSE[30088][C-0000003d] pbx.c: Executing [REDACTED2@from-internal:7] Macro("PJSIP/117-00000054", "outisbusy,") in new stack
[2019-03-13 20:31:38] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-outisbusy:1] Progress("PJSIP/117-00000054", "") in new stack
[2019-03-13 20:31:38] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-outisbusy:2] GotoIf("PJSIP/117-00000054", "0?emergency,1") in new stack
[2019-03-13 20:31:38] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-outisbusy:3] GotoIf("PJSIP/117-00000054", "0?intracompany,1") in new stack
[2019-03-13 20:31:38] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-outisbusy:4] Playback("PJSIP/117-00000054", "all-circuits-busy-now&please-try-call-later, noanswer") in new stack
[2019-03-13 20:31:38] VERBOSE[30088][C-0000003d] file.c: <PJSIP/117-00000054> Playing 'all-circuits-busy-now.g722' (language 'en')
[2019-03-13 20:31:39] VERBOSE[30088][C-0000003d] file.c: <PJSIP/117-00000054> Playing 'please-try-call-later.ulaw' (language 'en')
[2019-03-13 20:31:39] VERBOSE[30088][C-0000003d] pbx.c: Executing [h@from-internal:1] Macro("PJSIP/117-00000054", "hangupcall") in new stack
[2019-03-13 20:31:39] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-hangupcall:1] GotoIf("PJSIP/117-00000054", "1?theend") in new stack
[2019-03-13 20:31:39] VERBOSE[30088][C-0000003d] pbx_builtins.c: Goto (macro-hangupcall,s,3)
[2019-03-13 20:31:39] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-hangupcall:3] ExecIf("PJSIP/117-00000054", "0?Set(CDR(recordingfile)=)") in new stack
[2019-03-13 20:31:39] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-hangupcall:4] NoOp("PJSIP/117-00000054", " monior file= ") in new stack
[2019-03-13 20:31:39] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-hangupcall:5] AGI("PJSIP/117-00000054", "attendedtransfer-rec-restart.php,,") in new stack
[2019-03-13 20:31:39] VERBOSE[30088][C-0000003d] res_agi.c: Launched AGI Script /var/lib/asterisk/agi-bin/attendedtransfer-rec-restart.php
[2019-03-13 20:31:40] VERBOSE[30088][C-0000003d] res_agi.c: <PJSIP/117-00000054>AGI Script attendedtransfer-rec-restart.php completed, returning 0
[2019-03-13 20:31:40] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@macro-hangupcall:6] Hangup("PJSIP/117-00000054", "") in new stack
[2019-03-13 20:31:40] VERBOSE[30088][C-0000003d] app_macro.c: Spawn extension (macro-hangupcall, s, 6) exited non-zero on 'PJSIP/117-00000054' in macro 'hangupcall'
[2019-03-13 20:31:40] VERBOSE[30088][C-0000003d] pbx.c: Spawn extension (from-internal, h, 1) exited non-zero on 'PJSIP/117-00000054'
[2019-03-13 20:31:40] VERBOSE[30088][C-0000003d] app_stack.c: PJSIP/117-00000054 Internal Gosub(crm-hangup,s,1) start
[2019-03-13 20:31:40] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@crm-hangup:1] NoOp("PJSIP/117-00000054", "Sending Hangup to CRM") in new stack
[2019-03-13 20:31:40] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@crm-hangup:2] NoOp("PJSIP/117-00000054", "HANGUP CAUSE: 3") in new stack
[2019-03-13 20:31:40] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@crm-hangup:3] ExecIf("PJSIP/117-00000054", "0?Set(__CRM_VOICEMAIL=)") in new stack
[2019-03-13 20:31:40] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@crm-hangup:4] NoOp("PJSIP/117-00000054", "MASTER CHANNEL: 1552509097.84 = 1552509097.84") in new stack
[2019-03-13 20:31:40] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@crm-hangup:5] GotoIf("PJSIP/117-00000054", "0?return") in new stack
[2019-03-13 20:31:40] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@crm-hangup:6] Set("PJSIP/117-00000054", "__CRM_HANGUP=1") in new stack
[2019-03-13 20:31:40] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@crm-hangup:7] AGI("PJSIP/117-00000054", "sangomacrm.agi") in new stack
[2019-03-13 20:31:40] VERBOSE[30088][C-0000003d] res_agi.c: Launched AGI Script /var/lib/asterisk/agi-bin/sangomacrm.agi
[2019-03-13 20:31:40] VERBOSE[30088][C-0000003d] res_agi.c: <PJSIP/117-00000054>AGI Script sangomacrm.agi completed, returning 0
[2019-03-13 20:31:40] VERBOSE[30088][C-0000003d] pbx.c: Executing [s@crm-hangup:8] Return("PJSIP/117-00000054", "") in new stack
[2019-03-13 20:31:40] VERBOSE[30088][C-0000003d] app_stack.c: Spawn extension (from-internal, h, 1) exited non-zero on 'PJSIP/117-00000054'
[2019-03-13 20:31:40] VERBOSE[30088][C-0000003d] app_stack.c: PJSIP/117-00000054 Internal Gosub(crm-hangup,s,1) complete GOSUB_RETVAL=

After some more troubleshooting, I’ve pulled out tcpdump. On outbound calls, I only see sip OPTIONS requests from FreePBX to the AT&T BIB. The BIB never responds and FreePBX never sends a sip INVITE when trying to make an outgoing call. The BIB will send a sip INVITE on an incoming call, however.

OPTIONS sent out from Asterisk is because you have qualify enabled for the trunk. But since there is no response to the OPTIONS packet, Asterisk considers the trunk unreachable and will not send an INVITE. If you (at least temporarily) disable qualify for the peer, the trunk will be marked as ‘unmonitored’ and Asterisk will send an outbound INVITE

That confirms my suspicion and what little research I’ve been able to do in the last hour or so.

If youu (at least temporarily) disable qualify for the peer, the trunk will be marked as ‘unmonitored’ and Asterisk will send an outbound INVITE

Where’s the option for that? If can make outbound calls, I at least have something to throw at AT&T when they try to claim its my equipment failing.

Ok, figured that out: asterisk docs for Configuration_res_pjsip show that you set Qualify Frequency to 0. FreePBX now sends the INVITEs, but never gets a response and times out:

The BIB never responds, so this might be an issue on AT&Ts side? If it is supposed to work the same way as the incoming calls, but reversed, I should expect a “Status: 100 Trying |” next, right?

Look at an incoming INVITE – possibly the source port or IP address is not what you expect.

Looks like the incoming INVITE is from the same IP address/port as the outgoing INVITE is trying to go to.

On further inspection, it looks like the outbound sip INVITE is telling the BIB to contact it via 10.0.40.9 (eth0 interface) or by our public IP address.

The orange bars below are the public IP:

Any suggestions on how to force freepbx to use 1.1.2.21 for those values?

Ok. I’ve added another transport to pjsip.transports_custom.conf:

[1.1.2.21-udp]
type=transport
protocol=udp
bind=1.1.2.21:5062
allow_reload=yes
tos=cs3
cos=3
local_net=1.1.2.0/24

Asterisk shows it is available via pjsip show transports:

But, after refreshing the page to select that transport, it doesn’t show in the dropdown in freepbx.

I thought that it didn’t show in the drop down because a service needed to restart and reread the config files. I wasn’t sure what service to restart, so I restarted the box (it’ll need to survive a reboot anyway), but it still doesn’t show up:

Any suggestions?

Ok I’ve got it all figured out now and it is working.

I came across this other post on how to make a custom transport and followed the instructions there (config in pjsip.transports_custom.conf was written above) and that’s where I ran into the issue of it not showing in the GUI in my last post.

I messaged avayax (who started that post) and he replied that I needed to add it to the trunk manually:

pjsip.endpoint_custom_post.conf

[att] (+)
transport=1.1.2.21-udp

I feel like an idiot because that was in that original thread, but at least he was able to respond in short order.

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.