<packagegui> <name>siproxd</name> <title>siproxd: Settings</title> <version>0.5.9</version> <menu> <name>siproxd</name> <tooltiptext>Modify siproxd uses and settings.</tooltiptext> <section>Services</section> <configfile>siproxd.xml</configfile> <url>/pkg_edit.php?xml=siproxd.xml&id=0</url> </menu> <aftersaveredirect>pkg_edit.php?xml=siproxd.xml&id=0</aftersaveredirect> <tabs> <tab> <text>Settings</text> <url>/pkg_edit.php?xml=siproxd.xml&id=0</url> <active/> </tab> <tab> <text>Users</text> <url>/pkg.php?xml=siproxdusers.xml</url> </tab> </tabs> <additional_files_needed> <item>http://www.pfsense.com/packages/config/siproxdusers.xml</item> </additional_files_needed> <configpath>installedpackages->package->$packagename->configuration->settings</configpath> <fields> <field> <fielddescr>Inbound interface</fielddescr> <fieldname>if_inbound</fieldname> <description>Select the inbound interface.</description> <type>interfaces_selection</type> </field> <field> <fielddescr>Outbound interface</fielddescr> <fieldname>if_outbound</fieldname> <description>Select the outbound interface.</description> <type>interfaces_selection</type> </field> <field> <fielddescr>Listening port</fielddescr> <fieldname>port</fieldname> <description>Enter the port on which to listen for SIP traffic (default 5060). Do not change this unless you know what you're doing.</description> <type>input</type> </field> <field> <fielddescr>Enable RTP proxy</fielddescr> <fieldname>rtpenable</fieldname> <description>Enable or disable the RTP proxy. (default is enabled)</description> <type>select</type> <options> <option> <name>Enable</name> <value>1</value> </option> <option> <name>Disable</name> <value>0</value> </option> </options> </field> <field> <fielddescr>RTP port range (lower)</fielddescr> <fieldname>rtplower</fieldname> <description>Enter the bottom edge of the port range siproxd will allocate for incoming RTP traffic. This range must be one not blocked by the firewall (default 7070).</description> <type>input</type> </field> <field> <fielddescr>RTP port range (upper)</fielddescr> <fieldname>rtpupper</fieldname> <description>Enter the top edge of the port range siproxd will allocate for incoming RTP traffic. This range must be one not blocked by the firewall (default 7079).</description> <type>input</type> </field> <field> <fielddescr>RTP stream timeout</fielddescr> <fieldname>rtptimeout</fieldname> <description>After this number of seconds, an RTP stream is considered dead and proxying it will be stopped (default 300sec).</description> <type>input</type> </field> <field> <fielddescr>Default expiration timeout</fielddescr> <fieldname>defaulttimeout</fieldname> <description>If a REGISTER request dose not contain an Expires header or expires= parameter, this number of seconds will be used and reported back to the UA in the answer.</description> <type>input</type> </field> <field> <fielddescr>Enable proxy authentication</fielddescr> <fieldname>authentication</fieldname> <description>If this is checked, clients will be forced to authenticate themselves at the proxy (for registration only).</description> <type>checkbox</type> </field> <field> <fielddescr>Outbound proxy hostname</fielddescr> <fieldname>outboundproxyhost</fieldname> <type>input</type> <description>Enter the hostname of an outbound proxy to send all traffic to. This is only useful if you have multiple masquerading firewalls to cross.</description> </field> <field> <fielddescr>Outbound proxy port</fielddescr> <fieldname>outboundproxyport</fieldname> <type>input</type> <description>Enter the port of the outbound proxy to send all traffic to. This is only useful if you have multiple masquerading firewalls to cross.</description> </field> </fields> <custom_php_install_command> mwexec("pkg_add -rv libosip2"); mwexec("rm /usr/local/etc/rc.d/siproxd.sh"); $fout = fopen("/usr/local/etc/rc.d/siproxd.sh","w"); fwrite($fout, "#!/bin/sh\n\n/usr/local/sbin/siproxd\n"); fclose($fout); </custom_php_install_command> <custom_php_resync_config_command> sync_package_sipproxd(); </custom_php_resync_config_command> <custom_add_php_command> function sync_package_sipproxd() { conf_mount_rw(); config_lock(); global $config; if ($_POST == "") $_POST = $config['installedpackages']['siproxd']['config']; $fout = fopen("/usr/local/etc/siproxd.conf","w"); fwrite($fout, "# This file was automatically generated by the pfSense\n# package management system.\n\n"); if($_POST['if_inbound'] != "") { fwrite($fout, "if_inbound = " . convert_friendly_interface_to_real_interface_name($_POST['if_inbound']) . "\n"); } if($_POST['if_outbound'] != "") { fwrite($fout, "if_outbound = " . convert_friendly_interface_to_real_interface_name($_POST['if_outbound']) . "\n\n"); } if($_POST['port'] != "") { fwrite($fout, "sip_listen_port = " . $_POST['port'] . "\n\n"); } else { fwrite($fout, "sip_listen_port = 5060\n\n"); } fwrite($fout, "daemonize = 1\n\nsilence_log = 0\n\nlog_calls = 1\n\nuser = nobody\nchrootjail = /usr/local/siproxd/\n\nregistration_file = siproxd_registrations\n\npid_file = siproxd.pid\n\n"); if($_POST['rtpenable'] != "") { fwrite($fout, "rtp_proxy_enable = " . $_POST['rtpenable'] . "\n\n"); } else { fwrite($fout, "rtp_proxy_enable = 1\n\n"); } if($_POST['rtplower'] != "") { if($_POST['rtpupper'] != "") { fwrite($fout, "rtp_port_low = " . $_POST['rtplower'] . "\n"); fwrite($fout, "rtp_port_high = " . $_POST['rtpupper'] . "\n\n"); } } if($_POST['rtptimeout'] != "") { fwrite($fout, "rtp_timeout = " . $_POST['rtptimeout'] . "\n\n"); } else { fwrite($fout, "rtp_timeout = 300\n\n"); } if($_POST['defaulttimeout'] != "") { fwrite($fout, "default_expires = " . $_POST['defaulttimeout'] . "\n\n"); } else { fwrite($fout, "default_expires = 600\n\n"); } if($_POST['authentication']) { fwrite($fout, "proxy_auth_realm = Authentication_Realm\nproxy_auth_pwfile = /usr/local/etc/siproxd_passwd.cfg\n\n"); } fwrite($fout, "debug_level = 0x00000000\n\n"); if($_POST['outboundproxyhost'] != "") { if($_POST['outboundproxyport'] != "") { fwrite($fout, "outbound_proxy_host = " . $_POST['outboundproxyhost'] . "\n"); fwrite($fout, "outbound_proxy_port = " . $_POST['outboundproxyport'] . "\n"); } } fclose($fout); mwexec("killall siproxd"); mwexec("/usr/local/etc/rc.d/siproxd.sh"); conf_mount_ro(); config_unlock(); } sync_package_sipproxd(); </custom_add_php_command> </packagegui>