f8fdc8e00fadf174c3bbd4819bf3583076a30ab0
[ldapsaisie.git] / public_html / includes / addons / LSaddons.asterisk.php
1 <?php
2 /*******************************************************************************
3  * Copyright (C) 2007 Easter-eggs
4  * http://ldapsaisie.labs.libre-entreprise.org
5  *
6  * Author: See AUTHORS file in top-level directory.
7  *
8  * This program is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU General Public License version 2
10  * as published by the Free Software Foundation.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, write to the Free Software
19  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
20
21 ******************************************************************************/
22
23 // Error messages
24
25 // Support
26 LSerror :: defineError('ASTERISK_SUPPORT_01',
27   __("Asterisk Support : The constant %{const} is not defined.")
28 );
29 LSerror :: defineError('ASTERISK_01',
30   __("Asterisk : The function %{function} only work with %{objectName}.")
31 );
32
33  /**
34   * Check support of Asterisk by LdapSaisie
35   * 
36   * @author Benjamin Renard <brenard@easter-eggs.com>
37   *
38   * @retval boolean true if Asterisk is totally supported, false in other case
39   */
40   function LSaddon_asterisk_support() {
41     $retval=true;
42
43     $MUST_DEFINE_CONST= array(
44       'LS_ASTERISK_HASH_PWD_FORMAT',
45     );
46
47     foreach($MUST_DEFINE_CONST as $const) {
48       if ( (!defined($const)) || (constant($const) == "")) {
49         LSerror :: addErrorCode('ASTERISK_SUPPORT_01',$const);
50         $retval=false;
51       }
52     }
53
54     return $retval;
55   }
56
57
58
59  /**
60   * Make asterisk password hash
61   * 
62   * @author Benjamin Renard <brenard@easter-eggs.com>
63   * 
64   * Hash password in MD5 respecting the LSformat LS_ASTERISK_HASH_PWD_FORMAT.
65   *
66   * This function can be used as encode_function of LSattr_ldap :: password.
67   * 
68   * @param[in] $ldapObject LSldapObject The LSldapObject use to build the hashed password
69   * @param[in] $clearPassword string The password in clear text
70   *
71   * @retval string The hashed password
72   */
73   function hashAsteriskPassword($ldapObject,$clearPassword) {
74     if (!is_a($ldapObject,'LSldapObject')) {
75       LSerror :: addErrorCode('ASTERISK_01',array('function' => 'hashAsteriskPassword', 'objectName' => 'LSldapObject'));
76       return;
77     }
78     if (!is_string($clearPassword)) {
79       return;
80     }
81     $ldapObject -> registerOtherValue('clearPassword',$clearPassword);
82     return md5($ldapObject->getFData(LS_ASTERISK_HASH_PWD_FORMAT));
83   }
84   
85