Changeset 35
- Timestamp:
- 04/26/07 11:36:47 (2 years ago)
- Files:
-
- trunk/op_server.pl (modified) (20 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/op_server.pl
r34 r35 1507 1507 my $contextoboton = $key; 1508 1508 if ( $contextoboton =~ m/\@/ ) { 1509 ( undef, $contextoboton) = split( /\@/, $contextoboton, 2 );1509 ( undef, $contextoboton ) = split( /\@/, $contextoboton, 2 ); 1510 1510 $contextoboton =~ tr/a-z/A-Z/; 1511 1511 } … … 1525 1525 my $contextoboton = $key; 1526 1526 if ( $contextoboton =~ m/\@/ ) { 1527 ( undef, $contextoboton) = split( /\@/, $contextoboton, 2 );1527 ( undef, $contextoboton ) = split( /\@/, $contextoboton, 2 ); 1528 1528 $contextoboton =~ tr/a-z/A-Z/; 1529 1529 } … … 1562 1562 my $contextoboton = $key; 1563 1563 if ( $contextoboton =~ m/\@/ ) { 1564 ( undef, $contextoboton) = split( /\@/, $contextoboton, 2 );1564 ( undef, $contextoboton ) = split( /\@/, $contextoboton, 2 ); 1565 1565 $contextoboton =~ tr/a-z/A-Z/; 1566 1566 } … … 1581 1581 my $contextoboton = $key; 1582 1582 if ( $contextoboton =~ m/\@/ ) { 1583 ( undef, $contextoboton) = split( /\@/, $contextoboton, 2 );1583 ( undef, $contextoboton ) = split( /\@/, $contextoboton, 2 ); 1584 1584 $contextoboton =~ tr/a-z/A-Z/; 1585 1585 } … … 1869 1869 } 1870 1870 if ( $elemento =~ /^(?i:mISDN)(?!.*XXXY)/ ) { 1871 $elemento .= "-XXXY";1871 $elemento .= "-XXXY"; 1872 1872 } 1873 1873 elsif ( $elemento =~ /^SRX/i ) { … … 1916 1916 sub erase_instances_for_trunk_buttons { 1917 1917 1918 my $canalid = shift;1919 my $canal = shift;1920 my $server = shift;1918 my $canalid = shift; 1919 my $canal = shift; 1920 my $server = shift; 1921 1921 my $canalglobal; 1922 1922 my $heading = "** ERASE_INSTANCE_TRUNK"; … … 1925 1925 $solocanal =~ s/[^\w]//g; 1926 1926 1927 $canalid = "$server^$canalid";1927 $canalid = "$server^$canalid"; 1928 1928 $canalid =~ s/(.*)<(.*)>/$1/g; #discards ZOMBIE or MASQ 1929 1929 … … 1946 1946 $canalid = $server . "^" . $canal . "-" . $solocanal; 1947 1947 } 1948 foreach my $key1 ( keys(%instancias) ) {1948 foreach my $key1 ( keys(%instancias) ) { 1949 1949 delete $instancias{$key1}{$canalid}; 1950 1950 log_debug( "$heading Erasing $canalid from instanacias!", 128 ) if DEBUG; … … 2317 2317 2318 2318 my $uniqueid = find_uniqueid( $canalsesion, $server ); 2319 if ( $uniqueid) {2319 if ($uniqueid) { 2320 2320 if ( defined( $datos{$uniqueid}{CallerID} ) ) { 2321 2321 $calleridnum = $datos{$uniqueid}{CallerID}; … … 3390 3390 # in op_buttons.cfg. 3391 3391 $canal = $extension_transfer_reverse{$ext_transf_key}; 3392 ( $canal, undef) = split( /&/, $canal);3392 ( $canal, undef ) = split( /&/, $canal ); 3393 3393 if ( $canal =~ /\^/ ) { 3394 ( undef, $canal) = split( /\^/, $canal );3394 ( undef, $canal ) = split( /\^/, $canal ); 3395 3395 } 3396 3396 } … … 5197 5197 5198 5198 my $cuantos = $#return + 1; 5199 if (DEBUG) {5199 if (DEBUG) { 5200 5200 log_debug( "$heading returns $cuantos", 16 ); 5201 5201 log_debug( "$heading END SUB returns $_", 32 ) foreach (@return); … … 5698 5698 "$heading Y es distinto al ultimo estado $laststatus{$interno} ne $estadoboton{$interno}", 256 ) 5699 5699 if DEBUG; 5700 } 5700 } 5701 5701 5702 5702 # Conserva el callerid anterior … … 6038 6038 if ( $quehace2 ne "" ) { 6039 6039 push @respuestas, "$interno|$quehace2|$dos"; 6040 log_debug( "$heading pushing respuestas $interno|$quehace2|$dos", 256 ) if DEBUG;6041 } 6040 log_debug( "$heading pushing respuestas $interno|$quehace2|$dos", 256 ) if DEBUG; 6041 } 6042 6042 } 6043 6043 } … … 6054 6054 } 6055 6055 if ( $quehace2 eq "settimer" ) { 6056 my $tiempo = $dos;6057 my $timer_type = "";6056 my $tiempo = $dos; 6057 my $timer_type = ""; 6058 6058 if ( $tiempo =~ /\@/ ) { 6059 6059 ( $tiempo, $timer_type ) = split( /\@/, $tiempo ); … … 6947 6947 $elementname =~ s/\d//g; 6948 6948 6949 if ( $datosflash =~ /_level0\.casilla/ ) { 6950 $datosflash =~ s/_level0\.casilla(\d+)/$1/g; 6951 } 6952 if ( $datosflash =~ /_level0\.rectangulo/ ) { 6953 $datosflash =~ s/_level0\.rectangulo(\d+).*/$1/g; 6954 } 6949 $datosflash =~ s/_level0\.casilla(\d+)/$1/g; 6950 $datosflash =~ s/_level0\.rectangulo(\d+).*/$1/g; 6955 6951 6956 6952 log_debug( "$heading datosflash before context $datosflash", 128 ) if DEBUG; … … 8624 8620 if ( $encriptado =~ /key\|0/ ) { 8625 8621 $but_no = '0'; 8626 $encriptado =~ m/(.*)\|(.*)\|(.*)/; 8627 $cmd = $2; 8628 $data = $1; 8629 8622 ( $data, $cmd ) = split( /\|/, $encriptado ); 8630 8623 } 8631 8624 else { 8632 8625 $but_no = $status; 8633 $but_no =~ s/(\d+) (.*)\|(.*)/$1/g;8626 $but_no =~ s/(\d+).*\|.*/$1/g; 8634 8627 $contexto = $status; 8635 8628 $contexto =~ s/([^\|]*).*/$1/g; 8636 $contexto =~ m/(.*)\@(.*)/; 8637 8638 if ( defined($2) ) { 8639 $contexto = $2; 8640 } 8641 else { 8642 $contexto = ""; 8643 } 8644 $status =~ m/(.*)\|(.*)\|(.*)/; 8645 $cmd = $2; 8646 $data = $3; 8629 $contexto =~ m/.*\@(.*)/; 8630 $contexto = $1 ? $1 : ""; 8631 ( undef, $cmd, $data ) = split( /\|/, $status ); 8647 8632 8648 8633 if ( $contexto ne "" && $cmd ne "restrict" ) { … … 8753 8738 } 8754 8739 8740 sub construct_cmd { 8741 my $cola = shift; 8742 my $canalid = shift; 8743 return $cola->{$canalid}{QUEUE} . "=" 8744 . $cola->{$canalid}{POSITION} 8745 . "|$_[0]|$_[1]|" 8746 . $cola->{$canalid}{QUEUE} . "-" 8747 . $cola->{$canalid}{SERVER} 8748 . "|$canalid"; 8749 } 8750 8755 8751 sub recompute_queues { 8756 8752 my $canalid = shift; 8757 my @ return_corto;8758 my @ return_ocupado;8753 my @corto; 8754 my @ocupado; 8759 8755 my $maxtime = 0; 8756 my $save_id; 8757 my $time = time(); 8760 8758 8761 8759 #print_recomputequeues(); … … 8770 8768 8771 8769 if ( $queue_hide == 1 ) { 8772 push @return_corto, 8773 $cola->{$canalid}{QUEUE} . "=" 8774 . $cola->{$canalid}{POSITION} 8775 . "|setalpha|000|" 8776 . $cola->{$canalid}{QUEUE} . "-" 8777 . $cola->{$canalid}{SERVER} 8778 . "|$canalid"; 8779 } 8780 push @return_corto, 8781 $cola->{$canalid}{QUEUE} . "=" 8782 . $cola->{$canalid}{POSITION} 8783 . "|corto||" 8784 . $cola->{$canalid}{QUEUE} . "-" 8785 . $cola->{$canalid}{SERVER} 8786 . "|$canalid"; 8770 push @corto, construct_cmd( $cola, $canalid, "setalpha", "000" ); 8771 } 8772 push @corto, construct_cmd( $cola, $canalid, "corto", "" ); 8773 8787 8774 delete $cola->{$canalid}; 8788 my $save_id;8789 8775 8790 8776 foreach my $id ( keys %{$cola} ) { 8791 if ( !defined( $cola->{$id}{QUEUE} )) {8777 unless ( $cola->{$id}{QUEUE} ) { 8792 8778 delete( $cola->{$id} ); 8793 8779 next; 8794 8780 } 8795 8781 8796 #foreach ( keys %{ $cola->{$id} } ) {8797 # print "key de cola $_\n";8798 #}8799 8782 if ( $queue_to_recompute eq $cola->{$id}{QUEUE} ) { 8800 8783 $save_id = $id; 8801 my $diftime = time()- $cola->{$id}{TIME};8784 my $diftime = $time - $cola->{$id}{TIME}; 8802 8785 if ( $diftime > $maxtime ) { 8803 8786 $maxtime = $diftime; … … 8807 8790 my $clidtext = $cola->{$id}{CLIDNAME} . " " . $cola->{$id}{CLID}; 8808 8791 if ( $queue_hide == 1 ) { 8809 push @return_corto, 8810 $cola->{$id}{QUEUE} . "=" 8811 . $cola->{$id}{POSITION} 8812 . "|setalpha|000|" 8813 . $cola->{$id}{QUEUE} . "-" 8814 . $cola->{$id}{SERVER} . "|$id"; 8815 } 8816 push @return_corto, 8817 $cola->{$id}{QUEUE} . "=" 8818 . $cola->{$id}{POSITION} 8819 . "|corto||" 8820 . $cola->{$id}{QUEUE} . "-" 8821 . $cola->{$id}{SERVER} . "|$id"; 8792 push @corto, construct_cmd( $cola, $id, "setalpha", "000" ); 8793 } 8794 push @corto, construct_cmd( $cola, $id, "corto", "" ); 8822 8795 $cola->{$id}{POSITION}--; 8823 push @return_ocupado, 8824 $cola->{$id}{QUEUE} . "=" 8825 . $cola->{$id}{POSITION} 8826 . "|settimer|$diftime|" 8827 . $cola->{$id}{QUEUE} . "-" 8828 . $cola->{$id}{SERVER} . "|$id"; 8829 push @return_ocupado, 8830 $cola->{$id}{QUEUE} . "=" 8831 . $cola->{$id}{POSITION} 8832 . "|ocupado|[$clidtext]|" 8833 . $cola->{$id}{QUEUE} . "-" 8834 . $cola->{$id}{SERVER} . "|$id"; 8835 push @return_ocupado, $cola->{$id}{QUEUE} . "|ocupado|[$clidtext]|" . $cola->{$id}{QUEUE} . "-" . $cola->{$id}{SERVER} . "|$id"; 8836 push @return_ocupado, 8837 $cola->{$id}{QUEUE} . "|settimer|0\@STOP|" . $cola->{$id}{QUEUE} . "-" . $cola->{$id}{SERVER} . "|$id"; 8796 push @ocupado, construct_cmd( $cola, $id, "settimer", $diftime ); 8797 push @ocupado, construct_cmd( $cola, $id, "ocupado", "[$clidtext]" ); 8798 push @ocupado, $cola->{$id}{QUEUE} . "|ocupado|[$clidtext]|" . $cola->{$id}{QUEUE} . "-" . $cola->{$id}{SERVER} . "|$id"; 8799 push @ocupado, $cola->{$id}{QUEUE} . "|settimer|0\@STOP|" . $cola->{$id}{QUEUE} . "-" . $cola->{$id}{SERVER} . "|$id"; 8838 8800 } 8839 8801 } 8840 8802 } 8841 8803 if ( defined($save_id) ) { 8842 push @ return_ocupado,8804 push @ocupado, 8843 8805 $cola->{$save_id}{QUEUE} . "|settimer|$maxtime\@UP|" . $cola->{$save_id}{QUEUE} . "-" . $cola->{$save_id}{SERVER} . "|$save_id"; 8844 8806 } … … 8848 8810 8849 8811 delete $cola->{$canalid}; 8850 @return_ocupado = unique(@return_ocupado); 8851 8852 if (@return_corto) { 8853 my @todos = (); 8854 push @todos, @return_corto; 8855 push @todos, @return_ocupado; 8856 return @todos; 8857 } 8858 8859 # TEST|corto|&waitingonqueue,0,&|TEST-0|SIP/16-ea0c 8812 @ocupado = unique(@ocupado); 8813 8814 if (@corto) { 8815 return ( @corto, @ocupado ); 8816 } 8817 8860 8818 } 8861 8819
