Call drops after extension is entered


I have an issues where the inbound call is dropped after the caller chooses one specific extension. All my other extensions are operating normally meaning they receive inbound calls fine.

Historically we have numbered our extensions 200-299. However this phone is in a common area and it was requested that we give it an extension 300. I set up the phone and extension just like the others but now the calls drop as soon as the extension 300 is dialed.

The following is a snippet from the asterisk output upon receiving the call.

-- Goto (maingreeting,7036513067,1)
    -- Executing [[email protected]:1] Answer("SIP/vitelity-sbc-in-00000126", "") in new stack
    -- Executing [[email protected]:2] Ringing("SIP/vitelity-sbc-in-00000126", "") in new stack
    -- Executing [[email protected]:3] Wait("SIP/vitelity-sbc-in-00000126", "1") in new stack
       > 0x7fdb9c2087c0 -- Probation passed - setting RTP source address to
    -- Executing [[email protected]:4] BackGround("SIP/vitelity-sbc-in-00000126", "custom/4dv-main") in new stack
    -- <SIP/vitelity-sbc-in-00000126> Playing 'custom/4dv-main.slin' (language 'en')
[2018-12-17 07:52:14] WARNING[29142][C-000000b2]: pbx.c:6846 __ast_pbx_run: Invalid extension '30', but no rule 'i' or 'e' in context 'maingreeting'

The item that stands out is the invalid extension 30. I don’t have 2 digit extension numbers never have. I have reviewed the extension config in FreePBX and there is no 30 only 300.

Why is the last zero being dropped? Is there a config that limits the number of extensions? If I recreate the extension with a 2xx number I’m sure it’ll work. But I want to know why the 3xx extension number isn’t working.

Any help is most appreciated!!


Hello, could anyone give suggestions where to locate this issue?? I can provide more log info if needed.

All help is appreciated!!


I’m 99% sure this is not a FreePBX generated context. Nobody can debug your custom dialplan unless you provide it.

Happy to provide. Where is the file?? Do I just copy paste it here or is pastebin acceptable?


We wouldn’t know, you created it. It could be just in extensions_custom.conf but someone could have an #include statement to a file somewhere else. You’ll need to look at your config files to find where it is.

Thank you for the nudge. I did find the extensions_custom.conf file.

Here is the file.


And there is zero matches for what you are trying to input. There must be something that matches.

Apologies, but I’m not following.

Background - I didn’t build this installation of Asterisk and FreePBX. The person who did is no longer with the company. I’m fairly good with Linux, but the VoIP nomenclature is challenging. I appreciate your patience.

I understand your saying there is no matches. Hence the immediate disconnect. But why is it looking for extension 30 when 300 was inputted in the phone? What is it looking for with "rule ‘i’ or ‘e’? How do I put that in the maingreeting section of extension_custom.conf.


This is your dialplan for the greeting. You do not have anything that will match for 30 or 300. It also lacks an invalid extension (how to handle bad entries) or a timeout extension (what do to if they don’t enter anything).

Why a basic IVR was built outside of the scope of the GUI I’m not sure. Someone must have a reason for this or notes on it. If not then you’re going to have to try to figure out what other funky things he did to your system.

exten => 7036513067,1,Answer
exten => 7036513067,n,Ringing
exten => 7036513067,n,Wait(1)
exten => 7036513067,n,Background(custom/4dv-main)
exten => 7036513067,n,Wait(1)
exten => 7036513067,n,Background(or&digits/3&for&directory-assistance)
exten => 7036513067,n,WaitExten(10)
exten => 7036513067,n,Background(if-u-know-ext-dial&or&digits/3&for&directory-assistance)
exten => 7036513067,n,WaitExten(20)
exten => 7036513067,n,Background(goodbye)
exten => 7036513067,n,Hangup

exten => 0,1,Goto(ext-local,204,1})

exten => 3,1,Directory(default,default,eb)

exten => _2XX,1,Goto(ext-findmefollow,FM${EXTEN},1)
exten => _2XXX,1,Goto(ext-findmefollow,FM${EXTEN},1)

exten => _311,1,Playback(custom/knoe_test)
exten => _311,n,Macro(hangupcall,)

exten => 2372,1,Goto(ext-meetme,2372,1)

We don’t have access to your full system, but it appears that your predecessor decided that the IVR module (built into the system) didn’t meet his needs.

At this point, you have two choices:

  1. You can get rid of this code and add a standard IVR to the system. This would be my recommendation.
  2. You can modify your code to handle the requirements you specified above.

To “solve” your immediate problem using option 2, you can modify this code to do the following:

exten => 0,1,Goto(ext-local,204,1})

exten => _2XX,1,Goto(ext-findmefollow,FM${EXTEN},1)
exten => _3XX,1,Goto(ext-findmefollow,FM${EXTEN},1)

exten => 3,1,Directory(default,default,eb)

exten => _311,1,Playback(custom/knoe_test)
exten => _311,n,Macro(hangupcall,)

exten => 2372,1,Goto(ext-meetme,2372,1)


Ok, if I may ask…

  1. so exten => _2XX,1,Goto(ext-findmefollow,FM${EXTEN},1), enables calls to be forwarded to the 200 series of extensions?
  2. If I add exten => _3XX,1,Goto(ext-findmefollow,FM${EXTEN},1), then it “should” work, yes?
  3. could you recommend line entries to handle invalid extensions and or timeouts?

The individual who built this is an expert with many forms of Linux and greatly prefers the CLI to a GUI. However he refused to document or share any knowledge thus was terminated. He does not reply to any form of query. So yes, I will try and find the funky things done to the system.

Fortunately we are a small company and the VoIP phones are not used too often. The system works until I do something like add a 300 series extension to muck it up.

Again thanks for the help. Yes, I’m writing this in my Admin Run book.


Then that person shouldn’t have installed FreePBX. The GUI is one of the big points for FreePBX.

If you’re going to continue to have this is a custom dialplan that requires you to add stuff manually, then you’ll need to add timeout and invalid extensions to this context and make them do what you wish to do.

If you don’t have the skills for this, then you need to look at doing this via the GUI that has all this laid out for you to select options with.

That is true of many of us, but the FreePBX system is a management interface over literally hundreds of moving parts that make up your Asterisk PBX. If you look at “yum”, you’ll see that there are a ton or two of extra stuff added to the basic Linux system. FreePBX manages clear-text config files, the Asterisk ASTDB database, a MySQL data that Asterisk uses, and a FreePBX specific database. That means there is one way to get things right, and 15 other combinations of ways to get it wrong.

On top of that, FreePBX manages the “mundane” parts of the system by providing “standard” ways of doing this type of activity. As a community, we’ve been working on as many “best practices” as we can to make the day-to-day operation and configuration of the system as flexible and trouble-free as we can.

Your guy isn’t “wrong” in the way he set stuff up (unless he did something criminal) but he certainly wasn’t concerned about your business when he did this.

Like I said, if it was me, I’d start by pulling this code out and replacing it with a regular IVR from the IVR module. After that, I’d pay for an hour of support with Sangoma and have them go through your Management and Admin information and make sure there’s nothing “suspicious” in the configs. No one likes to have their system hijacked, so a little safety check should be a good idea.

1 Like

Thanks again for your help.


Appreciate the insight. Believe that 's a good idea, I’ll start googling the tutorials for IVR

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