Follow me ringtime is limited to 30 seconds

I’ve setup an extension to have a findme/followme and ringtime of 0 seconds. The FMFM ringtime is 60 seconds and the ringstrategy is ‘ringall’ (though I have tried other strategies without result). The FMFM is setup to follow itself: e.g. extension 280 has a FMFM list of 280.

What I want to accomplish (and this works) is to have a custom ringback sound through the FMFM MoH (music on hold). In practise, this means that the extension immediately starts ringing the FMFM list (which is the same extension) with my custom ringback tone.

The problem is that no matter what I do, I can’t extend the ringtime to beyond 30 seconds (so NOT the initial ringtime, but the FMFM ringtime). I can set it below 30, and this has the expected effect, but setting it to 60 still caps it at 30.

The ringtime default in advanced settings is set to 60 as well.

Please stick to one topic, as this is still about comfort messages for non-queue calls, and people who don’t know the back story are likely to answer based on incomplete information.

Did you set the incoming route to answer? It is possible that the provider is allowing you 30 seconds of early media, then cutting you off.

Does the extension in question have voicemail enabled and if so, what is the ring timer of the extension set to? Also, you need to show a debug of this call so we can see how it was handled in the dialplan.

Well this problem came to the surface while attempting to set comfort messages, but in my opinion is not related, since I might just have wanted to set a FM time of more than 30 seconds.

I don’t understand the second part of your answer. The incoming route works, no problem. This is a fully functional PBX, I didn’t touch the incoming route at all. And about ‘provider’: I’m not even leaving the PBX. I’m not even leaving the extension: I’m forwarding extension 280 to 280. How could an external provider mess with that?

No, it does not. Here is the log

[2022-09-12 09:23:32] VERBOSE[3407][C-00011418] pbx.c: Executing [280@from-internal:1] GotoIf("SIP/281-000110a5", "0?ext-local,280,1:followme-check,280,1") in new stack
[2022-09-12 09:23:32] VERBOSE[3407][C-00011418] pbx_builtins.c: Goto (followme-check,280,1)
[2022-09-12 09:23:32] VERBOSE[3407][C-00011418] pbx.c: Executing [280@followme-check:1] Gosub("SIP/281-000110a5", "followme-sub,280,1()") in new stack
[2022-09-12 09:23:32] VERBOSE[3407][C-00011418] pbx.c: Executing [280@followme-sub:1] Macro("SIP/281-000110a5", "user-callerid,") in new stack
[2022-09-12 09:23:32] VERBOSE[3407][C-00011418] pbx.c: Executing [280@followme-sub:2] Set("SIP/281-000110a5", "CONNECTEDLINE(num,i)=280") in new stack
[2022-09-12 09:23:32] VERBOSE[3407][C-00011418] pbx.c: Executing [280@followme-sub:3] Gosub("SIP/281-000110a5", "sub-presencestate-display,s,1(280)") in new stack
[2022-09-12 09:23:32] VERBOSE[3407][C-00011418] pbx.c: Executing [280@followme-sub:4] Set("SIP/281-000110a5", "CONNECTEDLINE(name)=Guido(Available)") in new stack
[2022-09-12 09:23:32] VERBOSE[3407][C-00011418] pbx.c: Executing [280@followme-sub:5] Set("SIP/281-000110a5", "FM_DIALSTATUS=NOT_INUSE") in new stack
[2022-09-12 09:23:32] VERBOSE[3407][C-00011418] pbx.c: Executing [280@followme-sub:6] Set("SIP/281-000110a5", "__EXTTOCALL=280") in new stack
[2022-09-12 09:23:32] VERBOSE[3407][C-00011418] pbx.c: Executing [280@followme-sub:7] Set("SIP/281-000110a5", "__PICKUPMARK=280") in new stack
[2022-09-12 09:23:32] VERBOSE[3407][C-00011418] pbx.c: Executing [280@followme-sub:8] Macro("SIP/281-000110a5", "blkvm-setifempty,") in new stack
[2022-09-12 09:23:32] VERBOSE[3407][C-00011418] pbx.c: Executing [280@followme-sub:9] GotoIf("SIP/281-000110a5", "1?skipov") in new stack
[2022-09-12 09:23:32] VERBOSE[3407][C-00011418] pbx_builtins.c: Goto (followme-sub,280,12)
[2022-09-12 09:23:32] VERBOSE[3407][C-00011418] pbx.c: Executing [280@followme-sub:12] Set("SIP/281-000110a5", "RRNODEST=") in new stack
[2022-09-12 09:23:32] VERBOSE[3407][C-00011418] pbx.c: Executing [280@followme-sub:13] Set("SIP/281-000110a5", "__NODEST=280") in new stack
[2022-09-12 09:23:32] VERBOSE[3407][C-00011418] pbx.c: Executing [280@followme-sub:14] GosubIf("SIP/281-000110a5", "0?sub-fmsetcid,s,1()") in new stack
[2022-09-12 09:23:32] VERBOSE[3407][C-00011418] pbx.c: Executing [280@followme-sub:15] GotoIf("SIP/281-000110a5", "1?skipprepend") in new stack
[2022-09-12 09:23:32] VERBOSE[3407][C-00011418] pbx_builtins.c: Goto (followme-sub,280,17)
[2022-09-12 09:23:32] VERBOSE[3407][C-00011418] pbx.c: Executing [280@followme-sub:17] Set("SIP/281-000110a5", "RecordMethod=Group") in new stack
[2022-09-12 09:23:32] VERBOSE[3407][C-00011418] pbx.c: Executing [280@followme-sub:18] Gosub("SIP/281-000110a5", "sub-record-check,s,1(exten,280,)") in new stack
[2022-09-12 09:23:32] VERBOSE[3407][C-00011418] pbx.c: Executing [exten@sub-record-check:1] NoOp("SIP/281-000110a5", "Exten Recording Check between 281 and 280") in new stack
[2022-09-12 09:23:32] VERBOSE[3407][C-00011418] pbx.c: Executing [exten@sub-record-check:23] Gosub("SIP/281-000110a5", "recordcheck,1(dontcare,internal,280)") in new stack
[2022-09-12 09:23:32] VERBOSE[3407][C-00011418] pbx.c: Executing [280@followme-sub:19] GotoIf("SIP/281-000110a5", "1?skipdring") in new stack
[2022-09-12 09:23:32] VERBOSE[3407][C-00011418] pbx_builtins.c: Goto (followme-sub,280,22)
[2022-09-12 09:23:32] VERBOSE[3407][C-00011418] pbx.c: Executing [280@followme-sub:22] Set("SIP/281-000110a5", "STRATEGY=ringall") in new stack
[2022-09-12 09:23:32] VERBOSE[3407][C-00011418] pbx.c: Executing [280@followme-sub:23] Set("SIP/281-000110a5", "__RVOL=") in new stack
[2022-09-12 09:23:32] VERBOSE[3407][C-00011418] pbx.c: Executing [280@followme-sub:24] GotoIf("SIP/281-000110a5", "0?skipsimple") in new stack
[2022-09-12 09:23:32] VERBOSE[3407][C-00011418] pbx.c: Executing [280@followme-sub:25] GotoIf("SIP/281-000110a5", "1 ?skipsimple") in new stack
[2022-09-12 09:23:32] VERBOSE[3407][C-00011418] pbx_builtins.c: Goto (followme-sub,280,27)
[2022-09-12 09:23:32] VERBOSE[3407][C-00011418] pbx.c: Executing [280@followme-sub:27] Set("SIP/281-000110a5", "RingGroupMethod=ringall") in new stack
[2022-09-12 09:23:32] VERBOSE[3407][C-00011418] pbx.c: Executing [280@followme-sub:28] Set("SIP/281-000110a5", "_FMGRP=280") in new stack
[2022-09-12 09:23:32] VERBOSE[3407][C-00011418] pbx.c: Executing [280@followme-sub:29] GotoIf("SIP/281-000110a5", "1?DIALGRP") in new stack
[2022-09-12 09:23:32] VERBOSE[3407][C-00011418] pbx_builtins.c: Goto (followme-sub,280,33)
[2022-09-12 09:23:32] VERBOSE[3407][C-00011418] pbx.c: Executing [280@followme-sub:33] ExecIf("SIP/281-000110a5", "0?Set(DOPTS=HhTtr):Set(DOPTS=m(nepdialback-met-tussenboodschap)HhTt)") in new stack
[2022-09-12 09:23:32] VERBOSE[3407][C-00011418] pbx.c: Executing [280@followme-sub:34] Set("SIP/281-000110a5", "__ALT_CONFIRM_MSG=") in new stack
[2022-09-12 09:23:32] VERBOSE[3407][C-00011418] pbx.c: Executing [280@followme-sub:35] GotoIf("SIP/281-000110a5", "0?doconfirm") in new stack
[2022-09-12 09:23:32] VERBOSE[3407][C-00011418] pbx.c: Executing [280@followme-sub:36] GotoIf("SIP/281-000110a5", "0?ringallv21") in new stack
[2022-09-12 09:23:32] VERBOSE[3407][C-00011418] pbx.c: Executing [280@followme-sub:37] Macro("SIP/281-000110a5", "dial,60,m(nepdialback-met-tussenboodschap)HhTt,280") in new stack
[2022-09-12 09:23:32] VERBOSE[3407][C-00011418] res_agi.c: dialparties.agi: Added extension 280 to extension map
[2022-09-12 09:23:32] VERBOSE[3407][C-00011418] res_agi.c: dialparties.agi: Extension 280 cf is disabled
[2022-09-12 09:23:32] VERBOSE[3407][C-00011418] res_agi.c: dialparties.agi: Extension 280 do not disturb is disabled
[2022-09-12 09:23:32] VERBOSE[3407][C-00011418] res_agi.c: dialparties.agi: dbset CALLTRACE/280 to 281
[2022-09-12 09:23:32] VERBOSE[3407][C-00011418] res_agi.c: dialparties.agi: Filtered ARG3: 280
[2022-09-12 09:23:32] VERBOSE[3407][C-00011418] pbx.c: Executing [s@macro-dial:15] Set("SIP/281-000110a5", "__EXTTOCALL=280") in new stack
[2022-09-12 09:23:32] VERBOSE[3407][C-00011418] pbx.c: Executing [s@macro-dial:16] NoOp("SIP/281-000110a5", "Working with 280") in new stack
[2022-09-12 09:23:32] VERBOSE[3407][C-00011418] pbx.c: Executing [s@macro-dial:22] ExecIf("SIP/281-000110a5", "0?Set(ds=SIP/280,60,m(nepdialback-met-tussenboodschap)HhTtM(auto-blkvm)g)") in new stack
[2022-09-12 09:23:32] VERBOSE[3407][C-00011418] pbx.c: Executing [s@macro-dial:23] Dial("SIP/281-000110a5", "SIP/280,60,m(nepdialback-met-tussenboodschap)HhTtM(auto-blkvm)b(func-apply-sipheaders^s^1),") in new stack
[2022-09-12 09:23:32] VERBOSE[3407][C-00011418] app_stack.c: SIP/280-000110a6 Internal Gosub(func-apply-sipheaders,s,1) start
[2022-09-12 09:23:32] VERBOSE[3407][C-00011418] pbx.c: Executing [s@func-apply-sipheaders:1] ExecIf("SIP/280-000110a6", "0?Set(CHANNEL(hangup_handler_push)=crm-hangup,s,1)") in new stack
[2022-09-12 09:23:32] VERBOSE[3407][C-00011418] pbx.c: Executing [s@func-apply-sipheaders:2] NoOp("SIP/280-000110a6", "Applying SIP Headers to channel SIP/280-000110a6") in new stack
[2022-09-12 09:23:32] VERBOSE[3407][C-00011418] pbx.c: Executing [s@func-apply-sipheaders:3] Set("SIP/280-000110a6", "TECH=SIP") in new stack
[2022-09-12 09:23:32] VERBOSE[3407][C-00011418] pbx.c: Executing [s@func-apply-sipheaders:4] Set("SIP/280-000110a6", "SIPHEADERKEYS=") in new stack
[2022-09-12 09:23:32] VERBOSE[3407][C-00011418] pbx.c: Executing [s@func-apply-sipheaders:5] While("SIP/280-000110a6", "0") in new stack
[2022-09-12 09:23:32] VERBOSE[3407][C-00011418] pbx.c: Executing [s@func-apply-sipheaders:14] Return("SIP/280-000110a6", "") in new stack
[2022-09-12 09:23:32] VERBOSE[3407][C-00011418] app_stack.c: Spawn extension (from-internal, 280, 1) exited non-zero on 'SIP/280-000110a6'
[2022-09-12 09:23:32] VERBOSE[3407][C-00011418] app_stack.c: SIP/280-000110a6 Internal Gosub(func-apply-sipheaders,s,1) complete GOSUB_RETVAL=
[2022-09-12 09:23:32] VERBOSE[3407][C-00011418] app_dial.c: Called SIP/280
[2022-09-12 09:23:33] VERBOSE[3407][C-00011418] app_dial.c: SIP/280-000110a6 is ringing
[2022-09-12 09:24:03] VERBOSE[3407][C-00011418] app_dial.c: SIP/280-000110a6 is busy
[2022-09-12 09:24:03] VERBOSE[3407][C-00011418] pbx.c: Executing [280@followme-sub:38] Goto("SIP/281-000110a5", "nextstep") in new stack
[2022-09-12 09:24:03] VERBOSE[3407][C-00011418] pbx_builtins.c: Goto (followme-sub,280,45)
[2022-09-12 09:24:03] VERBOSE[3407][C-00011418] pbx.c: Executing [280@followme-sub:45] Set("SIP/281-000110a5", "RingGroupMethod=") in new stack
[2022-09-12 09:24:03] VERBOSE[3407][C-00011418] pbx.c: Executing [280@followme-sub:46] GotoIf("SIP/281-000110a5", "0?nodest") in new stack
[2022-09-12 09:24:03] VERBOSE[3407][C-00011418] pbx.c: Executing [280@followme-sub:47] Set("SIP/281-000110a5", "__NODEST=") in new stack
[2022-09-12 09:24:03] VERBOSE[3407][C-00011418] pbx.c: Executing [280@followme-sub:48] Set("SIP/281-000110a5", "__PICKUPMARK=") in new stack
[2022-09-12 09:24:03] VERBOSE[3407][C-00011418] pbx.c: Executing [280@followme-sub:49] Macro("SIP/281-000110a5", "blkvm-clr,") in new stack
[2022-09-12 09:24:03] VERBOSE[3407][C-00011418] pbx.c: Executing [280@followme-sub:50] Set("SIP/281-000110a5", "DIALSTATUS=NOANSWER") in new stack
[2022-09-12 09:24:03] VERBOSE[3407][C-00011418] pbx.c: Executing [280@followme-sub:51] GotoIf("SIP/281-000110a5", "0?dohangup") in new stack
[2022-09-12 09:24:03] VERBOSE[3407][C-00011418] pbx.c: Executing [280@followme-sub:52] Goto("SIP/281-000110a5", "ext-local,280,dest") in new stack
[2022-09-12 09:24:03] VERBOSE[3407][C-00011418] pbx_builtins.c: Goto (ext-local,280,4)
[2022-09-12 09:24:03] VERBOSE[3407][C-00011418] pbx.c: Executing [280@ext-local:4] Set("SIP/281-000110a5", "__PICKUPMARK=") in new stack
[2022-09-12 09:24:03] VERBOSE[3407][C-00011418] pbx.c: Executing [280@ext-local:5] GotoIf("SIP/281-000110a5", "0?,return,1") in new stack

Where I see that

[2022-09-12 09:23:33] VERBOSE[3407][C-00011418] app_dial.c: SIP/280-000110a6 is ringing
[2022-09-12 09:24:03] VERBOSE[3407][C-00011418] app_dial.c: SIP/280-000110a6 is busy

The extension is returning a ‘busy’ after 30 seconds.

This isn’t a full call. Post the full call.

Could you tell me the boundries of a full call? I’m not sure what your definition of a full call is.

It looks to me as though SIP/280 terminated the call with a busy status, and that was out of FreePBX’s control.

Actually, at least for the lame duck channel driver that you are using, Asterisk will report a BUSY event when it receives the SIP cause code used for no answer, but it will also report a more accurate hangup cause, so FreePBX may have looked at the hangup cause to infer no answer, even though Dial logged it as busy. I think you may find that “sip set debug on” is showing a 480 status, for no answer, meaning that it was the one that decided that 30 seconds was too long.

You should be urgently planning to replace chan_sip with chan_pjsip, although if the device terminating the call, that will not help you.

(For some background on the funny handling of 480, but noting that your problem is not because of this - it just confuses the logging - see: Need SIP 480 instead of 486 when call not answered - #12 by rotechy - Asterisk SIP - Asterisk Community )

I don’t understand who the ‘it’ in this story is. The ‘Dial’ function? Or is the dialed device (in this case a softphone) the one sending the busy signal?

I know I should migrate to PJSIP, but the CRM we use to ‘click-to-dial’ doesn’t work when I set the extensions to PJSIP (propably archaïc API callls) so I need to fix that first.

SIP/280, which is presumably the soft phone. You should get the protocol logs to confirm this, but I’m pretty sure it is ending the call with a 480 response (I’ll correct the 180 and the reference in my previous reply).

You’re right. I was the softphone (in this case Linphone 4.40 on Ubuntu) that hung up. When I reversed the test (from Linphone to a Yealink T41P), it stuck for the full minute nicely. The thought of this being the cause had crossed my mind, but I couldn’t find any settings regarding that in Linphone.

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