Documentation


Frequently Asked Questions

  • Can I run FOP and FOP2 at the same time?
    • Yes. But both applications listen to port 4445 by default. In order to run both on the same server, you will have to configure the listen port on one of them to something else. We recommend to change FOP 1 listen port to 4444 and let FOP2 use port 4445. You can change FOP 1 listen port by editing op_server.cfg.
  • Is there a way to display only one line per extension?
    • Yes. You have to edit presence.js on the client and set the variable showLines to 1. Take into account that if an extension receives more than one call at a time, you might end up with a busy button with line 1 inactive because the action happens on line 2. It is not recommended to not show line 2.
  • How do I change the language?
    • Read the docs! You have to edit fop2.cfg and set the language parameter on the server. On the client you need to include the correct .js language file in index.html, and finally set the language for the visual directory in config.php. Also you might need to translate or put whatever you want in the presence.js file.
  • Does FOP2 show parked calls?
    • Parking is supported since version 2.10. It will work by default with FreePBX, if you do not use FreePBX please read the README file for instructions on setting it up.
  • What are the differences between FOP 1 and FOP 2?
    • Several. In FOP 1 you use drag and drop to perform actions. In FOP 2 you use only clicks, so its easier to control with touchscreens. FOP 1 has limited screen space, so the number of buttons to display depends on the size you choose for the buttons; this method imposes a practical limit of about 140 buttons per screen. In the other hand, FOP 2 does not use flash for the display but regular html, so there is no limit on the number of buttons to display, you will be able to scroll down to show any number of buttons, and with the Filter option it is easy to look for a particular extension if you have dozens of buttons. FOP 1 uses flash and a custom style configuration for changing the aspect, FOP 2 uses html and css so it is easier to modify the style. FOP 1 supports click 2 dial but you need to code in javascript/php in order to use the feature, while FOP 2 includes a Dial box by default that lets you type any number, sip contact or .tel domain to perform dialing. FOP 1 does not know about users, if you know the security code you can transfer any call to any place, while in FOP 2 there is a user authentication system with fine grained permissions. This is just a basic list of differences, but you might get the idea. Your best bet is to try it out and experience it yourself.
  • What permissions are needed in asterisk's manager.conf for the FOP 2 user?
    • You need at least system,call,command,agent,user,originate in asterisk's manager.conf file for the FOP user. In the latest tribox you might also need the "hud" permission or just use "all"
  • I have reset FOP1 to run on port 4444 but extensions in FOP1 flash red
    • Be sure to resetart FOP1 so the config change is applied. (Easiest way is to reboot, harder way is to selectively kill or restart FOP1 and be sure to start FOP2). Verify that FOP1 and FOP2 are running under different ports. Use netstat -an to verify 4444 and 4445 are listening. Also, PIAF installations have tcp port 4445 open so 4444 needs to be open as well. Use webmin to open port 4445.
  • How do I track FreePBX DND state in FOP 2?
    • Since version 2.10, the included extensions_override_freepbx.conf file includes the needed changes. Just copy the file to your /etc/asterisk. It works by modifying FreePBX dnd macros slightly, below you will find a sample, with the added lines hightlighted:

      [app-dnd-off]
      include => app-dnd-off-custom
      exten => *79,1,Answer
      exten => *79,n,Wait(1)
      exten => *79,n,Macro(user-callerid,)
      exten => *79,n,dbDel(DND/${AMPUSER})
      exten => *79,n,Set(CHAN=${CUT(CHANNEL,-,1)})
      exten => *79,n,dbDel(fop2state/${CHAN})
      exten => *79,n,UserEvent(FOP2ASTDB|Family: fop2state|Channel: ${CHAN}|Value: )
      exten => *79,n,Playback(do-not-disturb&de-activated)
      exten => *79,n,Macro(hangupcall,)
      
      ; end of [app-dnd-off]
      
      
      [app-dnd-on]
      include=> app-dnd-on-custom
      exten=> *78,1,Answer
      exten=> *78,n,Wait(1)
      exten=> *78,n,Macro(user-callerid,)
      exten=> *78,n,Set(DB(DND/${AMPUSER})=YES)
      exten=> *78,n,Set(CHAN=${CUT(CHANNEL,-,1)})
      exten=> *78,n,Set(DB(fop2state/${CHAN})=Do not Disturb)
      exten=> *78,n,UserEvent(FOP2ASTDB|Family: fop2state|Channel: ${CHAN}|Value: Do not Disturb)
      exten=> *78,n,Playback(do-not-disturb&activated)
      exten=> *78,n,Macro(hangupcall,)
      

  • Can I popup an arbitrary URL when a call comes in?
    • Yes. When your phone rings you will get a call notification. Via ajax the notification will trigger a request to the server to the script checkdir.php. You can modify that script to insert your own javascript code. At the very top there is a function named custom_popup() that will get 4 parameters: caller id number, caller id name or phonebook name,queue name if any and extension number. You can uncomment the sample function to fire a popup to google.com searching for the contact name. Eg:
      function custom_popup($clidnum,$name,$fromqueue,$exten) {
         // Here you can fire your own popups or do whatever you want
         // Uncomment this block to fire a popup to google.com
         
         header("Content-type: text/javascript");
         echo "window.open('http://www.google.com/search?q=$name')";
         
      }
      
      ..
      
  • When I try to run fop2_server it does not do anything at all.
    • fop2_server requires /tmp directory to allow execution. Some systems mount the /tmp directory with the noexec option for security reasons. In that case you need to create a special temp directory for FOP2 and modify the init script to export an environment variable so it uses that directory. So, you can create a temp directory:
      mkdir /usr/local/fop2/temp
      

      And then modify the init script by adding the highlighted line:
      case "$1" in
        start)
              echo -n "Starting Flash Operator Panel 2: "
              export PAR_GLOBAL_TMPDIR=/usr/local/fop2/temp
              daemon $DAEMON $OPTIONS
      
      
  • When I open the phonebook I get "Unknown field: picture". What is wrong?
    • You need to set up a mysql table and edit config.php to access it and enable the phonebook. Please follow the link for instructions: Configuring the visual phonebook.
  • Does the phonebook work with PHP 4?
    • Not currently. We are working on making it php4 compatible. If you want to test drive the php4 version contact us as we can provide you with some replacement php files for you to try.
  • I try to login and it rejects me every time
    • If you use the automatic config for freepbx, look at voicemail.conf file and be sure to use an extension and password that is defined there. Next versions of autoconfigure scripts will use freepbx database instead of voicemail users. If you modified fop2.cfg to use manual config, be absolutely sure that you comment the #exec line, if you fail to do so, the automatic config will kick in anyaways and it will override any manual config you do, and check too that you have defined a buttonfile and that the buttonfile exists and contains at least some buttons.
  • When I try to login after entering my credentials it waits forever and times out
    • If you use international characters in your configs, be sure to save the button config file as utf-8. That should take care of the problem.
  • Can I use international characters as button labels?
    • Yes, but be sure to save the buttonfile as utf-8. If you fail to do so you might have troubles login in.
  • I have a multi tenant environment, how does licensing work?
    • FOP2 has a non nonsense license. You need only one license to unlock the full fop2 potential. That means that you can monitor multiple asterisk servers and define multiple contexts with multiple users, with no restrictions whatsoever by paying just $40. The only thing left out would be to modify the phonebook and make it context aware. You can buy support so we can make that modification for you, or you can do that yourself as php source is not encrypted.
  • I run asterisk on a virtual server (openvz or virtuozo) and I cannot register FOP2. What should I do?
    • You need to configure a dummy veth device with the following command:
      vzctl set $VEID --netif_add eth0 --save
      
      Using this you will have a veth0 device with a MAC address that can be used for registering FOP2 and any other software requiring a proper MAC.