Basically if I call a FreePBX instance using an IAX trunk, the ‘follow me’ call using my external SIP trunk provider (Sipgate) always fails - Sipgate’s online portal shows the call hitting it as an outgoing call, but my mobile NEVER rings.
However, if I call the same FreePBX instance using a ‘normal’ inbound route, the follow me using the same Sipgate settings etc works reliably.
Any ideas why this might be? Not a big deal, this is a real edge case, but I’m curious!
In the logs I can see it says
[2019-07-26 08:02:19] VERBOSE[28635][C-0000003c] pbx.c: Executing [s@macro-user-callerid:16] GotoIf("IAX2/home_to_xep-13904", "1?report2:macroerror") in new stack
but I’m not sure if this is an actual error, or just FreePBX documenting what it might do if it encountered an error!
We can see from the call trace that the mobile number is actually dialed:
[2019-07-26 08:02:36] VERBOSE[28661][C-0000003c] app_dial.c: Called SIP/SIPGATE_UK/07850320031
but abandons the attempt 3 seconds later:
[2019-07-26 08:02:39] VERBOSE[28638][C-0000003c] app_macro.c: Spawn extension (macro-dial-one, s, 54) exited non-zero on 'Local/FMPR-4001@from-internal-00000033;2' in macro 'dial-one'
I think this is probably due to a ring timer set somewhere in the call flow that is too short for a call to the complete. There is a dial() line with a 16 second timeout that may be the culprit.
From the caller’s perspective, you just hear a dialling tone the whole time, until the call terminates abruptly after what may be about 16 seconds. I can’t test it now because my wife is at home and it would drive her mad - plus she would answer the phone, so it would be an ineffective test.
Not sure where I’d look to diagnose a ring timer, because as I say, the exact same settings work fine when the inbound route is my linksys ATA rather than the IAX trunk