i have two companies with one common backoffice/callcenter. there is no obvious relation between these two, so customers of company 1 should not see company name 2 in the live chat window and vice versa. the operators should not have to login into seperate consoles for each companies.
so here is my hack:
1) create a file called "custom.php" somewhere
	function text_verwursten($key, $val, $locale) {
		$company = getCompanyDetails();
		switch ($key) {
			case 'chat.window.title.agent':	case 'chat.window.title.user': case 'site.title':
				return $company['name'];			
			case 'mail.user.history.subject':
				return $company['name'] . ': ' . ($locale == 'de' ? 'Chat-Protokoll' : 'dialog history');
			case 'site.url':
				return $company['url'];
			default: 
				return $val;
		}
	}
	function settings_verwursten($key, $val) {
		$company = getCompanyDetails();
		switch ($key) {
			case 'hosturl':
				return $company['url'];
			case 'title':
				return $company['name'];				
			case 'logo': 
				return $company['logo'];
			case 'email': 
				return $company['email'];
			case 'chattitle':
				return $company['name'] . ' ' . $val;
			default: 
				return $val;
		}
	}
	function getCompanyDetails() {
		$ret = array();
		switch ($_SERVER['SERVER_NAME']) {
			case 'support.company1.com':
				$ret['name'] = 'Company 1';
				$ret['url'] = 'http://www.company1.com/';
				$ret['email'] = 'mail@company1.com';
				$ret['logo'] = 'http://www.company1.com/images/logo.jpg';
			break;
			default: 
				$ret['name'] = 'Company 2';
				$ret['url'] = 'http://www.company2.com/';
				$ret['email'] = 'mail@company2.com';
				$ret['logo'] = 'http://www.company2.com/images/logo.jpg';
		}
		return $ret;
	}
2) go to webim/libs/common.php
3) add "require_once('/path/to/custom.php');" at the top
4) change one line in "load_messages"-function (see comment "CUSTOM")
function load_messages($locale) {
	global $messages, $webim_encoding, $output_encoding;
	$hash = array();
	$current_encoding = $webim_encoding;
	$fp = fopen(dirname(__FILE__)."/../locales/$locale/properties", "r");
	while (!feof($fp)) {
		$line = fgets($fp, 4096);
		$keyval = split("=", $line, 2 );
		if( isset($keyval[1]) ) {
			$keyval[1] = text_verwursten($keyval[0], $keyval[1], $locale); // CUSTOM
			if($keyval[0] == 'encoding') {
				$current_encoding = trim($keyval[1]);
			} else if($keyval[0] == 'output_encoding') {
				$output_encoding[$locale] = trim($keyval[1]);
			} else if( $current_encoding == $webim_encoding ) {
				$hash[$keyval[0]] = str_replace("\\n", "\n",trim($keyval[1]));
			} else {
				$hash[$keyval[0]] = myiconv($current_encoding, $webim_encoding, str_replace("\\n", "\n",trim($keyval[1])));
			}
		}
	}
	fclose($fp);
	$messages[$locale] = $hash;
}
5) change one line in "loadsettings"-function (see comment "CUSTOM")
function loadsettings() {
	global $settingsloaded, $settings_in_db, $settings;
	if($settingsloaded) {
		return;
	}
	$settingsloaded = true;
	$link = connect();
	$sqlresult = mysql_query('select vckey,vcvalue from chatconfig',$link) or die(' Query failed: '.mysql_error().": ".$query);
	while ($row = mysql_fetch_array($sqlresult, MYSQL_ASSOC)) {
		$name = $row['vckey'];
		$settings[$name] = settings_verwursten($name, $row['vcvalue']); // CUSTOM
		$settings_in_db[$name] = true;
	}
	mysql_free_result($sqlresult);
	mysql_close($link);
}