aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormcrane <mctch@yahoo.com>2009-07-04 04:10:55 -0600
committermcrane <mctch@yahoo.com>2009-07-04 04:27:38 -0600
commit578fda76bb2566d8cf9deeaee3569a35da6ba63e (patch)
treeb23be34bb00cef283f0578888a70f0c701fd1c54
parent641bf230fc57b77feaadeca70da5b3511081e84a (diff)
downloadpfsense-packages-578fda76bb2566d8cf9deeaee3569a35da6ba63e.tar.gz
pfsense-packages-578fda76bb2566d8cf9deeaee3569a35da6ba63e.tar.bz2
pfsense-packages-578fda76bb2566d8cf9deeaee3569a35da6ba63e.zip
add sip-force-contact to advanced extension options, add ability to disable an extension without removing it
-rw-r--r--config/freeswitch/freeswitch.inc122
-rw-r--r--config/freeswitch/freeswitch_extensions.tmp7
-rw-r--r--config/freeswitch/freeswitch_extensions_edit.tmp57
3 files changed, 122 insertions, 64 deletions
diff --git a/config/freeswitch/freeswitch.inc b/config/freeswitch/freeswitch.inc
index 0a3929eb..fcba145e 100644
--- a/config/freeswitch/freeswitch.inc
+++ b/config/freeswitch/freeswitch.inc
@@ -562,66 +562,70 @@ function sync_package_freeswitch_extensions()
unlink_if_exists("/usr/local/freeswitch/conf/directory/default/9*.xml");
foreach($config['installedpackages']['freeswitchextensions']['config'] as $rowhelper) {
+ if ($rowhelper['enabled'] != "false") {
+ $fout = fopen("/usr/local/freeswitch/conf/directory/default/".$rowhelper['extension'].".xml","w");
- $fout = fopen("/usr/local/freeswitch/conf/directory/default/".$rowhelper['extension'].".xml","w");
-
- $tmpxml = "<include>\n";
- if (strlen($rowhelper['cidr']) == 0) {
- $tmpxml .= " <user id=\"" . $rowhelper['extension'] . "\" mailbox=\"" . $rowhelper['mailbox'] . "\">\n";
- }
- else {
- $tmpxml .= " <user id=\"" . $rowhelper['extension'] . "\" mailbox=\"" . $rowhelper['mailbox'] . "\" cidr=\"" . $rowhelper['cidr'] . "\">\n";
- }
- $tmpxml .= " <params>\n";
- $tmpxml .= " <param name=\"password\" value=\"" . $rowhelper['password'] . "\"/>\n";
- $tmpxml .= " <param name=\"vm-password\" value=\"" . $rowhelper['vm-password'] . "\"/>\n";
- if (strlen($rowhelper['vm-mailto']) > 0) {
- $tmpxml .= " <param name=\"vm-email-all-messages\" value=\"true\"/>\n";
-
- switch ($rowhelper['vm-attach-file']) {
- case "true":
- $tmpxml .= " <param name=\"vm-attach-file\" value=\"true\"/>\n";
- break;
- case "false":
- $tmpxml .= " <param name=\"vm-attach-file\" value=\"false\"/>\n";
- break;
- default:
- $tmpxml .= " <param name=\"vm-attach-file\" value=\"true\"/>\n";
- }
- switch ($rowhelper['vm-keep-local-after-email']) {
- case "true":
- $tmpxml .= " <param name=\"vm-keep-local-after-email\" value=\"true\"/>\n";
- break;
- case "false":
- $tmpxml .= " <param name=\"vm-keep-local-after-email\" value=\"false\"/>\n";
- break;
- default:
- $tmpxml .= " <param name=\"vm-keep-local-after-email\" value=\"true\"/>\n";
- }
- $tmpxml .= " <param name=\"vm-mailto\" value=\"" . $rowhelper['vm-mailto'] . "\"/>\n";
- }
- if (strlen($rowhelper['auth-acl']) > 0) {
- $tmpxml .= " <param name=\"auth-acl\" value=\"" . $rowhelper['auth-acl'] . "\"/>\n";
- }
- $tmpxml .= " </params>\n";
- $tmpxml .= " <variables>\n";
- $tmpxml .= " <variable name=\"toll_allow\" value=\"domestic,international,local\"/>\n";
- $tmpxml .= " <variable name=\"accountcode\" value=\"" . $rowhelper['accountcode'] . "\"/>\n";
- $tmpxml .= " <variable name=\"user_context\" value=\"" . $rowhelper['user_context'] . "\"/>\n";
- if (strlen($rowhelper['effective_caller_id_number']) > 0) {
- $tmpxml .= " <variable name=\"effective_caller_id_name\" value=\"" . $rowhelper['effective_caller_id_name'] . "\"/>\n";
- $tmpxml .= " <variable name=\"effective_caller_id_number\" value=\"" . $rowhelper['effective_caller_id_number'] . "\"/>\n";
- }
- if (strlen($rowhelper['outbound_caller_id_number']) > 0) {
- $tmpxml .= " <variable name=\"outbound_caller_id_name\" value=\"" . $rowhelper['outbound_caller_id_name'] . "\"/>\n";
- $tmpxml .= " <variable name=\"outbound_caller_id_number\" value=\"" . $rowhelper['outbound_caller_id_number'] . "\"/>\n";
- }
- $tmpxml .= " </variables>\n";
- $tmpxml .= " </user>\n";
- $tmpxml .= "</include>\n";
- fwrite($fout, $tmpxml);
- unset($tmpxml);
- fclose($fout);
+ $tmpxml = "<include>\n";
+ if (strlen($rowhelper['cidr']) == 0) {
+ $tmpxml .= " <user id=\"" . $rowhelper['extension'] . "\" mailbox=\"" . $rowhelper['mailbox'] . "\">\n";
+ }
+ else {
+ $tmpxml .= " <user id=\"" . $rowhelper['extension'] . "\" mailbox=\"" . $rowhelper['mailbox'] . "\" cidr=\"" . $rowhelper['cidr'] . "\">\n";
+ }
+ $tmpxml .= " <params>\n";
+ $tmpxml .= " <param name=\"password\" value=\"" . $rowhelper['password'] . "\"/>\n";
+ $tmpxml .= " <param name=\"vm-password\" value=\"" . $rowhelper['vm-password'] . "\"/>\n";
+ if (strlen($rowhelper['vm-mailto']) > 0) {
+ $tmpxml .= " <param name=\"vm-email-all-messages\" value=\"true\"/>\n";
+
+ switch ($rowhelper['vm-attach-file']) {
+ case "true":
+ $tmpxml .= " <param name=\"vm-attach-file\" value=\"true\"/>\n";
+ break;
+ case "false":
+ $tmpxml .= " <param name=\"vm-attach-file\" value=\"false\"/>\n";
+ break;
+ default:
+ $tmpxml .= " <param name=\"vm-attach-file\" value=\"true\"/>\n";
+ }
+ switch ($rowhelper['vm-keep-local-after-email']) {
+ case "true":
+ $tmpxml .= " <param name=\"vm-keep-local-after-email\" value=\"true\"/>\n";
+ break;
+ case "false":
+ $tmpxml .= " <param name=\"vm-keep-local-after-email\" value=\"false\"/>\n";
+ break;
+ default:
+ $tmpxml .= " <param name=\"vm-keep-local-after-email\" value=\"true\"/>\n";
+ }
+ $tmpxml .= " <param name=\"vm-mailto\" value=\"" . $rowhelper['vm-mailto'] . "\"/>\n";
+ }
+ if (strlen($rowhelper['auth-acl']) > 0) {
+ $tmpxml .= " <param name=\"auth-acl\" value=\"" . $rowhelper['auth-acl'] . "\"/>\n";
+ }
+ $tmpxml .= " </params>\n";
+ $tmpxml .= " <variables>\n";
+ $tmpxml .= " <variable name=\"toll_allow\" value=\"domestic,international,local\"/>\n";
+ $tmpxml .= " <variable name=\"accountcode\" value=\"" . $rowhelper['accountcode'] . "\"/>\n";
+ $tmpxml .= " <variable name=\"user_context\" value=\"" . $rowhelper['user_context'] . "\"/>\n";
+ if (strlen($rowhelper['effective_caller_id_number']) > 0) {
+ $tmpxml .= " <variable name=\"effective_caller_id_name\" value=\"" . $rowhelper['effective_caller_id_name'] . "\"/>\n";
+ $tmpxml .= " <variable name=\"effective_caller_id_number\" value=\"" . $rowhelper['effective_caller_id_number'] . "\"/>\n";
+ }
+ if (strlen($rowhelper['outbound_caller_id_number']) > 0) {
+ $tmpxml .= " <variable name=\"outbound_caller_id_name\" value=\"" . $rowhelper['outbound_caller_id_name'] . "\"/>\n";
+ $tmpxml .= " <variable name=\"outbound_caller_id_number\" value=\"" . $rowhelper['outbound_caller_id_number'] . "\"/>\n";
+ }
+ if (strlen($rowhelper['sip-force-contact']) > 0) {
+ $tmpxml .= " <variable name=\"sip-force-contact\" value=\"" . $rowhelper['sip-force-contact'] . "\"/>\n";
+ }
+ $tmpxml .= " </variables>\n";
+ $tmpxml .= " </user>\n";
+ $tmpxml .= "</include>\n";
+ fwrite($fout, $tmpxml);
+ unset($tmpxml);
+ fclose($fout);
+ }
}
conf_mount_ro();
diff --git a/config/freeswitch/freeswitch_extensions.tmp b/config/freeswitch/freeswitch_extensions.tmp
index 8ef415fd..b1db2702 100644
--- a/config/freeswitch/freeswitch_extensions.tmp
+++ b/config/freeswitch/freeswitch_extensions.tmp
@@ -38,8 +38,11 @@ $a_extensions = &$config['installedpackages']['freeswitchextensions']['confi
if ($_GET['act'] == "del") {
if ($_GET['type'] == 'extensions') {
- if ($a_extensions[$_GET['id']]) {
- unlink("/usr/local/freeswitch/conf/directory/default/".$_GET['extension'].".xml");
+ if ($a_extensions[$_GET['id']]) {
+ $tmp_file_name = "/usr/local/freeswitch/conf/directory/default/".$_GET['extension'].".xml";
+ if (file_exists($tmp_file_name)) {
+ unlink($tmp_file_name);
+ }
unset($a_extensions[$_GET['id']]);
write_config();
header("Location: freeswitch_extensions.php");
diff --git a/config/freeswitch/freeswitch_extensions_edit.tmp b/config/freeswitch/freeswitch_extensions_edit.tmp
index 54b46d7c..8e4a72dc 100644
--- a/config/freeswitch/freeswitch_extensions_edit.tmp
+++ b/config/freeswitch/freeswitch_extensions_edit.tmp
@@ -60,6 +60,8 @@ if (isset($id) && $a_extensions[$id]) {
$pconfig['callgroup'] = $a_extensions[$id]['callgroup'];
$pconfig['auth-acl'] = $a_extensions[$id]['auth-acl'];
$pconfig['cidr'] = $a_extensions[$id]['cidr'];
+ $pconfig['sip-force-contact'] = $a_extensions[$id]['sip-force-contact'];
+ $pconfig['enabled'] = $a_extensions[$id]['enabled'];
$pconfig['description'] = $a_extensions[$id]['description'];
}
@@ -94,8 +96,9 @@ if ($_POST) {
$ent['user_context'] = $_POST['user_context'];
$ent['callgroup'] = $_POST['callgroup'];
$ent['auth-acl'] = $_POST['auth-acl'];
- $ent['cidr'] = $_POST['cidr'];
-
+ $ent['cidr'] = $_POST['cidr'];
+ $ent['sip-force-contact'] = $_POST['sip-force-contact'];
+ $ent['enabled'] = $_POST['enabled'];
$ent['description'] = $_POST['description'];
if (isset($id) && $a_extensions[$id]) {
@@ -325,10 +328,58 @@ display_top_tabs(build_menu());
<br><span class="vexpl">Enter the outbound caller id number here.<br></span>
</td>
</tr>
+ <tr>
+ <td width="22%" valign="top" class="vncell">SIP-Force-Contact</td>
+ <td width="78%" class="vtable">
+ <?php
+ echo " <select name='sip-force-contact' class='formfld'>\n";
+ echo " <option></option>\n";
+ switch (htmlspecialchars($pconfig['sip-force-contact'])) {
+ case "NDLB-connectile-dysfunction":
+ echo " <option value='NDLB-connectile-dysfunction' selected='yes'>Rewrite contact IP and port</option>\n";
+ echo " <option value='NDLB-tls-connectile-dysfunction'>Rewrite contact port</option>\n";
+ break;
+ case "NDLB-tls-connectile-dysfunction":
+ echo " <option value='NDLB-connectile-dysfunction'>Rewrite contact IP and port</option>\n";
+ echo " <option value='NDLB-tls-connectile-dysfunction' selected='yes'>Rewrite contact port</option>\n";
+ default:
+ echo " <option value='NDLB-connectile-dysfunction'>Rewrite contact IP and port</option>\n";
+ echo " <option value='NDLB-tls-connectile-dysfunction'>Rewrite contact port</option>\n";
+ }
+ echo " </select>\n";
+ ?>
+ <br />
+ Choose sip-force-contact can be used to NDLB-connectile-dysfunction rewrites contact IP and port, <br />and NDLB-tls-connectile-dysfunction rewrites the contact port.<br />
+ </td>
+ </tr>
</table>
</div>
- <table width="100%" border="0" cellpadding="6" cellspacing="0">
+ <table width="100%" border="0" cellpadding="6" cellspacing="0">
+ <tr>
+ <td width="22%" valign="top" class="vncellreq">Enabled</td>
+ <td width="78%" class="vtable">
+ <?php
+ echo " <select name='enabled' class='formfld'>\n";
+ echo " <option></option>\n";
+ switch (htmlspecialchars($pconfig['enabled'])) {
+ case "true":
+ echo " <option value='true' selected='yes'>true</option>\n";
+ echo " <option value='false'>false</option>\n";
+ break;
+ case "false":
+ echo " <option value='true'>true</option>\n";
+ echo " <option value='false' selected='yes'>false</option>\n";
+
+ break;
+ default:
+ echo " <option value='true' selected='yes'>true</option>\n";
+ echo " <option value='false'>false</option>\n";
+ }
+ echo " </select>\n";
+ ?>
+ </td>
+ </tr>
<tr>
<td width="25%" valign="top" class="vncellreq">Extension Description</td>
<td width="75%" class="vtable">