Be careful prior to updating Elastix 2.4 going forward


  • Service Provider

    The other day I decided to update the Elastix 2.4 instance I have rented with NTG. Figured I would catch the system up on the various Linux exploit patches.

    Oops.

    Apparently the Elastix team has pushed a lot of changes down since they released 2.5. I have been so used to the 2.4 system updates being completely stable, that I never bothered to check prior to running yum.

    Yum will now push FreePBX version to 2.11. While this is awesome, it completely hosed my PBX because it broke shit too.

    There were significant changes between FreePBX 2.8 and 2.11

    Immediately, all users voicemail was turned off.

    Also, There was a table missing in the MySQL database (parkinglots). I had an Elastix generated backup and that contained the mysqldump with the needed data, but this would have been way past a novice.

    Finally, I used custom parking lots and that is all completely hosed now. Been working on that the last hour or so.


  • Service Provider

    Apparently Paging is hosed too..

    /sigh been beating on this for a couple hours now.

    Here is what it looks like on an unupdated 2.4 system.

    	-- Executing [[email protected]:12] Page("SIP/5199-00000a51", "LOCAL/[email protected]") in new stack
    	-- Called [email protected]
    	-- <SIP/5199-00000a51> Playing 'beep.gsm' (language 'en')
    	-- Executing [[email protected]:1] GotoIf("Local/[email protected];2", "0?skipself") in new stack
    	-- Executing [[email protected]:2] ChanIsAvail("Local/[email protected];2", "SIP/5198,s") in new stack
      == Using SIP RTP TOS bits 184
      == Using SIP RTP CoS mark 5
    	-- Executing [[email protected]:3] GotoIf("Local/[email protected];2", "0?skipself") in new stack
    	-- Executing [[email protected]:4] GotoIf("Local/[email protected];2", "0?skipself") in new stack
    	-- Executing [[email protected]:5] Macro("Local/[email protected];2", "autoanswer,5198") in new stack
    	-- Executing [[email protected]:1] Set("Local/[email protected];2", "DIAL=SIP/5198") in new stack
    	-- Executing [[email protected]:2] ExecIf("Local/[email protected];2", "0?Set(DIAL=DAHDI/5198)") in new stack
    	-- Executing [[email protected]:3] GotoIf("Local/[email protected];2", "0?macro") in new stack
    	-- Executing [[email protected]:4] Set("Local/[email protected];2", "phone=snomPA1/8.7.3.25") in new stack
    	-- Executing [[email protected]:5] ExecIf("Local/[email protected];2", "0?Set(CALLINFO=Call-Info: <sip:broadworks.
    net>;answer-after=0)") in new stack
    	-- Executing [[email protected]:6] ExecIf("Local/[email protected];2", "1?SipAddHeader(Alert-Info: Ring Answer)")
    in new stack
    	-- Executing [[email protected]:7] ExecIf("Local/[email protected];2", "1?SipAddHeader(Call-Info: <uri>;answer-aft
    er=0)") in new stack
    	-- Executing [[email protected]:8] ExecIf("Local/[email protected];2", "1?Set(__SIP_URI_OPTIONS=intercom=true)") i
    n new stack
    	-- Executing [[email protected]:6] Dial("Local/[email protected];2", "SIP/5198,5,A(beep)") in new stack
      == Using SIP RTP TOS bits 184
      == Using SIP RTP CoS mark 5
    	-- Called SIP/5198
    	   > 0xb634f8b0 -- Probation passed - setting RTP source address to 75.132.206.53:11800
    	-- SIP/5198-00000a53 is ringing
    	-- Local/[email protected];1 is ringing
    	   > 0xb216cf0 -- Probation passed - setting RTP source address to 10.202.1.39:49158
    	-- SIP/5198-00000a53 answered Local/[email protected];2
    	-- <SIP/5198-00000a53> Playing 'beep.gsm' (language 'en')
    	   > 0xb216cf0 -- Probation passed - setting RTP source address to 10.202.1.39:49158
    	-- Local/[email protected];1 answered
      == Spawn extension (ext-paging, PAGE5198, 6) exited non-zero on 'Local/[email protected];2'
      == Spawn extension (from-internal, 60, 12) exited non-zero on 'SIP/5199-00000a51'
    	-- Executing [[email protected]:1] Macro("SIP/5199-00000a51", "hangupcall") in new stack
    	-- Executing [[email protected]:1] GotoIf("SIP/5199-00000a51", "1?endmixmoncheck") in new stack
    	-- Goto (macro-hangupcall,s,9)
    	-- Executing [[email protected]:9] NoOp("SIP/5199-00000a51", "End of MIXMON check") in new stack
    	-- Executing [[email protected]:10] GotoIf("SIP/5199-00000a51", "1?nomeetmemon") in new stack
    	-- Goto (macro-hangupcall,s,28)
    	-- Executing [[email protected]:28] NoOp("SIP/5199-00000a51", "End of MEETME check") in new stack
    	-- Executing [[email protected]:29] GotoIf("SIP/5199-00000a51", "1?noautomon") in new stack
    	-- Goto (macro-hangupcall,s,34)
    	-- Executing [[email protected]:34] NoOp("SIP/5199-00000a51", "TOUCH_MONITOR_OUTPUT=") in new stack
    	-- Executing [[email protected]:35] GotoIf("SIP/5199-00000a51", "1?noautomon2") in new stack
    	-- Goto (macro-hangupcall,s,41)
    	-- Executing [[email protected]:41] NoOp("SIP/5199-00000a51", "MONITOR_FILENAME=") in new stack
    	-- Executing [[email protected]:42] GotoIf("SIP/5199-00000a51", "1?skiprg") in new stack
    	-- Goto (macro-hangupcall,s,45)
    	-- Executing [[email protected]:45] GotoIf("SIP/5199-00000a51", "1?skipblkvm") in new stack
    	-- Goto (macro-hangupcall,s,48)
    	-- Executing [[email protected]:48] GotoIf("SIP/5199-00000a51", "1?theend") in new stack
    	-- Goto (macro-hangupcall,s,50)
    	-- Executing [[email protected]:50] AGI("SIP/5199-00000a51", "hangup.agi") in new stack
    	-- Launched AGI Script /var/lib/asterisk/agi-bin/hangup.agi
    	-- <SIP/5199-00000a51>AGI Script hangup.agi completed, returning 0
    	-- Executing [[email protected]:51] Hangup("SIP/5199-00000a51", "") in new stack
      == Spawn extension (macro-hangupcall, s, 51) exited non-zero on 'SIP/5199-00000a51' in macro 'hangupcall'
      == Spawn extension (from-internal, h, 1) exited non-zero on 'SIP/5199-00000a51'
    pbx*CLI>
    

    Here is the disaster on the 2.4 system that I updated..

    	-- Executing [[email protected]:10] AGI("SIP/5299-00000000", "page.agi") in new stack
    	-- Launched AGI Script /var/lib/asterisk/agi-bin/page.agi
    	-- <SIP/5299-00000000>AGI Script page.agi completed, returning 0
    	-- Executing [[email protected]:11] MeetMe("SIP/5299-00000000", "1425268084247,dqwxAG,,") in new stack
    [2015-03-01 21:48:05] WARNING[26195][C-00000000]: app_meetme.c:1296 build_conf: Unable to open DAHDI pseudo device
      == Spawn extension (app-pagegroups, 621, 11) exited non-zero on 'SIP/5299-00000000'
    	-- Executing [[email protected]:1] ExecIf("SIP/5299-00000000", "1?Set(DEVICE_STATE(Custom:PAGE621)=NOT_INUSE)") in new stack
    	-- Executing [[email protected]:1] Wait("Local/[email protected];2", "1") in new stack
    	-- Executing [[email protected]:1] Wait("Local/[email protected];2", "1") in new stack
    	-- Executing [[email protected]:1] Macro("Local/[email protected];2", "autoanswer,5210") in new stack
    	-- Executing [[email protected]:1] Set("Local/[email protected];2", "DIAL=SIP/5210") in new stack
    	-- Executing [[email protected]:2] ExecIf("Local/[email protected];2", "0?Set(DIAL=DAHDI/5210)") in new stack
    	-- Executing [[email protected]:3] GotoIf("Local/[email protected];2", "0?macro") in new stack
    [2015-03-01 21:48:05] WARNING[26205][C-00000002]: chan_sip.c:22130 function_sippeer: SIPPEER(): usage of ':' to separate arguments
     is deprecated.  Please use ',' instead.
    	-- Executing [[email protected]:4] Set("Local/[email protected];2", "phone=") in new stack
    	-- Executing [[email protected]:5] ExecIf("Local/[email protected];2", "0?Set(CALLINFO=Call-Info: <sip:broadworks.
    net>;answer-after=0)") in new stack
    	-- Executing [[email protected]:6] ExecIf("Local/[email protected];2", "0?Set(ALERTINFO=Alert-Info: Intercom)") in
     new stack
    	-- Executing [[email protected]:7] ExecIf("Local/[email protected];2", "0?Set(ALERTINFO=Alert-Info: info=Auto Answ
    er)") in new stack
    	-- Executing [[email protected]:8] ExecIf("Local/[email protected];2", "0?Set(ALERTINFO=Alert-Info: ring-answer)")
     in new stack
    	-- Executing [[email protected]:9] ExecIf("Local/[email protected];2", "1?SipAddHeader(Alert-Info: Ring Answer)")
    in new stack
    	-- Executing [[email protected]:10] ExecIf("Local/[email protected];2", "1?SipAddHeader(Call-Info: <uri>;answer-af
    ter=0)") in new stack
    	-- Executing [[email protected]:11] ExecIf("Local/[email protected];2", "1?Set(__SIP_URI_OPTIONS=intercom=true)")
    in new stack
    	-- Executing [[email protected]:2] Dial("Local/[email protected]000001;2", "SIP/5210,5,A()") in new stack
      == Using SIP RTP TOS bits 184
      == Using SIP RTP CoS mark 5
    	-- Called SIP/5210
    	-- SIP/5210-00000001 is ringing
    	-- SIP/5210-00000001 answered Local/[email protected];2
    	   > Channel Local/[email protected];1 was answered.
    	   > Launching MeetMe(1425268084247,1dqsxm,,) on Local/[email protected];1
    [2015-03-01 21:48:05] WARNING[26207]: app_meetme.c:1296 build_conf: Unable to open DAHDI pseudo device
      == Spawn extension (app-paging, PAGE5210, 2) exited non-zero on 'Local/[email protected];2'
    	-- Executing [[email protected]:2] Answer("Local/[email protected];2", "") in new stack
    	   > Channel Local/[email protected];1 was answered.
    	   > Launching Wait(5) on Local/[email protected];1
    	-- Executing [[email protected]:2] Answer("Local/[email protected];2", "") in new stack
    	   > Channel Local/[email protected];1 was answered.
    	   > Launching Playback(beep) on Local/[email protected];1
    	-- <Local/[email protected];1> Playing 'beep.gsm' (language 'en')
    	-- Executing [[email protected]:3] MeetMe("Local/[email protected];2", "1425268084247,xq,,") in new stack
      == Parsing '/etc/asterisk/meetme.conf': Found
      == Parsing '/etc/asterisk/meetme_additional.conf': Found
      == Spawn extension (app-page-stream, s, 3) exited non-zero on 'Local/[email protected];2'
    	-- Executing [[email protected]:3] MeetMe("Local/[email protected];2", "1425268084247,xqA,,") in new stack
      == Parsing '/etc/asterisk/meetme.conf': Found
      == Parsing '/etc/asterisk/meetme_additional.conf': Found
      == Spawn extension (app-page-stream, s, 3) exited non-zero on 'Local/[email protected];2'

  • Service Provider

    Yup, completely hosed. it upgraded to 2.5... That means there is no easy way to install 2.4 and update it securely anymore. You have to do it all piecemeal.

    [[email protected] ~]# rpm -qa | grep -i freepbx
    freePBX-2.11.0-19
    [[email protected] ~]# rpm -qa | grep elastix
    elastix-addons-2.5.0-1
    elastix-extras-2.5.0-1
    elastix-security-2.5.0-1
    elastix-2.5.0-1
    redhat-logos-4.9.99-11elastix
    elastix-system-2.5.0-1
    elastix-email_admin-2.5.0-1
    elastix-pbx-2.5.0-1
    elastix-firstboot-2.5.0-1
    elastix-fax-2.5.0-1
    elastix-im-2.5.0-1
    elastix-my_extension-2.5.0-1
    elastix-agenda-2.5.0-1
    elastix-endpointconfig2-2.5.0-1
    elastix-portknock-0.0.1-0
    elastix-framework-2.5.0-2
    elastix-reports-2.5.0-1
    [[email protected] ~]#

  • Service Provider

    My fault for not getting a VM level backup taken.

    Again, just something I had come to not expect as a need because 2.4 updated for years. I did not even think about the possibility that YUM would update a system form 2.4 to 2.5.


  • Service Provider

    Just seen a nice post on the Elastix forums. Someone went through the trouble to manually compare a 2.4 install and list the updates needed.

    http://forum.elastix.org/viewtopic.php?f=3&t=130440

    I think I'll be testing this out.