Online upgrade available (2.5.1.2) breaks extensions_custom.conf

We’ve just reinstalled config from last nights backup, as the upgrade bust our extensions_custom.conf with has some more call recording and Jabber in it:

Things upgraded:

Core  setup  2.5.1.1  Online upgrade available (2.5.1.2)     
FreePBX FOP Framework  setup  2.5.0  Online upgrade available (2.5.0.1)     
Blacklist  setup  2.5.0.2  Online upgrade available (2.5.0.3)     
Caller ID Lookup  setup  2.5.0.4  Online upgrade available (2.5.0.5)     
Music on Hold  setup  2.5.1.1  Online upgrade available (2.5.1.2)     

All we have in extensions_custom.conf is:

[from-pstn-custom]
exten => _X.,n,JabberSend(jabber_org,[email protected],Incoming call from ${CALLERID(all)} to ${EXTEN})
exten => _X.,n,MixMonitor(${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)}-${EPOCH}.wav)

Not very nice but works, but breaks with the upgrades.

Could you be a bit more specific please.

What is broken, how, etc… Does it no longer call the context from-pstn-custom?

This is with the upgrade:

    -- Accepting AUTHENTICATED call from 193.111.201.114:
       > requested format = alaw,
       > requested prefs = (),
       > actual format = alaw,
       > host prefs = (alaw),
       > priority = mine
    -- Executing [[email protected]:1] Set("IAX2/89000-1058", "__FROM_DID=01224279484") in new stack
    -- Executing [[email protected]:2] Gosub("IAX2/89000-1058", "app-blacklist-check|s|1") in new stack
    -- Executing [[email protected]:1] LookupBlacklist("IAX2/89000-1058", "") in new stack
    -- Executing [[email protected]:2] GotoIf("IAX2/89000-1058", "0?blacklisted") in new stack
    -- Executing [[email protected]:3] Return("IAX2/89000-1058", "") in new stack
    -- Executing [[email protected]:3] ExecIf("IAX2/89000-1058", "1 |Set|CALLERID(name)=07930323266") in new stack
    -- Executing [[email protected]:4] Set("IAX2/89000-1058", "FAX_RX=disabled") in new stack
    -- Executing [[email protected]:5] Set("IAX2/89000-1058", "__CALLINGPRES_SV=allowed_not_screened") in new stack
    -- Executing [[email protected]:6] JabberSend("IAX2/89000-1058", "jabber_org|[email protected]|Incoming call from "07930323266" <07930323266> to 01224279484") in new stack

JABBER: jabber_org OUTGOING: <message type='chat' to='[email protected]' from='[email protected]/asteriskDE7612D4'><body>Incoming call from &quot;07930323266&quot; &lt;07930323266&gt; to 01224279484</body></message>
    -- Executing [[email protected]:7] MixMonitor("IAX2/89000-1058", "20081106-162619-1225988779.wav") in new stack
  == Auto fallthrough, channel 'IAX2/89000-1058' status is 'UNKNOWN'
    -- Executing [[email protected]:1] Hangup("IAX2/89000-1058", "") in new stack
  == Spawn extension (from-pstn, h, 1) exited non-zero on 'IAX2/89000-1058'
    -- Hungup 'IAX2/89000-1058'
  == Begin MixMonitor Recording IAX2/89000-1058
  == End MixMonitor Recording IAX2/89000-1058

this is the normal progress:

    -- Accepting AUTHENTICATED call from 193.111.201.114:
       > requested format = alaw,
       > requested prefs = (),
       > actual format = alaw,
       > host prefs = (alaw),
       > priority = mine
    -- Executing [[email protected]:1] Set("IAX2/89000-3339", "__FROM_DID=01224279484") in new stack
    -- Executing [[email protected]:2] Gosub("IAX2/89000-3339", "app-blacklist-check|s|1") in new stack
    -- Executing [[email protected]:1] LookupBlacklist("IAX2/89000-3339", "") in new stack
    -- Executing [[email protected]:2] GotoIf("IAX2/89000-3339", "0?blacklisted") in new stack
    -- Executing [[email protected]:3] Return("IAX2/89000-3339", "") in new stack
    -- Executing [[email protected]:3] GotoIf("IAX2/89000-3339", "0 ?cidok") in new stack
    -- Executing [[email protected]:4] Set("IAX2/89000-3339", "CALLERID(name)=07930323266") in new stack
    -- Executing [[email protected]:5] NoOp("IAX2/89000-3339", "CallerID is "07930323266" <07930323266>") in new stack
    -- Executing [[email protected]:6] JabberSend("IAX2/89000-3339", "jabber_org|[email protected]|Incoming call from "07930323266" <07930323266> to 01224279484") in new stack
sterisk*CLI> 
JABBER: jabber_org OUTGOING: <message type='chat' to='[email protected]' from='[email protected]/asterisk323C3C32'><body>Incoming call from &quot;07930323266&quot; &lt;07930323266&gt; to 01224279484</body></message>
    -- Executing [[email protected]:7] MixMonitor("IAX2/89000-3339", "20081106-164745-1225990065.wav") in new stack
    -- Executing [[email protected]:8] SetCallerPres("IAX2/89000-3339", "allowed_not_screened") in new stack
    -- Executing [[email protected]:9] Goto("IAX2/89000-3339", "timeconditions|1|1") in new stack
    -- Goto (timeconditions,1,1)
    -- Executing [[email protected]:1] GotoIfTime("IAX2/89000-3339", "09:00-17:30|mon-fri|*|*?ivr-4|s|1") in new stack
    -- Goto (ivr-4,s,1)
    -- Executing [[email protected]:1] Set("IAX2/89000-3339", "MSG=custom/Open") in new stack
    -- Executing [[email protected]:2] Set("IAX2/89000-3339", "LOOPCOUNT=0") in new stack
    -- Executing [[email protected]:3] Set("IAX2/89000-3339", "__DIR-CONTEXT=default") in new stack
    -- Executing [[email protected]:4] Set("IAX2/89000-3339", "_IVR_CONTEXT_ivr-4=") in new stack
    -- Executing [[email protected]:5] Set("IAX2/89000-3339", "_IVR_CONTEXT=ivr-4") in new stack
    -- Executing [[email protected]:6] GotoIf("IAX2/89000-3339", "0?begin") in new stack
    -- Executing [[email protected]:7] Answer("IAX2/89000-3339", "") in new stack
    -- Executing [[email protected]:8] Wait("IAX2/89000-3339", "1") in new stack
  == Begin MixMonitor Recording IAX2/89000-3339
    -- Executing [[email protected]:9] Set("IAX2/89000-3339", "TIMEOUT(digit)=3") in new stack
    -- Digit timeout set to 3
    -- Executing [[email protected]:10] Set("IAX2/89000-3339", "TIMEOUT(response)=5") in new stack
    -- Response timeout set to 5
    -- Executing [[email protected]:11] Set("IAX2/89000-3339", "__IVR_RETVM=") in new stack
    -- Executing [[email protected]:12] ExecIf("IAX2/89000-3339", "1|Background|custom/Open") in new stack
    -- <IAX2/89000-3339> Playing 'custom/Open' (language 'en')

the priority order seems to be messed up with the upgrade.

you should try to be more careful with your subject headers. The online upgrade does not BREAK extensions_custom.conf. What is broken is your implementation that is fragile and too dependent on a specific implementation.

If you are trying to inject some code into the call prior to running through normal processing, then that is what you should do. Create a context called something like [from-mycustom-pstn] which does your customizations and then does a goto to from-pstn with the extension it came in on.

This will let you deterministically process the call with your special needs prior to sending it on to FreePBX for normal call flow handing. Short of that, write a FreePBX module that properly splices into the dialplan - although that is way overkill for what you are doing here.

Thanks, will do. The subject is correct though, an upgrade broke our setup, but I see your point.

Thanks.

suretec,

I would beg to differ, imho. An upgrade may have caused your modification in your specific extensions_custom.conf to not work as you intended them to, but it did not “break extensions_custom.conf” which is the message that this post initially sends to people.

I belabor the issue because it sends unnecessary concern to readers when they see a subject header like that. The immediate implication, or paranoia being “FreePBX modified extensions_custom.conf - I thought FreePBX was never suppose to touch that file?” And in fact it does not do such.

Furthermore, when we do upgrades that may significantly change something that people might be depending on, we communicate them and typically hold off to introduce them in major release changes. In this situation, the change was minor (and a bug fix). The change will not effect any system that is doing similar hooks to yours but in a deterministic (and thus more ‘proper’) way as I suggested above.

Fair enough. We’ve changed this to how you suggest.

Thanks for your time,

Gavin.