if ( is_provision_user( $username, $domain ) )
{
// Update provisioning password
- if (! update_provision_pw( $username, $domain, $password ) )
+ if ( update_provision_pw( $username, $domain, $password ) < 0 )
{
print json_encode( array( 'response' => 'failed', 'cause' => 'dbfail', 'detail' => 'Failed to update provisioning password' ) );
break;
if ( is_kamailio_subscriber( $username, $domain ) )
{
// Update kamailio password
- if (! update_kamailio_pw( $username, $domain, $password ) )
+ if ( update_kamailio_pw( $username, $domain, $password ) < 0 )
{
print json_encode( array( 'response' => 'failed', 'cause' => 'dbfail', 'detail' => 'Failed to update kamailio password' ) );
break;
print json_encode( array( 'response' => 'invalid', 'cause' => 'parameters' ) );
break;
+
+ case "/change_email":
+ /*
+ Required parameters should be...
+ ( username & domain ) | user
+ email
+ */
+ if ( array_key_exists('email', $_GET) &&
+ ( ( array_key_exists( 'username', $_GET) && array_key_exists( 'domain', $_GET ) )
+ || array_key_exists('user', $_GET) ))
+
+ {
+ $username = "";
+ $domain = "";
+ if ( array_key_exists('username', $_GET) )
+ {
+ $username = $_GET['username'];
+ $domain = $_GET['domain'];
+ }
+ else
+ {
+ $user = split_sipaddress($_GET['user']);
+ if ( !$user )
+ {
+ print json_encode ( array( 'response' => 'failed', 'cause' => 'invalid', 'detail' => 'Invalid SIP address') );
+ break;
+ }
+ list ( $username, $domain ) = $user;
+ }
+ $email = $_GET['email'];
+
+ // Check for user in kamailio
+ if ( is_kamailio_subscriber( $username, $domain ) )
+ {
+ // Update kamailio email
+ if ( update_kamailio_email( $username, $domain, $email ) < 0 )
+ {
+ print json_encode( array( 'response' => 'failed', 'cause' => 'dbfail', 'detail' => 'Failed to update kamailio email' ) );
+ break;
+ }
+ }
+ print json_encode( array ( 'response' => 'ok', 'user' => $username.'@'.$domain, 'email' => $email));
+ break;
+ }
+ else
+ print json_encode( array( 'response' => 'invalid', 'cause' => 'parameters' ) );
+ break;
+
+
+
+
+
+
+
case "/update":
/*
Required parameters should be...
}
list ( $username, $domain ) = $user;
}
- print json_encode ( array( 'response' => 'failed', 'cause' => 'notimplemented', 'detail' => 'Requested feature valid, but not implemented' ) );
+ if ( ! is_provision_user ( $username, $domain ) )
+ {
+ print json_encode( array ( 'response' => 'failed', 'cause' => 'nonexistant', 'detail' => '' . $username . '@' . $domain . ' does not exist.'));
+ break;
+ }
+ $updated = array();
+ $failed = array();
+ $error = 1;
+ $result_text = "";
+ $params = array('displayname', 'dialplan', 'linetext', 'registrar', 'r_port', 'proxy', 'p_port');
+ foreach ( $params as $p )
+ {
+ if ( array_key_exists($p, $_GET ) )
+ {
+ $data = $_GET[$p];
+ $t = update_provision_data($p, $username, $domain, $data);
+ if ( $t != true )
+ {
+ $error = $t;
+ array_push($failed, $p);
+ }
+ else
+ {
+ array_push( $updated, $p);
+ }
+ }
+ }
+ $res = array();
+ if ( ( $error == 1 ) || ( $error == 0 ) )
+ {
+ $res['response'] = 'ok';
+ $res['skipped'] = $failed;
+ }
+ else if ( $error == -1 )
+ {
+ $res['response'] = 'failed';
+ $res['cause'] = 'param';
+ $res['detail'] = 'Invalid parameters';
+ $res['failed'] = $failed;
+ }
+ else if ( $error == -2 )
+ {
+ $res['response'] = 'failed';
+ $res['cause'] = 'dbfail';
+ $res['detail'] = 'Database failure';
+ $res['failed'] = $failed;
+ }
+ else
+ $res['response'] = 'error'; // Wait, what?
+
+ $res['updated'] = $updated;
+
+ print json_encode ( $res );
}
else
print json_encode( array( 'response' => 'invalid', 'cause' => 'parameters' ) );