Changeset 43
- Timestamp:
- 05/14/07 20:21:22 (2 years ago)
- Files:
-
- trunk/ming-source/operator_panel.pl (modified) (4 diffs)
- trunk/op_server.cfg (modified) (1 diff)
- trunk/op_server.pl (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/ming-source/operator_panel.pl
r24 r43 7412 7412 } 7413 7413 7414 //logea(numeroboton+"|"+comando+"|"+textofinal.substring(0,20));7414 logea(numeroboton+"|"+comando+"|"+textofinal.substring(0,20)); 7415 7415 7416 7416 var botonparte = numeroboton.split("@"); … … 7767 7767 //var clidname = base64_decode(textofinal); 7768 7768 _global.clidname[boton_numero]=textofinal; 7769 var clidname = base64_decode(textofinal); 7769 //var clidname = base64_decode(textofinal); 7770 } 7771 if (comando == "setvar") { 7772 if(_global.chanvars[boton_numero].length == undefined) { 7773 _global.chanvars[boton_numero] = new Array; 7774 } 7775 chanvars[boton_numero].push(textofinal); 7770 7776 } 7771 7777 … … 7798 7804 c.clid = _global.clidnumber[boton_numero]; 7799 7805 c.clidname = _global.clidname[boton_numero]; 7806 7807 var a=-1; 7808 while (++a < chanvars[boton_numero].length) { 7809 var datossplit = chanvars[boton_numero][a].split("="); 7810 var mivar = datossplit[0]; 7811 var mival = datossplit[1]; 7812 c[mivar]=mival; 7813 } 7814 chanvars[boton_numero]=""; 7800 7815 c.send(url, target, 'GET'); 7801 logea("Open url "+url+" in target "+target+" with clid "+c lidnumber);7816 logea("Open url "+url+" in target "+target+" with clid "+c.clid); 7802 7817 } 7803 7818 } else { … … 8689 8704 _global.logwindow = 1; 8690 8705 _global.margenbar = 2; 8706 _global.chanvars = new Array(); 8691 8707 _global.loglines = new Array(); 8692 8708 _global.texto_tip = new Array(); trunk/op_server.cfg
r36 r43 191 191 voicemail_extension = 3000@features 192 192 193 194 ; Channel variables to be passed from origin channels to Ringing channels 195 ; Those variables will appear in the popup base64 encoded. A new event 196 ; will be generated to clients in the form: 197 ; "setvar" and data VARNAME=BASE64(value) 198 passvars=FROM_DID 199 200 193 201 ; Attendant transfers. If this parameters are uncomented, then 194 202 ; barge in functionality will be replaced with attendant transfers trunk/op_server.pl
r42 r43 37 37 my $FOP_VERSION = "SVNVERSION"; 38 38 my %datos = (); 39 my %chanvar = (); 40 my %passvar = (); 39 41 my %sesbot = (); 40 42 my %linkbot = (); … … 189 191 my $queue_hide; 190 192 my $enable_restart; 193 my $passvars; 191 194 my $change_led; 192 195 my $cdial_nosecure; … … 484 487 $enable_restart = $config->{GENERAL}{enable_restart}; 485 488 $defaultlanguage = $config->{GENERAL}{language}; 489 $passvars = $config->{GENERAL}{passvars}; 486 490 487 491 if ( $debuglevel == -1 ) { … … 2125 2129 log_debug( "** Found a match $canalid=$val ($quehay) - Cleared!", 16 ) if DEBUG; 2126 2130 delete $datos{$quehay}; 2131 delete $chanvar{$quehay}; 2132 delete $passvar{$quehay}; 2127 2133 } 2128 2134 } … … 2662 2668 } 2663 2669 2670 if ( defined( $hash_temporal{Application} ) ) { 2671 2672 # Chanvar hash stores the complete list of channel variables 2673 # that are "SET" in the dialplan for a given Uniqueid 2674 if ( $hash_temporal{Application} eq "Set" ) { 2675 my @vardata = split( /\|/, $hash_temporal{AppData} ); 2676 foreach my $vara (@vardata) { 2677 my ( $vari, $valu ) = split( /=/, $vara ); 2678 $vari =~ s/^_.?//g; 2679 $chanvar{ $hash_temporal{Uniqueid} }{$vari} = $valu; 2680 } 2681 } 2682 } 2664 2683 if ( defined( $hash_temporal{Channel} ) ) { 2665 2684 if ( $hash_temporal{Channel} =~ /^Agent/ ) { … … 3190 3209 $remote_callerid_name{$key} = $hash_temporal{"CallerIDName"}; 3191 3210 3211 foreach my $var ( split( /\|/, $passvars ) ) { 3212 if ( defined( $chanvar{ $hash_temporal{"SrcUniqueID"} }{$var} ) ) { 3213 $passvar{ $hash_temporal{"DestUniqueID"} }{$var} = $chanvar{ $hash_temporal{"SrcUniqueID"} }{$var}; 3214 } 3215 } 3216 3192 3217 if ( $hash_temporal{'Source'} =~ m/^Local/i ) { 3193 3218 … … 5022 5047 if ( $clidnum ne "" ) { 5023 5048 my $base64_clidnum = encode_base64( $clidnum . " " ); 5024 $ret = "$canal|clidnum|$base64_clidnum|$unico_id|$hash_temporal{ 'Channel'}";5049 $ret = "$canal|clidnum|$base64_clidnum|$unico_id|$hash_temporal{Channel}"; 5025 5050 push @return, $ret; 5026 5051 } 5027 5052 if ( defined($clidname) ) { 5028 5053 my $base64_clidname = encode_base64( $clidname . " " ); 5029 $ret = "$canal|clidname|$base64_clidname|$unico_id|$hash_temporal{ 'Channel'}";5054 $ret = "$canal|clidname|$base64_clidname|$unico_id|$hash_temporal{Channel}"; 5030 5055 push @return, $ret; 5031 5056 } 5057 foreach my $var ( keys %{ $passvar{ $hash_temporal{Uniqueid} } } ) { 5058 my $base64_var = encode_base64( $passvar{ $hash_temporal{Uniqueid} }{$var} ); 5059 $ret = "$canal|setvar|$var=$base64_var|$unico_id|$hash_temporal{Channel}"; 5060 push @return, $ret; 5061 } 5062 delete $passvar{ $hash_temporal{Uniqueid} }; 5032 5063 } 5033 5064 … … 5391 5422 log_debug( "$heading erasing datos{$uniqueid}", 256 ) if DEBUG; 5392 5423 delete $datos{$uniqueid}; 5424 delete $chanvar{$uniqueid}; 5425 delete $passvar{$uniqueid}; 5393 5426 5394 5427 if ( $cuantos == 0 ) { … … 5555 5588 5556 5589 delete $datos{$uniqueid}; 5590 delete $chanvar{$uniqueid}; 5591 delete $passvar{$uniqueid}; 5557 5592 log_debug( "$heading REMOVING datos { $uniqueid }", 256 ) if DEBUG; 5558 5593
