-<?php
-require_once('config.php');
-require_once('lib/common_functions.php');
-require_once('lib/db_functions.php');
-
-
-function get_destination ( $alias_username, $alias_domain )
-{
- global $config;
-
- $aliases = array();
-
- // Terminate early on missing param.
- if (!( $alias_username && $alias_domain)) return $aliases;
-
- $query = sprintf("SELECT CONCAT(username, '@', domain ) AS destination, CONCAT( alias_username, '@', alias_domain) AS alias FROM %s"
- . " WHERE alias_username = '%s' AND alias_domain = '%s'",
- $config['kamailio_alias_table'],
- sql_clean($alias_username),
- sql_clean($alias_domain)
- );
-
- $result = sql_dbquery( $config['kamailio_db'], $query);
- // If result is empty, there was either an SQL error, or simply no results.
- // At this point, no error checking is performed, instead the empty array is returned.
- if ( ! $result ) return $aliases;
-
- while ( $row = mysql_fetch_assoc( $result ) )
- {
- array_push( $aliases, array( 'destination' => $row['destination'], 'alias' => $row['alias'] ) );
- }
- return $aliases;
-}
-
-function get_aliases ( $dest_username, $dest_domain )
-{
- global $config;
-
- $aliases = array();
- $query = "";
- if (( $dest_username == null ) && ( $dest_domain == null) )
- {
- $query = sprintf("SELECT CONCAT(username, '@', domain ) AS destination, CONCAT( alias_username, '@', alias_domain) AS alias FROM %s" ,
- $config['kamailio_alias_table']);
- }
- else
- {
- $query = sprintf("SELECT '%s' AS destination, CONCAT( alias_username, '@', alias_domain) AS alias FROM %s"
- . " WHERE username = '%s' AND domain = '%s'",
- sql_clean($dest_username. '@' . $dest_domain),
- $config['kamailio_alias_table'],
- sql_clean($dest_username),
- sql_clean($dest_domain));
- }
- $result = sql_dbquery( $config['kamailio_db'], $query);
- // If result is empty, there was either an SQL error, or simply no results.
- // At this point, no error checking is performed, instead the empty array is returned.
- if ( ! $result ) return $aliases;
-
- while ( $row = mysql_fetch_assoc( $result ) )
- {
- array_push( $aliases, array( 'destination' => $row['destination'], 'alias' => $row['alias'] ) );
- }
- return $aliases;
-}
-
-function get_e164_alias( $dest_username, $dest_domain )
-{
- global $config;
- $cur_aliases = get_aliases( $dest_username, $dest_domain );
- foreach ( $cur_aliases as $testalias )
- {
- list( $tau, $foo ) = split_sipaddress( $testalias['alias'] );
- if ( verify_e164 ( $tau ) ) return $testalias;
- }
- return false;
-
-}
-function alias_exists( $alias_username, $alias_domain )
-{
- global $config;
- $query = sprintf("SELECT COUNT(*) AS num FROM %s WHERE alias_username = '%s' AND alias_domain = '%s'",
- $config['kamailio_alias_table'],
- sql_clean($alias_username), sql_clean($alias_domain));
- $result = sql_dbquery($config['kamailio_db'], $query);
-
- if ( !$result ) return true; // This is an error. Better to fail claiming alias exists...
- $row = mysql_fetch_row($result);
- if ( !$row ) return true; // This is an error. Better to fail claiming alias exists...
- $num_r = $row[0];
- if ( $num_r == 1 )
- {
- $query = sprintf("SELECT CONCAT(username, '@', domain ) AS destination FROM %s WHERE alias_username = '%s' AND alias_domain = '%s'",
- $config['kamailio_alias_table'],
- sql_clean($alias_username), sql_clean($alias_domain));
- $result = sql_dbquery($config['kamailio_db'], $query);
- $row = mysql_fetch_row($result);
- if ( is_string( $row[0] ) ) return $row[0];
- return true; // Failure mode..
- }
-
- return false;
-}
-
-function add_alias( $alias_username, $alias_domain, $dest_username, $dest_domain )
-{
- global $config;
- // The following will, in normal cases, lead to a double-test, and double the number of queries...
- // Defensive comment: better safe than sorry :P
- if ( alias_exists( $alias_username, $alias_domain ) )
- return false;
-
- $query = sprintf("INSERT INTO %s ( alias_username, alias_domain, username, domain) VALUES ('%s','%s','%s','%s')",
- $config['kamailio_alias_table'],
- sql_clean($alias_username), sql_clean($alias_domain),
- sql_clean($dest_username), sql_clean($dest_domain));
-
- return sql_dbexec( $config['kamailio_db'], $query);
-
-}
-
-function remove_alias ( $alias_username, $alias_domain )
-{
- global $config;
- if (! alias_exists ( $alias_username, $alias_domain ) ) return false;
- $query = sprintf ("DELETE FROM %s WHERE alias_username = '%s' AND alias_domain = '%s'",
- $config['kamailio_alias_table'],
- sql_clean( $alias_username ),
- sql_clean( $alias_domain ));
- return sql_dbexec( $config['kamailio_db'], $query);
-
-}
-
-?>