"; exit; } function show_error($message) { start_xml_output(); echo "$message"; exit; } $thread->ping($isuser, $istyping); if( !$isuser && $act != "rename" ) { $operator = check_login(); $thread->checkForReassign($operator); } if( $act == "refresh" ) { $lastid = verifyparam( "lastid", "/^\d{1,9}$/", -1); print_thread_messages($thread, $token, $lastid, $isuser,$outformat, $isuser ? null : $operator['operatorid']); exit; } else if( $act == "post" ) { $lastid = verifyparam( "lastid", "/^\d{1,9}$/", -1); $message = getrawparam('message'); $kind = $isuser ? Thread::KIND_USER : Thread::KIND_AGENT; $from = $isuser ? $thread->userName : $thread->agentName; if(!$isuser && $operator['operatorid'] != $thread->agentId) { show_error("cannot send"); } $postedid = $thread->postMessage( $kind, $message, $from, $isuser ? null : $operator['operatorid'] ); if($isuser && $thread->shownMessageId == 0) { $thread->shownMessageId = $postedid; $thread->save(); } print_thread_messages($thread, $token, $lastid, $isuser, $outformat, $isuser ? null : $operator['operatorid']); exit; } else if( $act == "rename" ) { if( Settings::get('usercanchangename') != "1" ) { show_error("server: forbidden to change name"); } $newname = getrawparam('name'); $thread->renameUser($newname); $data = strtr(base64_encode(myiconv($webim_encoding,"utf-8",$newname)), '+/=', '-_,'); setcookie($namecookie, $data, time()+60*60*24*365); show_ok_result("rename"); } else if( $act == "ping" ) { show_ok_result("ping"); } else if( $act == "close" ) { if( $isuser || $thread->agentId == $operator['operatorid']) { $thread->close($isuser); } show_ok_result("closed"); } ?>