Sorry
Old FOP2 - FOP2 Server Status: OK - Version: 2.29.03
New FOP2 - Panel Server Status: OK - Version: 2.31.36
davids1
Posts
-
Export Phonebook and Import Contacts -
Export Phonebook and Import ContactsWe have migrated an in house FreePBX with FOP2 Manager - Version 1.0.7, to the cloud (using FreePBX backup/restore) and installed a new FOP2 instance (FOP2 Manager - Version 1.2.4).
I have tried searching for this but nearly everything I can find is about migrating the licenses. We just bought a new license as the old one was about 10 years old.
I have backed up the PhoneBook into a data.csv file but unsure how to import this into Contacts in the new FOP2 system. I tried adding a new contact and exporting it to see what might be different, and the new contact exports as a vcf document.
Do we need to convert the csv file to vcf?
Do we need to upgrade the old FOP2 and then export as vcf?
or how do we import this data?
Thanks
Dave -
Fullwallboard tweaking what counts as an outbound callHi, so with my limited knowledge I didn't realise the /* */ meant it commented out the original section of code I referenced at the start of this threat. I assume this code has been replaced by the two lines above it, which seems a very neat query by Tom Teeuwen.
I spent more time on this last night and have, what I believe is a good mysql query, I just cant seem to get it working in the getstatsfromasternic.php file.
If I ssh to the PBX,
mysql -u root
use asteriskcdrdb;
I can start running mysql queries to get a list of external only calls, where the cnum = the extension number of the agent (which is 4000 in my test case).
select * from cdr WHERE cnum=4000 AND lastapp='Dial' AND dcontext like "%restrictedroute%";
might work because all external calls seem to go out a context name beginning with restrictedroute , or
select * from cdr WHERE cnum=4000 AND lastapp='Dial' AND outbound_cnum like "0%";
because no internal extensions start with a 0
We could use both together in one query, but either way, I cant seem to get this tweak into the getstatsfromasternic.php file to pull external calls onto the wallboard.If anyone has enough knowledge to know where I put AND outbound_cnum like "0%" into the below query it would be a great help. I have tried it inbetween these two bits
AND lastapp = 'Dial' GROUP BYcnum`` but we get 0 on the wallboard.// query contributed by Tom Teeuwen $condagentoutbound = preg_replace("/AND agent IN/","AND asterisk.users.name in",$condagent); $query = "SELECT `asterisk`.`users`.`name` AS `agent`, `cnum`.`count` AS `count`, `cnum`.`talktime` AS `talktime` FROM ( SELECT `cnum`, COUNT(*) AS `count`, SUM(`sum`) AS `talktime` FROM ( SELECT `cnum`, `uniqueid`, SUM(`billsec`) AS `sum` FROM `asteriskcdrdb`.`cdr` WHERE calldate >= $mydate AND lastapp = 'Dial' GROUP BY `cnum`, `uniqueid`) AS `billsec_sum` GROUP BY `cnum`) AS `cnum` INNER JOIN `asterisk`.`users` ON `cnum`.`cnum` = `asterisk`.`users`.`extension` WHERE 1=1 $condagentoutbound";Thanks
David -
Fullwallboard tweaking what counts as an outbound callCant see how to edit, but the bold didnt show, it has added ** either side of the extra bit I added
AND context='macro-dialout-trunk' -
Fullwallboard tweaking what counts as an outbound callWe have a client with FreePBX/PBXact, FOP2 and Callcenter Stats Pro.
If one extension calls another extension, it adds 1 to their outbound calls number in the queue.
The client would like internal calls, and internal transfers to not count as an outbound call.
My thoughts are to edit the getstatsfromasternic.php file, possibly on line 481, to only include context=macro-dialout-trunk
I dont know the MySQL code yet but it could look something like this - I have my extra bit in bold.
Does this sound like it could work, or has anyone a better idea?
Thanks
Dave/* $query = "SELECT agent,count,talktime FROM ( "; $query.= "SELECT a.name AS agent,count(*) AS count, sum(billsec) AS talktime "; $query.= "FROM asterisk.users a "; $query.= "INNER JOIN ( SELECT * FROM asteriskcdrdb.cdr WHERE calldate >= $mydate) b "; $query.= "ON extension=src AND lastapp='Dial' **AND context='macro-dialout-trunk'** GROUP BY a.name "; $query.=") j WHERE 1=1 $condagent"; */ -
Button info AccountCode not updating when data removed in FreePBX/PBXactHi, I have read in other posts that the buttons data doesnt update automatically and I may need to call a url/script manually.
If we add or change an accountcode in a FreePBX/PBXact extension it updates ok in FOP2 - Buttons - Advanced view. The problem we have is if we remove it from the FreePBX/PBXact extension, it doesnt remove the data from the FOP2 button.
Is this is fault or do we have a url/script ti run to update this? We have tried recreate users, reload panel, and sync labels. We have rebooted the PBX before but onw that we have ran the recreate users I will reboot it again tonight to see if it makes any updates.
Thanks
D
Latest version of PBXact, PBX Version: 16.0.33, PBX Distro:12.7.8-2302-1.sng7, with Asterisk Version:16.30.0, and FOP2 2.31.30 -
Full Wallboard - Agent State - InvalidHi Nicolas, sorry for delay, we now have a full fop2 with wallboard and css pro installed on our own pbx so I can continue this without messing with the clients pbx.
If I put a phone on DND by using the DND button on the phone, its state in the PBX Queue using asterisk -rx "queue show" says its Busy.

The Agent state on FOP2 says Invalid

We would like the Busy state to show as busy in the FOP2 screen. I can see the possible return values for {State} should be : unavail, free, ringing, busy, hold
Is there somewhere I can map Busy to Busy rather than it mapping to invalid?
Thanks
David -
Full Wallboard - Talk Time split between first extension and transferred call destination extension?I am able to get transfers logging in the queue_log file (adding S or P in front of the extension numbers in the queue), but still a bit unsure if or how to split talktime as the second leg of the call doesnt call the queue, its just an internal transfer. Any ideas out there for workarounds or is just a no go, and no one uses it like this.
-
Full Wallboard - Talk Time split between first extension and transferred call destination extension?The queue_log file doesnt seem to be logging any Transfer, each of the calls below involved TestExtension or TestExtension2 picking up the Queue call, talking for around a minute, then transferring the call to the other extension, and the other extension talking for 5 minutes. The fill 6 minutes gets logged with the agent who first picked up the call.
I have been reading http://www.asteriskdocs.org/en/3rd_Edition/asterisk-book-html-chunk/ACD_id289009.html?msclkid=4a9c8896cacd11ec8ea497a6833d19a2 and it mentions about a Transfer event, Written when a caller is transferred to another extension. Additional parameters are also written, which include: the extension and context the caller was transferred to, the hold time of the caller in the queue, the amount of time the caller was speaking to a member of the queue, and the original position of the caller when he entered the queue.[a]
[a] Please note that when the caller is transferred using SIP transfers (rather than the built-in transfers triggered by DTMF and configured in features.conf), the TRANSFER event may not be reliable.Hope this helps
14 1651508286|1651508286.20042|808|NONE|DID|02011111111 15 1651508286|1651508286.20042|808|NONE|ENTERQUEUE||07899999999|1 16 1651508303|1651508286.20042|808| Test Extension|CONNECT|17|1651508286.20049|16 17 1651508364|1651508286.20042|808| Test Extension|COMPLETECALLER|17|61|1 18 1651508507|1651508506.20077|808|NONE|DID|02011111111 19 1651508507|1651508506.20077|808|NONE|ENTERQUEUE||07899999999|1 20 1651508525|1651508506.20077|808| Test Extension2|CONNECT|18|1651508507.20082|18 21 1651508586|1651508506.20077|808| Test Extension2|COMPLETECALLER|18|61|1 22 1651522439|1651522439.20112|808|NONE|DID|02011111111 23 1651522439|1651522439.20112|808|NONE|ENTERQUEUE||07899999999|1 24 1651522445|1651522439.20112|808| Test Extension|CONNECT|6|1651522439.20119|5 25 1651522480|1651522439.20112|808| Test Extension|PAUSE|Hold 26 1651522502|1651522439.20112|808| Test Extension|UNPAUSE|Hold 27 1651522502|1651522439.20112|808| Test Extension|UNPAUSE|Hold 28 1651522676|1651522439.20112|808| Test Extension|COMPLETECALLER|6|231|1 29 1651525936|1651525935.20155|808|NONE|DID|02011111111 30 1651525936|1651525935.20155|808|NONE|ENTERQUEUE||07899999999|1 31 1651525942|1651525935.20155|808| Test Extension2|CONNECT|6|1651525936.20160|5 32 1651525951|1651525935.20155|808| Test Extension2|PAUSE|Hold 33 1651525966|1651525935.20155|808| Test Extension2|UNPAUSE|Hold 34 1651525999|1651525935.20155|808| Test Extension2|COMPLETEAGENT|6|57|1 35 1651526783|1651526783.20198|808|NONE|DID|02011111111 36 1651526783|1651526783.20198|808|NONE|ENTERQUEUE||07899999999|1 37 1651526793|1651526783.20198|808| Test Extension|CONNECT|10|1651526783.20205|9 38 1651526850|1651526783.20198|808| Test Extension|PAUSE|Hold 39 1651526856|1651526783.20198|808| Test Extension|PAUSE|Hold 40 1651526857|1651526783.20198|808| Test Extension|UNPAUSE|Hold 41 1651527058|1651526783.20198|808| Test Extension|COMPLETECALLER|10|265|1 -
Full Wallboard - Talk Time split between first extension and transferred call destination extension?I have read this post and suspect this may not be able to be done, but intrigued if anyone has a workaround.
https://community.freepbx.org/t/asternic-call-stats-transfer-statistic/67206/2?msclkid=c8157cfaca5b11ec9f1120432470764c
Thx
D -
Full Wallboard - Talk Time split between first extension and transferred call destination extension?Hi,
We have a client who is asking if we can split the talk time of a single call across multiple agents, in the Agents Widget in the full wallboard.
Eg. if agent 1 picks up a call from the queue, talks to them for 1 minute, then they transfer the call to agent 2, and agent 2 talks to them for 5 minutes.
Currently 6 minutes gets added to agent 1, and agent 2 gets no time added.
Has anyone else found a work around or is this possible?
Thanks
Dave -
Full Wallboard - Agent State - InvalidHi,
We have PBXact 15 installed with FOP2 Whitelable,fullwallboard, idletimer, queuestats, speeddial and CS Stats Pro. When an agent changes their presence in the FOP2 panel, the Agent State changes from Free to Invalid.
database show fop2state
shows the states are correct - Meeting, Do not Disturb etc, but the Agent State displays Invalid.
Im sure im just missing something small, I just havent found it yet.I have tried changing plugins from Queue Pause from Presence box to Presence Box DND Integration (never both at the same time), but both give the same issue. Agent State goes **Invalid **when should be **unavailable **or busy.
I have made the Plugin global but doesnt make any difference.Can anyone help point me in the right direction to fix the Agent State display? I can see the Possible return values for {STATE} are : unavail, free, ringing, busy, and hold. So Invalid must mean it cant read the new value its being changed to?
Thanks
Dave -
Working with Zulu only usersSo it's now working - while reading more through the website I decided to run the command to upgrade FOP2 to a new version. Just in case a newer version had come out since I installed the PBX and FOP2 a few weeks ago.
sudo wget -O - http://download.fop2.com/upgrade_fop2.sh | bash
Looking back through my command history I used this command below to install so I'm pretty sure I was on the latest version.
wget -O - http://download.fop2.com/install_fop2.sh | bash
Anyway, reinstalling the FOP2 system via the upgrade command fixed my issue and Zulu users with no deskphone are showing as online.
Hope this helps someone else. -
FreePBX/PBXact responsive firewall and FOP2 User Access from dynamic IPsThe other method was to separate the FOP2 user login from the PBX admin port by creating a file called /etc/httpd/conf.d/fop2.conf with the code at the bottom of this post. This opens the FOP2 web interface on a separate port (4446) where you can then open it to the world via a custom firewall rule in the pbx. I would prefer to find a way to either open this new FOP2 port 4446 into the responsive firewall so we don't have to open to the world or find a way to use a symlink via the UCP access on 4443.
replace pbx.domain.com with your own pbx name or IP
perhaps this should be a question to fire up on the FreePBX forums but thought I would also ask here. I can see TonyLewis had thought about a way to do this but it hasnt been implimented in the code yet. Im not sure if anyone out there has created their own opensource fix to this. -> > in 2016 Tony wrote, when a phone gets registered only access to SIP ports, phone provisioning and UCP are allowed from that IP. Nothing else. It’s not hookable at this time from.the GUI to allow other services but it’s open source so take a look at the code and add and contribute back. We thought about in user man to set permissions for picking per user or group what other services would be opened for that IP but never got around to adding that feature in firewall.Looking at the current wiki help documents, they show this is still the same - If the traffic is from a known registered endpoint, accept signalling for the protocol the endpoint is using
Additional Check: if a known registered endpoint is requesting access to UCP, access is automatically granted. This will be expanded to allow more fine grained control in the future. Note that there can be up to a 60 second delay between registration of the endpoint and UCP being granted access from that IP address.Any help or ideas would be welcome, thanks
# Copied from ssl.conf by . 220621 # {"certconfig":{"subject":{"CN":"pbx.domain.com"},"issuer":{"C":"US","O":"Let's Encrypt","CN":"R3"}},"sslfop2":{"port":"4446","dir":"\/var\/www\/html\/fop2\/"}}} # LoadModule ssl_module modules/mod_ssl.so SetEnv SSLSETUP true SSLPassPhraseDialog builtin SSLSessionCache shmcb:/var/cache/mod_ssl/scache(512000) SSLSessionCacheTimeout 300 # Not valid in Apache 2.4 # SSLMutex default SSLRandomSeed startup file:/dev/urandom 256 SSLRandomSeed connect builtin SSLCryptoDevice builtin #https://mozilla.github.io/server-side-tls/ssl-config-generator/ SSLProtocol all -SSLv2 -SSLv3 SSLHonorCipherOrder on SSLCipherSuite ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS Listen 4446 <VirtualHost _default_:4446> ServerName pbx.domain.com:4446 LogLevel warn SSLEngine on SSLCertificateFile /etc/httpd/pki/webserver.crt SSLCertificateKeyFile /etc/httpd/pki/webserver.key SSLCertificateChainFile /etc/httpd/pki/ca-bundle.crt DocumentRoot /var/www/html/fop2/ SetEnvIf User-Agent '.*MSIE.*' nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0 Alias /.well-known /var/www/html/.well-known Alias /.freepbx-known /var/www/html/.freepbx-known RewriteEngine on RewriteRule ^/\.(well-known|freepbx-known)/ - [H=text/plain,L] RewriteRule (^\.|/\.) - [F] </VirtualHost> -
FreePBX/PBXact responsive firewall and FOP2 User Access from dynamic IPsI've read quite a few posts and not exactly sure if this has been answered anywhere but here are my thoughts and ideas to get dynamic secure access to the FOP2 user panel when using FreePBX or PBXact.
We know we can open the pbx firewall to static IPs and DNS names via the firewall module, but I would like to allow access to FOP2 from any registered endpoint using the responsive firewall system.
We know that the PBX allows access to the UCP HTTPS port (default port 4443) when an endpoint registers. I am by no means an HTML coder so please bear with me. I tried setting up a symlink in the /var/www/html/admin/modules/ucp/htdocs folder called fop2 and pointed it to /var/www/html/fop2
For the most part this worked. Any remote user who has an endpoint (deskphone or zulu) that successfully registers, has access to FOP2 panel via https://servername:4443/fop2
However some items dont work. Things like the contacts panel shows an error message - You don't have permission to access /fop2/contacts.php on this serverMy question is, does anyone know where in FreePBX/PBXact to add additional ports to open for the responsive endpoints? Or how can I allow permission access to the fop2 folders via the UCP port 4443 using the symlink configuration?
Or if anyone else has achieved this can they please share how they did it?
Thanks in advance -
Working with Zulu only usersTo keep everyone updated, splitting the zulu users away from their standard extensions didnt work well as clicking the button to dial or transfer calls to tried to dial the zulu number of 90XXX. Although im sure we could strip away the 90 via custom context code its still a very messy solution. We have now gone back to using using $ZULU_COMBINE = true;
I have emailed support asking about where to find or set "group channel registration status", as I believe this should solve the "zulu only" users showing as offline.
PS - im now aware this has been created in the "Plugins" area, im unsure how to move it to support, or if I can delete the post altogether to re post in support. -
Working with Zulu only usersSome ideas I have are to have a tick box beside the "Extra Channel" box in the advanced button menu. This tick box allows you to make the extra channel become the channel that the button displays the state of. i.e. Busy, Away, Available, Offline etc.
Or go a bit further and if the extra channel is configured, then the button displays both the main channel and extra channel s half the button each.
When originating a call there could be two icons beside the Dial box. Icon 1 would originate the call to the main channel, and the second icon originates the call to the extra channel.
-
Working with Zulu only usersWe have a number of users who don’t have desk phones and only work with the PBXact softphone Zulu UC.
We have worked out how to set the Originate Channel for those users to be the PJSIP/90XXX channel so they can originate calls to zulu, but we are unsure how to manually change the button to show to state of the softphone extension.I have read tested the
$ZULU_COMBINE = false;
This then created all the 90XXX buttons which allowed us to see the softphone status, so we can then manually create groups of users to make it all look ok, but my question is, is there a way to configure the button to show the state of the softphone PJSIP/90XXX (rather than the state of PJSIP/XXX) when using $ZULU_COMBINE = true;