[Astpp-commit] SF.net SVN: astpp:[2226] trunk/modules/ASTPP/lib/ASTPP.pm
Brought to you by:
darrenkw
|
From: <dar...@us...> - 2009-01-31 23:22:10
|
Revision: 2226
http://astpp.svn.sourceforge.net/astpp/?rev=2226&view=rev
Author: darrenkw
Date: 2009-01-31 22:07:39 +0000 (Sat, 31 Jan 2009)
Log Message:
-----------
Added support for Freeswitch clients to authenticate by ip address as stored in ASTPP.
Modified Paths:
--------------
trunk/modules/ASTPP/lib/ASTPP.pm
Modified: trunk/modules/ASTPP/lib/ASTPP.pm
===================================================================
--- trunk/modules/ASTPP/lib/ASTPP.pm 2009-01-31 19:57:58 UTC (rev 2225)
+++ trunk/modules/ASTPP/lib/ASTPP.pm 2009-01-31 22:07:39 UTC (rev 2226)
@@ -90,9 +90,11 @@
{
my ($self, %arg) = @_;
my ($sql,$tmp);
+ $arg{ip_address} = $arg{ip} if $arg{ip}; #Freeswitch passes the ip in a different format.
$tmp = "SELECT * FROM ip_map WHERE ip = " . $self->{_astpp_db}->quote($arg{ip_address})
- . " AND prefix IN (NULL,'') OR ip = " . $self->{_astpp_db}->quote($arg{ip_address})
- . " AND " . $self->{_astpp_db}->quote($arg{destination}) . " RLIKE prefix ORDER BY LENGTH(prefix) DESC LIMIT 1";
+ . " AND prefix IN (NULL,'') OR ip = " . $self->{_astpp_db}->quote($arg{ip_address});
+ $tmp .= " AND " . $self->{_astpp_db}->quote($arg{destination}) . " RLIKE prefix" if $arg{destination};
+ $tmp .= " ORDER BY LENGTH(prefix) DESC LIMIT 1";
$sql = $self->{_astpp_db}->prepare($tmp);
$sql->execute;
my $anidata = $sql->fetchrow_hashref;
@@ -251,7 +253,7 @@
$sql->finish;
return @results;
}
-
+
sub fs_list_sip_params
#Return the list of parameters set on a freeswitch sip account
{
@@ -311,6 +313,28 @@
$arg{xml} .= "</variables>\n";
$arg{xml} .= "</user>\n";
};
+ my @ip_users = &ip_address_authenticate($self,%arg);
+ foreach my $record (@ip_users) {
+# This is only temporary and should be removed
+#
+$record->{id} = 0;
+#
+ $arg{xml} .= "<user id=\"" . $record->{account} . $record->{ip} . "\" ip=\"" . $record->{ip} . "\">\n";
+ $arg{xml} .= "<params>\n";
+ my @params = &fs_list_sip_params($self,$record->{id});
+ foreach my $record (@params) {
+ $arg{xml} .= "<param name=\"" . $record->{param_name} . "\" value=\"" . $record->{param_value} . "\"/>\n";
+ }
+ $arg{xml} .= "</params>\n";
+ $arg{xml} .= "<variables>\n";
+ my @vars = &fs_list_sip_vars($self,$record->{id});
+ foreach my $record (@vars) {
+ $arg{xml} .= "<variable name=\"" . $record->{var_name} . "\" value=\"" . $record->{var_value} . "\"/>\n";
+ }
+ $arg{xml} .= "<variable name=\"accountcode\" value=\"" . $record->{account} . "\"/>\n";
+ $arg{xml} .= "</variables>\n";
+ $arg{xml} .= "</user>\n";
+ }
$arg{xml} .= "</domain>\n";
return $arg{xml};
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|