LSaddon :: asterisk : Added addon to support asterisk functions
authorBenjamin Renard <brenard@easter-eggs.com>
Fri, 8 Apr 2011 15:09:15 +0000 (17:09 +0200)
committerBenjamin Renard <brenard@easter-eggs.com>
Fri, 8 Apr 2011 15:09:15 +0000 (17:09 +0200)
public_html/conf/LSaddons/config.LSaddons.asterisk.php [new file with mode: 0644]
public_html/includes/addons/LSaddons.asterisk.php [new file with mode: 0644]

diff --git a/public_html/conf/LSaddons/config.LSaddons.asterisk.php b/public_html/conf/LSaddons/config.LSaddons.asterisk.php
new file mode 100644 (file)
index 0000000..eaf0494
--- /dev/null
@@ -0,0 +1,32 @@
+<?php
+/*******************************************************************************
+ * Copyright (C) 2007 Easter-eggs
+ * http://ldapsaisie.labs.libre-entreprise.org
+ *
+ * Author: See AUTHORS file in top-level directory.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License version 2
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+
+******************************************************************************/
+
+/*
+ ******************************************
+ * Data configuration to support Asterisk *
+ ******************************************
+ */
+
+// Asterisk hashed password LSformat
+define('LS_ASTERISK_HASH_PWD_FORMAT','%{uid}:sip.lsexample.com:%{clearPassword}');
+
+?>
diff --git a/public_html/includes/addons/LSaddons.asterisk.php b/public_html/includes/addons/LSaddons.asterisk.php
new file mode 100644 (file)
index 0000000..f8fdc8e
--- /dev/null
@@ -0,0 +1,85 @@
+<?php
+/*******************************************************************************
+ * Copyright (C) 2007 Easter-eggs
+ * http://ldapsaisie.labs.libre-entreprise.org
+ *
+ * Author: See AUTHORS file in top-level directory.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License version 2
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+
+******************************************************************************/
+
+// Error messages
+
+// Support
+LSerror :: defineError('ASTERISK_SUPPORT_01',
+  __("Asterisk Support : The constant %{const} is not defined.")
+);
+LSerror :: defineError('ASTERISK_01',
+  __("Asterisk : The function %{function} only work with %{objectName}.")
+);
+
+ /**
+  * Check support of Asterisk by LdapSaisie
+  * 
+  * @author Benjamin Renard <brenard@easter-eggs.com>
+  *
+  * @retval boolean true if Asterisk is totally supported, false in other case
+  */
+  function LSaddon_asterisk_support() {
+    $retval=true;
+
+    $MUST_DEFINE_CONST= array(
+      'LS_ASTERISK_HASH_PWD_FORMAT',
+    );
+
+    foreach($MUST_DEFINE_CONST as $const) {
+      if ( (!defined($const)) || (constant($const) == "")) {
+        LSerror :: addErrorCode('ASTERISK_SUPPORT_01',$const);
+        $retval=false;
+      }
+    }
+
+    return $retval;
+  }
+
+
+
+ /**
+  * Make asterisk password hash
+  * 
+  * @author Benjamin Renard <brenard@easter-eggs.com>
+  * 
+  * Hash password in MD5 respecting the LSformat LS_ASTERISK_HASH_PWD_FORMAT.
+  *
+  * This function can be used as encode_function of LSattr_ldap :: password.
+  * 
+  * @param[in] $ldapObject LSldapObject The LSldapObject use to build the hashed password
+  * @param[in] $clearPassword string The password in clear text
+  *
+  * @retval string The hashed password
+  */
+  function hashAsteriskPassword($ldapObject,$clearPassword) {
+    if (!is_a($ldapObject,'LSldapObject')) {
+      LSerror :: addErrorCode('ASTERISK_01',array('function' => 'hashAsteriskPassword', 'objectName' => 'LSldapObject'));
+      return;
+    }
+    if (!is_string($clearPassword)) {
+      return;
+    }
+    $ldapObject -> registerOtherValue('clearPassword',$clearPassword);
+    return md5($ldapObject->getFData(LS_ASTERISK_HASH_PWD_FORMAT));
+  }
+  
+