[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. |