2.9 Version Upgrade Module, Beta Program Status, More

The beta program is progressing very nicely and we are getting some really great feedback from a handful of people. I suspect the rest of you are out there silently testing and finding 2.9 flawless and feel we should just make it final! Well that's probably wishful thinking on my part so my request is, if you are testing and have general feedback, please speak up. You can comment on this blog and let us know it's going great, it's not, etc. It always helps to know what aspects of the system are being tested and an idea of how many people are really actively using it.

Installing the Upgrade Module

My general sense is that it is going good but not quite ready for a release candidate, though not too far off. The one gating element that usually ramps up beta testers like a hockey stick is when we publish the 2.9 Version Upgrade Tool to the online repository so that it just pops when people check for online modules. Well we are often tempted to do this since we provide lots of warnings before you can actually commit to the upgrade, but we try to air on the side of caution. Most of you have learned to blindly trust anything we throw at the online repository and for that we are flattered. Therefore, we want to be careful not to introduce any surprises on you!

For now, there are a couple steps involved but it is still very straight forward and you can still do it all through the GUI.

Here’s how you get and install the Upgrade Module:

[list]
[] Download the module to your desktop: 2.9 Upgrade Module
[
] Make sure 2.8 is fully up to date from all 2.8 available Updates.
[] Click “Upload module” in Module Admin
[
] Choose the file you just downloaded (versionupgrade-2.8.latest.tgz)
[] Click Upload
[
] Go to Manage local modules
[*] Install the new module (should show locally available)
[/list]

At this point you have done the equivalent of downloading and installing the module as if it had been available online. The rest is the same as it always has been:

[list]
[] Go to the ‘2.9 Upgrade Tool’ tab
[
] Choose to upgrade and confirm
[] Now check for Online Modules again, and you should see the Framework Module, load that
[
] Next, load Core
[] Now load evertyhing
[
] Done! - start testing and exploring away!
[/list]

For those of you who have been through this before, we’ve made some minor but very helpful improvements. As you step through the upgrade process checking for modules, only those that you should upgrade next are displayed in Module Admin. This is important since it is often required to follow the order specified in the upgrade process or bad things can happen. This keeps you from going astray. The entire process should take no longer than a few minutes with a good internet connection. We’ll continue to monitor the feedback and when we are comfortable, we’ll move the module online thus “opening the flood gates” on the next step of testing.

General Beta Status

Overall the program is progressing very nicely. We’ve seen the normal inflow of tickets and have been fixing them quicker then they are coming in. The tickets have been a mix of new 2.9 changes and existing issues that often get reported during beta programs but are not unique to the new release. There was a good chunk of work put into the new Asterisk 1.8 Call Camp-On feature and associated module that I added. We’re trying hard to make sure this gets accepted into Asterisk 1.10 at a minimum and your feedback and testing on the Device State Camp-On patch would be invaluable to make sure the Asterisk team sees enough interest and testing to make this happen. It’s also up on the Asterisk Code Review boad so please show your interest by commenting on the ticket so that we get this in! Other Asterisk related patches that will help with 1.8 themes we’ve tried to pursue and you may be interested include CallCompletionRequest/Cancel fix and a Call Parking Connected Line fix both of which should find their way into 1.8 as bug fixes but your interest in seeing these happen (and thus your testing) will go a long way to raising their awareness. One last one that we currently have a bit of a kludge to work around is Asterisk Bug 18772 which is currently in need of someone smarter than me to come up with a patch to fix it (the others I was able to struggle through and supply patches in hope that they would accelerate fixes and adoption).

Given the current bug rate and feedback, my best guess for future release dates is another week or two in beta before I feel comfortable going to a release candidate, and once there, it’s usually another week or two for final, so we should have a final release before the end of March which keeps us within tolerance of the planned release date.

Other News

I’ve talked about doing a project phone conference and although the feedback has been minimal, it’s still in progress. SkykingOH has come up with a phone bridge on top of “unlimited” bandwidth so I’ll be testing with him shortly to make sure all looks good and then pick and announce a date! I’ve hinted at the fact that Moshe (mbrevda with Schmoozecom.com) has been working on some really cool stuff in the background, and I’m here to simply tease you and say that it’s still coming along nicely but we aren’t ready to surprise you quite yet! Lastly, we get regular inquiries about the next OTTS class as it has been a while since we put one on. We’ve had a few false starts on logistics and locations but stay tuned as we hope to finalize something within the next couple weeks for the next class, and will make sure to include LOTS of 2.9 content in it. We are also looking at adding a one day class to focus solely on ACD (Queues) so for those of you who have a strong interest on that subject including past OTTS graduates. stay tuned!

For now, I’ll let you go so you can go pull down that 2.9 Upgrade Module and get testing!

Philippe - On behalf of the FreePBX Team

Thanks Phillipe, something in the Wiki would be great, although I think I now understand what is happening with amportal.conf.

Otherwise things seem pretty good with 2.9 and asterisk 1.8, I am continuing testing things here. Anything specific that needs testing let me know.

T

Phillipe

I had not looked at the camp on stuff up to now. I will take a look and run some tests when I get a chance on Monday and let you know what I find.

I have asterisk version 1.8.2.2 loaded at present.

T

I get the following error under latest 2.9 with endpoint manager:

WARNING: Assets Missing! ^^Please click the Orange “Apply Configuration Changes” Bar

Did I make a mistake or should I submit a bug?

Scott

Please see if this exists

/admin/assets/endpointman/images

Phillipe

I am looking at Camp On at the moment - not having success - to be sure I am on the right page here is what I am doing - I have a target extension with no voicemail and no call waiting, I set up a call between that extension and another extension and leave them connected. I call the target extension from a third extension and hear busy tone. I then dial *82 but do not hear a camp on announcement, just busy tone and then the system hangs up. When I disconnect the call in progress there is no call back.

I have everything in default state - I don’t see anything obvious I have to set to enable Camp On.

Could you give me some starting values please?

T

go to all three extensions and make sure they all have their monitor and agent policies as generic.

I had to go to each extension and just click submit and then reload

Do we maybe have to make an Advanced Setting to Override and Enable All regardless of their individual settings?

Checked extension configs and reloaded each one, still get fast busy when I dial *82. I have got to be missing something, will keep at it.

T

there are two things going on.

The first is the fast busy means that CallCompletionRequest() is failing and you are not getting anything intelligent back because of one of the above mentioned bugs that is not fixed without the patch.

Beyond that, make sure that the “Caller Timeout To Request” is set to something reasonable like 30 or 60 seconds and then make sure you make your CallCompletionRequest() (*82) within that time.

There is a CLI command:

cc report status

which will show the status of requests. For example I called from 3000 to 3001, and then hung up and immediately ran the command, I see this:

new-host-6*CLI> cc report status
1 Call completion transactions
Core ID		Caller				Status
----------------------------------------------------------------------------
31		SIP/3000		CC offered to caller
		|-->3001@ext-local
		|-->SIP/3001(CCNR)

Which tells me that at this very moment caller SIP/3000 has the option to do a CallCompletionRequest() to 3001 and if made, it will be a CCNR (Call Completion No Answer) request meaning it will be active for the time set for CCNR callbacks once the request has been made. (If the line was busy, it would have been CCBS).

I have 6004 call 6005 and set up a call. I then call 6004 with 6001, get busy and dial *82. 6001 hangs up. I then hang up the call between 6004 and 6005 and after that nothing happens. Here is the call progress log:

== Using SIP RTP TOS bits 184
== Using SIP RTP CoS mark 5
– Executing [6004@from-internal:1] ExecIf(“SIP/6001-00000008”, “0?Set(__RINGTIMER=0)”) in new stack
– Executing [6004@from-internal:2] Macro(“SIP/6001-00000008”, “exten-vm,novm,6004,0,0,0”) in new stack
– Executing [s@macro-exten-vm:1] Macro(“SIP/6001-00000008”, “user-callerid,”) in new stack
– Executing [s@macro-user-callerid:1] Set(“SIP/6001-00000008”, “AMPUSER=6001”) in new stack
– Executing [s@macro-user-callerid:2] GotoIf(“SIP/6001-00000008”, “0?report”) in new stack
– Executing [s@macro-user-callerid:3] ExecIf(“SIP/6001-00000008”, “1?Set(REALCALLERIDNUM=6001)”) in new stack
– Executing [s@macro-user-callerid:4] Set(“SIP/6001-00000008”, “AMPUSER=6001”) in new stack
– Executing [s@macro-user-callerid:5] Set(“SIP/6001-00000008”, “AMPUSERCIDNAME=Stone Residence”) in new stack
– Executing [s@macro-user-callerid:6] GotoIf(“SIP/6001-00000008”, “0?report”) in new stack
– Executing [s@macro-user-callerid:7] Set(“SIP/6001-00000008”, “AMPUSERCID=6001”) in new stack
– Executing [s@macro-user-callerid:8] Set(“SIP/6001-00000008”, “CALLERID(all)=“Stone Residence” <6001>”) in new stack
– Executing [s@macro-user-callerid:9] GotoIf(“SIP/6001-00000008”, “0?limit”) in new stack
– Executing [s@macro-user-callerid:10] ExecIf(“SIP/6001-00000008”, “0?Set(GROUP(concurrency_limit)=6001)”) in new stack
– Executing [s@macro-user-callerid:11] GosubIf(“SIP/6001-00000008”, “7?sub-ccss,s,1(macro-exten-vm,6004)”) in new stack
– Executing [s@sub-ccss:1] ExecIf(“SIP/6001-00000008”, “0?Return()”) in new stack
– Executing [s@sub-ccss:2] Set(“SIP/6001-00000008”, “CCSS_SETUP=TRUE”) in new stack
– Executing [s@sub-ccss:3] GosubIf(“SIP/6001-00000008”, “7?monitor_config,1(macro-exten-vm,6004):monitor_default,1(macro-exten-vm,6004)”) in new stack
– Executing [monitor_config@sub-ccss:1] Set(“SIP/6001-00000008”, “CALLCOMPLETION(cc_monitor_policy)=generic”) in new stack
– Executing [monitor_config@sub-ccss:2] GotoIf(“SIP/6001-00000008”, “1?set_monitor”) in new stack
– Goto (sub-ccss,monitor_config,5)
– Executing [monitor_config@sub-ccss:5] Set(“SIP/6001-00000008”, “CALLCOMPLETION(cc_max_monitors)=”) in new stack
– Executing [monitor_config@sub-ccss:6] Return(“SIP/6001-00000008”, “TRUE”) in new stack
– Executing [s@sub-ccss:4] GosubIf(“SIP/6001-00000008”, “7?agent_config,1:agent_default,1”) in new stack
– Executing [agent_config@sub-ccss:1] Set(“SIP/6001-00000008”, “CALLCOMPLETION(cc_agent_policy)=generic”) in new stack
– Executing [agent_config@sub-ccss:2] Set(“SIP/6001-00000008”, “CALLCOMPLETION(cc_offer_timer)=30”) in new stack
– Executing [agent_config@sub-ccss:3] Set(“SIP/6001-00000008”, “CALLCOMPLETION(ccbs_available_timer)=1200”) in new stack
– Executing [agent_config@sub-ccss:4] Set(“SIP/6001-00000008”, “CALLCOMPLETION(ccnr_available_timer)=1200”) in new stack
– Executing [agent_config@sub-ccss:5] Set(“SIP/6001-00000008”, “CALLCOMPLETION(cc_callback_macro)=ccss-default”) in new stack
– Executing [agent_config@sub-ccss:6] ExecIf(“SIP/6001-00000008”, “1?Set(CALLCOMPLETION(cc_recall_timer)=5)”) in new stack
– Executing [agent_config@sub-ccss:7] ExecIf(“SIP/6001-00000008”, “1?Set(CALLCOMPLETION(cc_max_agents)=1)”) in new stack
– Executing [agent_config@sub-ccss:8] ExecIf(“SIP/6001-00000008”, “0?Set(CALLCOMPLETION(cc_agent_dialstring)=Local/6001_6004@from-ccss-)”) in new stack
– Executing [agent_config@sub-ccss:9] Set(“SIP/6001-00000008”, “CALLCOMPLETION(cc_callback_macro)=ccss-default”) in new stack
– Executing [agent_config@sub-ccss:10] Return(“SIP/6001-00000008”, “”) in new stack
– Executing [s@sub-ccss:5] Set(“SIP/6001-00000008”, “DB(AMPUSER/6001/ccss/last_number)=6004”) in new stack
– Executing [s@sub-ccss:6] Return(“SIP/6001-00000008”, “”) in new stack
– Executing [s@macro-user-callerid:12] ExecIf(“SIP/6001-00000008”, “0?Set(CHANNEL(language)=)”) in new stack
– Executing [s@macro-user-callerid:13] GotoIf(“SIP/6001-00000008”, “0?continue”) in new stack
– Executing [s@macro-user-callerid:14] Set(“SIP/6001-00000008”, “__TTL=64”) in new stack
– Executing [s@macro-user-callerid:15] GotoIf(“SIP/6001-00000008”, “1?continue”) in new stack
– Goto (macro-user-callerid,s,26)
– Executing [s@macro-user-callerid:26] Set(“SIP/6001-00000008”, “CALLERID(number)=6001”) in new stack
– Executing [s@macro-user-callerid:27] Set(“SIP/6001-00000008”, “CALLERID(name)=Stone Residence”) in new stack
– Executing [s@macro-user-callerid:28] Set(“SIP/6001-00000008”, “CHANNEL(language)=en”) in new stack
– Executing [s@macro-exten-vm:2] Set(“SIP/6001-00000008”, “RingGroupMethod=none”) in new stack
– Executing [s@macro-exten-vm:3] Set(“SIP/6001-00000008”, “__EXTTOCALL=6004”) in new stack
– Executing [s@macro-exten-vm:4] Set(“SIP/6001-00000008”, “__PICKUPMARK=6004”) in new stack
– Executing [s@macro-exten-vm:5] Set(“SIP/6001-00000008”, “RT=”"") in new stack
– Executing [s@macro-exten-vm:6] Macro(“SIP/6001-00000008”, “record-enable,6004,IN”) in new stack
– Executing [s@macro-record-enable:1] MacroExit(“SIP/6001-00000008”, “”) in new stack
– Executing [s@macro-exten-vm:7] Macro(“SIP/6001-00000008”, “dial-one,”",tr,6004") in new stack
– Executing [s@macro-dial-one:1] Set(“SIP/6001-00000008”, “DEXTEN=6004”) in new stack
– Executing [s@macro-dial-one:2] Set(“SIP/6001-00000008”, “DIALSTATUS_CW=”) in new stack
– Executing [s@macro-dial-one:3] GosubIf(“SIP/6001-00000008”, “0?screen,1”) in new stack
– Executing [s@macro-dial-one:4] GosubIf(“SIP/6001-00000008”, “0?cf,1”) in new stack
– Executing [s@macro-dial-one:5] GotoIf(“SIP/6001-00000008”, “1?skip1”) in new stack
– Goto (macro-dial-one,s,8)
– Executing [s@macro-dial-one:8] GotoIf(“SIP/6001-00000008”, “0?nodial”) in new stack
– Executing [s@macro-dial-one:9] GotoIf(“SIP/6001-00000008”, “0?continue”) in new stack
– Executing [s@macro-dial-one:10] Set(“SIP/6001-00000008”, “EXTHASCW=”) in new stack
– Executing [s@macro-dial-one:11] GotoIf(“SIP/6001-00000008”, “1?next1:cwinusebusy”) in new stack
– Goto (macro-dial-one,s,12)
– Executing [s@macro-dial-one:12] GotoIf(“SIP/6001-00000008”, “0?docfu:skip3”) in new stack
– Goto (macro-dial-one,s,16)
– Executing [s@macro-dial-one:16] GotoIf(“SIP/6001-00000008”, “1?next2:continue”) in new stack
– Goto (macro-dial-one,s,17)
– Executing [s@macro-dial-one:17] GotoIf(“SIP/6001-00000008”, “0?continue”) in new stack
– Executing [s@macro-dial-one:18] ExecIf(“SIP/6001-00000008”, “0?Set(DIALSTATUS=BUSY)”) in new stack
– Executing [s@macro-dial-one:19] GotoIf(“SIP/6001-00000008”, “0?cwinusebusy”) in new stack
– Executing [s@macro-dial-one:20] Set(“SIP/6001-00000008”, “DEXTEN=”) in new stack
– Executing [s@macro-dial-one:21] Set(“SIP/6001-00000008”, “DIALSTATUS=BUSY”) in new stack
– Executing [s@macro-dial-one:22] Goto(“SIP/6001-00000008”, “nodial”) in new stack
– Goto (macro-dial-one,s,46)
– Executing [s@macro-dial-one:46] ExecIf(“SIP/6001-00000008”, “0?Set(DIALSTATUS=NOANSWER)”) in new stack
– Executing [s@macro-dial-one:47] NoOp(“SIP/6001-00000008”, “Returned from dial-one with nothing to call and DIALSTATUS: BUSY”) in new stack
– Executing [s@macro-dial-one:48] MacroExit(“SIP/6001-00000008”, “”) in new stack
– Executing [s@macro-exten-vm:8] GotoIf(“SIP/6001-00000008”, “0?exit”) in new stack
– Executing [s@macro-exten-vm:9] Set(“SIP/6001-00000008”, “SV_DIALSTATUS=BUSY”) in new stack
– Executing [s@macro-exten-vm:10] GosubIf(“SIP/6001-00000008”, “0?docfu,1”) in new stack
– Executing [s@macro-exten-vm:11] GosubIf(“SIP/6001-00000008”, “0?docfb,1”) in new stack
– Executing [s@macro-exten-vm:12] Set(“SIP/6001-00000008”, “DIALSTATUS=BUSY”) in new stack
– Executing [s@macro-exten-vm:13] ExecIf(“SIP/6001-00000008”, “0?MacroExit()”) in new stack
– Executing [s@macro-exten-vm:14] GotoIf(“SIP/6001-00000008”, “1?s-BUSY,1”) in new stack
– Goto (macro-exten-vm,s-BUSY,1)
– Executing [s-BUSY@macro-exten-vm:1] GotoIf(“SIP/6001-00000008”, “0?exit,1”) in new stack
– Executing [s-BUSY@macro-exten-vm:2] PlayTones(“SIP/6001-00000008”, “busy”) in new stack
– Executing [s-BUSY@macro-exten-vm:3] Busy(“SIP/6001-00000008”, “20”) in new stack
== Spawn extension (macro-exten-vm, s-BUSY, 3) exited non-zero on ‘SIP/6001-00000008’ in macro ‘exten-vm’
== Spawn extension (from-internal, 6004, 2) exited non-zero on ‘SIP/6001-00000008’
– Executing [h@from-internal:1] Macro(“SIP/6001-00000008”, “hangupcall”) in new stack
– Executing [s@macro-hangupcall:1] GotoIf(“SIP/6001-00000008”, “1?skiprg”) in new stack
– Goto (macro-hangupcall,s,3)
– Executing [s@macro-hangupcall:3] GotoIf(“SIP/6001-00000008”, “1?theend”) in new stack
– Goto (macro-hangupcall,s,5)
– Executing [s@macro-hangupcall:5] Hangup(“SIP/6001-00000008”, “”) in new stack
== Spawn extension (macro-hangupcall, s, 5) exited non-zero on ‘SIP/6001-00000008’ in macro ‘hangupcall’
== Spawn extension (from-internal, h, 1) exited non-zero on ‘SIP/6001-00000008’
== Using SIP RTP TOS bits 184
== Using SIP RTP CoS mark 5
– Executing [*82@from-internal:1] Answer(“SIP/6001-00000009”, “”) in new stack
– Executing [*82@from-internal:2] Set(“SIP/6001-00000009”, “CCSS_SETUP=TRUE”) in new stack
– Executing [*82@from-internal:3] Macro(“SIP/6001-00000009”, “user-callerid,”) in new stack
– Executing [s@macro-user-callerid:1] Set(“SIP/6001-00000009”, “AMPUSER=6001”) in new stack
– Executing [s@macro-user-callerid:2] GotoIf(“SIP/6001-00000009”, “0?report”) in new stack
– Executing [s@macro-user-callerid:3] ExecIf(“SIP/6001-00000009”, “1?Set(REALCALLERIDNUM=6001)”) in new stack
– Executing [s@macro-user-callerid:4] Set(“SIP/6001-00000009”, “AMPUSER=6001”) in new stack
– Executing [s@macro-user-callerid:5] Set(“SIP/6001-00000009”, “AMPUSERCIDNAME=Stone Residence”) in new stack
– Executing [s@macro-user-callerid:6] GotoIf(“SIP/6001-00000009”, “0?report”) in new stack
– Executing [s@macro-user-callerid:7] Set(“SIP/6001-00000009”, “AMPUSERCID=6001”) in new stack
– Executing [s@macro-user-callerid:8] Set(“SIP/6001-00000009”, “CALLERID(all)=“Stone Residence” <6001>”) in new stack
– Executing [s@macro-user-callerid:9] GotoIf(“SIP/6001-00000009”, “0?limit”) in new stack
– Executing [s@macro-user-callerid:10] ExecIf(“SIP/6001-00000009”, “0?Set(GROUP(concurrency_limit)=6001)”) in new stack
– Executing [s@macro-user-callerid:11] GosubIf(“SIP/6001-00000009”, “7?sub-ccss,s,1(from-internal,*82)”) in new stack
– Executing [s@sub-ccss:1] ExecIf(“SIP/6001-00000009”, “4?Return()”) in new stack
– Executing [s@macro-user-callerid:12] ExecIf(“SIP/6001-00000009”, “0?Set(CHANNEL(language)=)”) in new stack
– Executing [s@macro-user-callerid:13] GotoIf(“SIP/6001-00000009”, “0?continue”) in new stack
– Executing [s@macro-user-callerid:14] Set(“SIP/6001-00000009”, “__TTL=64”) in new stack
– Executing [s@macro-user-callerid:15] GotoIf(“SIP/6001-00000009”, “1?continue”) in new stack
– Goto (macro-user-callerid,s,26)
– Executing [s@macro-user-callerid:26] Set(“SIP/6001-00000009”, “CALLERID(number)=6001”) in new stack
– Executing [s@macro-user-callerid:27] Set(“SIP/6001-00000009”, “CALLERID(name)=Stone Residence”) in new stack
– Executing [s@macro-user-callerid:28] Set(“SIP/6001-00000009”, “CHANNEL(language)=en”) in new stack
– Executing [*82@from-internal:4] CallCompletionRequest(“SIP/6001-00000009”, “”) in new stack
== Spawn extension (from-internal, 82, 4) exited non-zero on ‘SIP/6001-00000009’
– Executing [h@from-internal:1] Macro(“SIP/6001-00000009”, “hangupcall”) in new stack
– Executing [s@macro-hangupcall:1] GotoIf(“SIP/6001-00000009”, “1?skiprg”) in new stack
– Goto (macro-hangupcall,s,3)
– Executing [s@macro-hangupcall:3] GotoIf(“SIP/6001-00000009”, “1?theend”) in new stack
– Goto (macro-hangupcall,s,5)
– Executing [s@macro-hangupcall:5] Hangup(“SIP/6001-00000009”, “”) in new stack
== Spawn extension (macro-hangupcall, s, 5) exited non-zero on ‘SIP/6001-00000009’ in macro ‘hangupcall’
== Spawn extension (from-internal, h, 1) exited non-zero on ‘SIP/6001-00000009’
– Executing [h@macro-dial-one:1] Macro(“SIP/6005-00000006”, “hangupcall,”) in new stack
– Executing [s@macro-hangupcall:1] GotoIf(“SIP/6005-00000006”, “1?skiprg”) in new stack
– Goto (macro-hangupcall,s,3)
– Executing [s@macro-hangupcall:3] GotoIf(“SIP/6005-00000006”, “1?theend”) in new stack
– Goto (macro-hangupcall,s,5)
– Executing [s@macro-hangupcall:5] Hangup(“SIP/6005-00000006”, “”) in new stack
== Spawn extension (macro-hangupcall, s, 5) exited non-zero on ‘SIP/6005-00000006’ in macro ‘hangupcall’
== Spawn extension (macro-dial-one, h, 1) exited non-zero on ‘SIP/6005-00000006’
== Spawn extension (macro-dial-one, s, 42) exited non-zero on ‘SIP/6005-00000006’ in macro ‘dial-one’
== Spawn extension (macro-exten-vm, s, 7) exited non-zero on ‘SIP/6005-00000006’ in macro ‘exten-vm’
== Spawn extension (from-internal, 6004, 2) exited non-zero on ‘SIP/6005-00000006’
– Executing [h@from-internal:1] Macro(“SIP/6005-00000006”, “hangupcall”) in new stack
– Executing [s@macro-hangupcall:1] GotoIf(“SIP/6005-00000006”, “1?skiprg”) in new stack
– Goto (macro-hangupcall,s,3)
– Executing [s@macro-hangupcall:3] GotoIf(“SIP/6005-00000006”, “1?theend”) in new stack
– Goto (macro-hangupcall,s,5)
– Executing [s@macro-hangupcall:5] Hangup(“SIP/6005-00000006”, “”) in new stack
== Spawn extension (macro-hangupcall, s, 5) exited non-zero on ‘SIP/6005-00000006’ in macro ‘hangupcall’
== Spawn extension (from-internal, h, 1) exited non-zero on 'SIP/6005-00000006’
asterisk
CLI>

I use device and user mode. It tells me that I need to turn on ‘Dynamically Generate Hints’ in Advanced settings, which is one of those read only settings that we have to turn the override on for. Unfortunately when I do that. All my BLF’s have nothing to monitor until someone’s on the phone, so they show some variation of “I don’t know what’s going on with that phone”. This is happening with Linksys and Aastra phones at least. The Linksys are more obvious because the lights show orange, the Aastra’s just show a ?.

Also, on the reports, page one of calls displays correctly, but once you go to the next page, the duration is showing up in I believe straight seconds rather than hr:min:sec.

Socs28,

I would suggest you start a new forum thread wrt to the Dynamic Hints. That is not something new (though there could be 2.9 specific changes that have resulted in bugs).

On the new thread, we can go into more details of what may be happening and where to look. Concerning reports, that code has not changed in 2.9 either, not sure what that is about but reports have always been plagued with potential issues and inaccuracies because of lots of reasons, that could simply be what is going on here.

stonet,

you should probably fire up a new thread in the forum wrt to CCSS issues so we don’t start filling the blog with call traces. If you could do that and put your trace there, I’d like to remove it from your comments so we can keep the blog thread a bit cleaner.

We can take up your issue there (which looks like the right calls are being made so we’ll have to further diagnose it there).

Thanks.

[p_lindheimer] Original Message Removed as Irrelevant. To the poster, please contact the support team directly as I am sure they will be able to rectify your problem.

stonet,

thanks for the update.

I’d be real interested in the Call Camping abilities in conjunction with the referenced patches. Also call parking in conjunction with the referenced patches. I could get you access to a set of asterisk RPMs that would provide 1.8 with these. Alternatively, they are all housed in the main asterisk binary, I could get you access to that which would allow you to switch between what ever version you are using and that one.

I’d like to get testing feedback posted to the asterisk tickets to help them along. If you have a phone with BLF buttons that is the best way and then just setup a BLF to the Call Camping toggle. If not, you can always test using the feature codes directly and then checking that the state is being updated with the ‘core show hints’ CLI option.

Also, with the call parking, you could test and confirm that the Connected Call capabilities are fixed with the one mentioned patch (also in the asterisk binary) if you have phones that support the Connected Line updates and have them properly configured.

Beyond that, usually the most important thing is that we have not regressed any existing abilities since priority one is to keep what worked working just as stable. Priority two is to make the new features as concrete as possible knowing that there will probably be things discovered after final release that will need to be addressed, but since the features are new, we are not breaking something that people were doing before.

all you should have to do at most is to do a reload at the CLI if Asterisk happens to be caching the manager.conf credentials.

I believe at one point, maybe 1.6, they enabled that ability.

As far as asterisk.conf, once you have transitioned to the new setup, FreePBX does not use it anymore.

FreePBX does generate one every time you press the “Apply Configuration Settings” bar (meaning when you run retrieve_conf) because there may be some third party applications, such as FOP, that still use that file. It will be phased out over time.

The only other place that FreePBX still uses the file is on a first install with install_amp. The amportal.conf can be used to set various initial settings but once they are loaded in the database, it is no longer used but just written to.

This is one of the big ‘plumbing’ changes that we did in 2.9, and for those of us who have been around for a while it is a bit confusing. Given several of the changes that are part of 2.9, we’ll be putting out more blogs on some of it in the technical corner, on the wiki, etc. so those of you who want to know what is going on behind the scenes can get the scoop.

I now realize I also changed the Asterisk Manager Password this morning. I had changed it in /etc/amportal.conf and in /etc/asterisk/manager.conf but it did not change in the freepbx_settings table in the database. I changed it there as well and after an amportal restart the problem was resolved.

On further investigation I find that changing the password in manager.conf and in the freepbx_settings table and then doing an amportal restart works for changing the password. The password updated automatically in amportal.conf. The amportal restart was necessary, without it the problem persisted.