Ejemplo n.º 1
0
define("LIVEZILLA_PATH", "../../");
@set_time_limit(30);
require LIVEZILLA_PATH . "_definitions/definitions.inc.php";
require LIVEZILLA_PATH . "_lib/objects.global.users.inc.php";
require LIVEZILLA_PATH . "_lib/functions.global.inc.php";
require LIVEZILLA_PATH . "_definitions/definitions.dynamic.inc.php";
require LIVEZILLA_PATH . "_definitions/definitions.protocol.inc.php";
require LIVEZILLA_PATH . "_lib/functions.internal.inc.php";
require LIVEZILLA_PATH . "_lib/objects.internal.inc.php";
@set_error_handler("handleError");
@error_reporting(E_ALL);
header("Pragma: no-cache");
header("Cache-Control: no-cache, must-revalidate");
header("Keep-Alive: timeout=5, max=100");
initDataProvider();
initData(array("INTERNAL", "INPUTS"));
validate(true);
if (isValidated() && is("CALLER_SYSTEM_ID")) {
    if ($INTERNAL[CALLER_SYSTEM_ID]->GetPermission(46) != PERMISSION_NONE) {
        require "objects.apiv2.inc.php";
        $apiv2 = new ApiV2(isset($_POST["p_json_pretty"]));
        if ($apiv2->RunActions() && empty($apiv2->ErrorField) && !empty($apiv2->JSONOutput)) {
            exit($apiv2->JSONOutput);
        } else {
            header("HTTP/1.1 400 Bad Request");
            exit("HTTP/1.1 400 Bad Request" . $apiv2->GetErrorCodes());
        }
    }
}
header("HTTP/1.1 403 Forbidden");
exit("HTTP/1.1 403 Forbidden");
Ejemplo n.º 2
0
require LIVEZILLA_PATH . "_definitions/definitions.dynamic.inc.php";
require LIVEZILLA_PATH . "_definitions/definitions.protocol.inc.php";
require LIVEZILLA_PATH . "_lib/objects.internal.inc.php";
@set_error_handler("handleError");
@error_reporting(E_ALL);
header("Pragma: no-cache");
header("Cache-Control: no-cache, must-revalidate");
header("Keep-Alive: timeout=5, max=100");
Server::DefineURL("api.php");
Server::InitDataProvider();
Server::InitDataBlock(array("INTERNAL", "INPUTS", "DBCONFIG"));
OperatorRequest::Validate(true);
if (OperatorRequest::IsValidated() && Is::Defined("CALLER_SYSTEM_ID")) {
    if (Server::$Operators[CALLER_SYSTEM_ID]->GetPermission(46) != PERMISSION_NONE) {
        require "objects.apiv2.inc.php";
        $apiv2 = new ApiV2(isset($_POST["p_json_pretty"]));
        if ($apiv2->RunActions() && empty($apiv2->ErrorField) && !empty($apiv2->JSONOutput)) {
            exit($apiv2->JSONOutput);
        } else {
            APIErrorExit($apiv2->GetErrorCodes());
        }
    } else {
        APIErrorExit("LZAV20002");
    }
} else {
    APIErrorExit("LZAV20001");
}
APIErrorExit("LZAV20000");
function APIErrorExit($_code)
{
    if (defined("AUTH_RESULT")) {
 static function GetObjectDefinitions($_operatorA, $_chatA, $_ticketA, $_voucherA, $_ticketMessageA, $_ticketEditorA, $_kbEntry)
 {
     $objects["Operator"]["Fields"] = ApiV2::GetObjectFields("Operator");
     foreach ($objects["Operator"]["Fields"] as $fid => $field) {
         if (isset($field["Code"])) {
             $_operatorA->{$fid} = $field["Code"];
         } else {
             $_operatorA->{$fid} = $field["Example"];
         }
     }
     $_operatorOut = ApiV2::ClearObject($objects["Operator"]["Fields"], $_operatorA, true);
     $objects["Operator"]["Functions"]["List"]["Version"] = "5.2.5.0";
     $objects["Operator"]["Functions"]["List"]["Title"] = "List Operators";
     $objects["Operator"]["Functions"]["List"]["Call"] = "POST /api/v2/api.php";
     $objects["Operator"]["Functions"]["List"]["Param"] = "POST /api/v2/api.php p_operators_list=1";
     $objects["Operator"]["Functions"]["List"]["CURL"] = "curl {yourdomain}{livezilla_folder}/api/v2/api.php<br>-d {authenthication}<br>-d p_operators_list=1";
     $objects["Operator"]["Functions"]["List"]["Response"] = "JSON code of operator(s)";
     $objects["Operator"]["Functions"]["List"]["Fields"] = array("true");
     $objects["Operator"]["Functions"]["List"]["Filters"] = array("UserId" => array("Type" => "string", "Required" => false, "Comment" => "Response will be the Operator matching this login Id.", "Example" => "john_doe"), "Status" => array("Type" => "int", "Required" => false, "Comment" => "Returns all operators having this status.", "Example" => "1"), "Group" => array("Type" => "string", "Required" => false, "Comment" => "Returns all operators that are member of this group.", "Example" => "groupid1"), "Full Chats" => array("Type" => "bool", "Required" => false, "Comment" => "Return full list of external chat objects (LiveZilla 5.4.0.1).", "Example" => "1"));
     $objects["Operator"]["Functions"]["List"]["OutputObject"] = array("Operators" => array(array("Operator" => $_operatorOut), array("Operator" => $_operatorOut)));
     $objects["Operator"]["Functions"]["Create"]["Version"] = "5.2.5.0";
     $objects["Operator"]["Functions"]["Create"]["Title"] = "Create Operator";
     $objects["Operator"]["Functions"]["Create"]["Call"] = "POST /api/v2/api.php";
     $objects["Operator"]["Functions"]["Create"]["Param"] = "POST /api/v2/api.php p_operator_create=1";
     $objects["Operator"]["Functions"]["Create"]["CURL"] = "curl {yourdomain}{livezilla_folder}/api/v2/api.php<br>-d {authenthication}<br>-d p_operator_create=1";
     $objects["Operator"]["Functions"]["Create"]["Response"] = "JSON code of created operator";
     $objects["Operator"]["Functions"]["Create"]["Fields"] = array("true");
     $objects["Operator"]["Functions"]["Create"]["Filters"] = array();
     $objects["Operator"]["Functions"]["Create"]["OutputObject"] = array("Operator" => $_operatorOut);
     $objects["Operator"]["Functions"]["Create"]["InputObject"] = $objects["Operator"]["Fields"];
     $objects["Operator"]["Functions"]["Delete"]["Version"] = "5.2.5.0";
     $objects["Operator"]["Functions"]["Delete"]["Title"] = "Delete Operator";
     $objects["Operator"]["Functions"]["Delete"]["Call"] = "POST /api/v2/api.php";
     $objects["Operator"]["Functions"]["Delete"]["Param"] = "POST /api/v2/api.php p_operator_delete=1";
     $objects["Operator"]["Functions"]["Delete"]["CURL"] = "curl {yourdomain}{livezilla_folder}/api/v2/api.php<br>-d {authenthication}<br>-d p_operator_delete=1";
     $objects["Operator"]["Functions"]["Delete"]["Response"] = "JSON code of deleted operator";
     $objects["Operator"]["Functions"]["Delete"]["Fields"] = array("UserId");
     $objects["Operator"]["Functions"]["Delete"]["Filters"] = array();
     $objects["Operator"]["Functions"]["Delete"]["OutputObject"] = array("Operator" => $_operatorOut);
     $objects["Operator"]["Functions"]["Delete"]["InputObject"] = array("UserId" => array("Input" => true, "Output" => true, "Type" => "string", "Description" => "The alphanumeric login ID of the operators.", "Required" => true, "Example" => "john_doe"));
     $objects["Chat"]["Fields"] = ApiV2::GetObjectFields("Chat");
     foreach ($objects["Chat"]["Fields"] as $fid => $field) {
         if (isset($field["Code"])) {
             $_chatA->{$fid} = $field["Code"];
         } else {
             $_chatA->{$fid} = $field["Example"];
         }
     }
     $_chatOut = ApiV2::ClearObject($objects["Chat"]["Fields"], $_chatA);
     $objects["Chat"]["Functions"]["List"]["Version"] = "5.2.5.0";
     $objects["Chat"]["Functions"]["List"]["Title"] = "List Chat Transcripts";
     $objects["Chat"]["Functions"]["List"]["Call"] = "POST /api/v2/api.php";
     $objects["Chat"]["Functions"]["List"]["Param"] = "POST /api/v2/api.php p_chats_list=1";
     $objects["Chat"]["Functions"]["List"]["CURL"] = "curl {yourdomain}{livezilla_folder}/api/v2/api.php<br>-d {authenthication}<br>-d p_chats_list=1<br>-d p_limit=10";
     $objects["Chat"]["Functions"]["List"]["Response"] = "JSON code of chat transcript(s)";
     $objects["Chat"]["Functions"]["List"]["Fields"] = array("true");
     $objects["Chat"]["Functions"]["List"]["Filters"] = array("ChatId" => array("Type" => "string", "Required" => false, "Comment" => "Return the chat matching this chat Id.", "Example" => "11123"), "Group" => array("Type" => "string", "Required" => false, "Comment" => "Return all chats of this group.", "Example" => "groupid1"), "Operator" => array("Type" => "string", "Required" => false, "Comment" => "Return all chats of this operator.", "Example" => "john_doe"), "Start After" => array("Type" => "string", "Required" => false, "Comment" => "Return all chats with start time later than<br>YYYY-MM-DD HH:MM:SS", "Example" => "2014-01-01 23:59:59"), "Start Before" => array("Type" => "string", "Required" => false, "Comment" => "Return all chats with start time earlier than<br>YYYY-MM-DD HH:MM:SS", "Example" => "2014-01-03 00:00:00"), "Output" => array("Type" => "string", "Required" => false, "Comment" => "HTML | Plaintext", "Example" => "Plaintext"), "Limit" => array("Type" => "int", "Required" => false, "Comment" => "Maximum number of chats to return.", "Example" => "100"));
     $objects["Chat"]["Functions"]["List"]["OutputObject"] = array("Chats" => array(array("Chat" => $_chatOut)));
     $objects["Ticket"]["Fields"] = ApiV2::GetObjectFields("Ticket");
     foreach ($objects["Ticket"]["Fields"] as $fid => $field) {
         if (isset($field["Code"])) {
             $_ticketA->{$fid} = $field["Code"];
         } else {
             $_ticketA->{$fid} = $field["Example"];
         }
     }
     $_ticketA = ApiV2::ClearObject($objects["Ticket"]["Fields"], $_ticketA);
     $objects["Ticket"]["Functions"]["List"]["Version"] = "5.2.5.0";
     $objects["Ticket"]["Functions"]["List"]["Title"] = "List Tickets";
     $objects["Ticket"]["Functions"]["List"]["Call"] = "POST /api/v2/api.php";
     $objects["Ticket"]["Functions"]["List"]["Param"] = "POST /api/v2/api.php p_tickets_list=1";
     $objects["Ticket"]["Functions"]["List"]["CURL"] = "curl {yourdomain}{livezilla_folder}/api/v2/api.php<br>-d {authenthication}<br>-d p_tickets_list=1<br>-d p_limit=10";
     $objects["Ticket"]["Functions"]["List"]["Response"] = "JSON code of ticket(s)";
     $objects["Ticket"]["Functions"]["List"]["Fields"] = array("true");
     $objects["Ticket"]["Functions"]["List"]["Filters"] = array("Id" => array("Type" => "string", "Required" => false, "Comment" => "Return the ticket matching this Id.", "Example" => "11123"), "Group" => array("Type" => "string", "Required" => false, "Comment" => "Return all tickets of this group.", "Example" => "groupid1"), "Operator" => array("Type" => "string", "Required" => false, "Comment" => "Return all tickets of this operator.", "Example" => "john_doe"), "Created After" => array("Type" => "string", "Required" => false, "Comment" => "Return all tickets created later than<br>YYYY-MM-DD HH:MM:SS", "Example" => "2014-01-01 23:59:59"), "Created Before" => array("Type" => "string", "Required" => false, "Comment" => "Return all tickets created earlier than<br>YYYY-MM-DD HH:MM:SS", "Example" => "2014-01-03 00:00:00"), "Limit" => array("Type" => "int", "Required" => false, "Comment" => "Maximum number of tickets to return.", "Example" => "100"));
     $objects["Ticket"]["Functions"]["List"]["OutputObject"] = array("Tickets" => array(array("Ticket" => $_ticketA)));
     $objects["Ticket"]["Functions"]["Create"]["Version"] = "5.2.5.0";
     $objects["Ticket"]["Functions"]["Create"]["Title"] = "Create Ticket";
     $objects["Ticket"]["Functions"]["Create"]["Call"] = "POST /api/v2/api.php";
     $objects["Ticket"]["Functions"]["Create"]["Param"] = "POST /api/v2/api.php p_ticket_create=1";
     $objects["Ticket"]["Functions"]["Create"]["CURL"] = "curl {yourdomain}{livezilla_folder}/api/v2/api.php<br>-d {authenthication}<br>-d p_ticket_create=1";
     $objects["Ticket"]["Functions"]["Create"]["Response"] = "JSON code of created ticket";
     $objects["Ticket"]["Functions"]["Create"]["Fields"] = array("true");
     $objects["Ticket"]["Functions"]["Create"]["Filters"] = array();
     $objects["Ticket"]["Functions"]["Create"]["OutputObject"] = array("Ticket" => $_ticketA);
     $objects["Ticket"]["Functions"]["Create"]["InputObject"] = $objects["Ticket"]["Fields"];
     $objects["TicketMessage"]["Fields"] = ApiV2::GetObjectFields("TicketMessage");
     $objects["TicketMessage"]["Parent"] = "Ticket";
     foreach ($objects["TicketMessage"]["Fields"] as $fid => $field) {
         if (isset($field["Code"])) {
             $_ticketMessageA->{$fid} = $field["Code"];
         } else {
             $_ticketMessageA->{$fid} = $field["Example"];
         }
     }
     $_ticketMessageA = ApiV2::ClearObject($objects["TicketMessage"]["Fields"], $_ticketMessageA);
     $objects["TicketMessage"]["Functions"]["Create"]["Version"] = "5.2.5.0";
     $objects["TicketMessage"]["Functions"]["Create"]["Title"] = "Create Ticket Message";
     $objects["TicketMessage"]["Functions"]["Create"]["Call"] = "POST /api/v2/api.php";
     $objects["TicketMessage"]["Functions"]["Create"]["Param"] = "POST /api/v2/api.php p_ticketmessage_create=1";
     $objects["TicketMessage"]["Functions"]["Create"]["CURL"] = "curl {yourdomain}{livezilla_folder}/api/v2/api.php<br>-d {authenthication}<br>-d p_ticketmessage_create=1";
     $objects["TicketMessage"]["Functions"]["Create"]["Response"] = "JSON code of created ticket message";
     $objects["TicketMessage"]["Functions"]["Create"]["Fields"] = array("true");
     $objects["TicketMessage"]["Functions"]["Create"]["Filters"] = array("SendEmailResponder" => array("Input" => true, "Output" => false, "Type" => "bool", "Comment" => "Send autoresponder email to sender of message", "Required" => false, "Example" => "1"), "SendEmailReply" => array("Input" => true, "Output" => false, "Type" => "bool", "Comment" => "Send operator reply email to receiver of message", "Required" => false, "Example" => "1"), "QuoteMessageId" => array("Input" => true, "Output" => false, "Type" => "string", "Comment" => "The Ticket Message ID of the Message the Operator is replying to.", "Required" => false, "Example" => "90f9cf..."));
     $objects["TicketMessage"]["Functions"]["Create"]["OutputObject"] = array("TicketMessage" => $_ticketMessageA);
     $objects["TicketMessage"]["Functions"]["Create"]["InputObject"] = $objects["TicketMessage"]["Fields"];
     $objects["TicketEditor"]["Fields"] = ApiV2::GetObjectFields("TicketEditor");
     $objects["TicketEditor"]["Parent"] = "Ticket";
     foreach ($objects["TicketEditor"]["Fields"] as $fid => $field) {
         if (isset($field["Code"])) {
             $_ticketEditorA->{$fid} = $field["Code"];
         } else {
             $_ticketEditorA->{$fid} = $field["Example"];
         }
     }
     $_ticketEditorA = ApiV2::ClearObject($objects["TicketEditor"]["Fields"], $_ticketEditorA);
     $objects["TicketEditor"]["Functions"]["Assign"]["Version"] = "5.2.5.0";
     $objects["TicketEditor"]["Functions"]["Assign"]["Title"] = "Assign Ticket Editor";
     $objects["TicketEditor"]["Functions"]["Assign"]["Call"] = "POST /api/v2/api.php";
     $objects["TicketEditor"]["Functions"]["Assign"]["Param"] = "POST /api/v2/api.php p_ticketeditor_assign=1";
     $objects["TicketEditor"]["Functions"]["Assign"]["CURL"] = "curl {yourdomain}{livezilla_folder}/api/v2/api.php<br>-d {authenthication}<br>-d p_ticketeditor_assign=1";
     $objects["TicketEditor"]["Functions"]["Assign"]["Response"] = "JSON code of ticket editor";
     $objects["TicketEditor"]["Functions"]["Assign"]["Fields"] = array("true");
     $objects["TicketEditor"]["Functions"]["Assign"]["Filters"] = array();
     $objects["TicketEditor"]["Functions"]["Assign"]["OutputObject"] = array("TicketEditor" => $_ticketEditorA);
     $objects["TicketEditor"]["Functions"]["Assign"]["InputObject"] = $objects["TicketEditor"]["Fields"];
     $objects["CommercialChatVoucher"]["Fields"] = ApiV2::GetObjectFields("CommercialChatVoucher");
     foreach ($objects["CommercialChatVoucher"]["Fields"] as $fid => $field) {
         if (isset($field["Code"])) {
             $_voucherA->{$fid} = $field["Code"];
         } else {
             $_voucherA->{$fid} = $field["Example"];
         }
     }
     $_voucherOut = ApiV2::ClearObject($objects["CommercialChatVoucher"]["Fields"], $_voucherA, true);
     $objects["CommercialChatVoucher"]["Functions"]["Create"]["Version"] = "5.2.5.0";
     $objects["CommercialChatVoucher"]["Functions"]["Create"]["Title"] = "Create Commercial Chat Voucher";
     $objects["CommercialChatVoucher"]["Functions"]["Create"]["Call"] = "POST /api/v2/api.php";
     $objects["CommercialChatVoucher"]["Functions"]["Create"]["Param"] = "POST /api/v2/api.php p_commercialchatvoucher_create=1";
     $objects["CommercialChatVoucher"]["Functions"]["Create"]["CURL"] = "curl {yourdomain}{livezilla_folder}/api/v2/api.php<br>-d {authenthication}<br>-d p_commercialchatvoucher_create=1";
     $objects["CommercialChatVoucher"]["Functions"]["Create"]["Response"] = "JSON code of chat voucher";
     $objects["CommercialChatVoucher"]["Functions"]["Create"]["Fields"] = array("true");
     $objects["CommercialChatVoucher"]["Functions"]["Create"]["Filters"] = array();
     $objects["CommercialChatVoucher"]["Functions"]["Create"]["OutputObject"] = array("CommercialChatVoucher" => $_voucherOut);
     $objects["CommercialChatVoucher"]["Functions"]["Create"]["InputObject"] = $objects["CommercialChatVoucher"]["Fields"];
     $objects["KnowledgeBaseEntry"]["Fields"] = ApiV2::GetObjectFields("KnowledgeBaseEntry");
     $_kbEntryOut = ApiV2::ClearObject($objects["KnowledgeBaseEntry"]["Fields"], $_kbEntry, true);
     $objects["KnowledgeBaseEntry"]["Functions"]["List"]["Version"] = "6.0.0.0";
     $objects["KnowledgeBaseEntry"]["Functions"]["List"]["Title"] = "List Knowledgebase Entries";
     $objects["KnowledgeBaseEntry"]["Functions"]["List"]["Call"] = "POST /api/v2/api.php";
     $objects["KnowledgeBaseEntry"]["Functions"]["List"]["Param"] = "POST /api/v2/api.php p_knowledgebase_entries_list=1";
     $objects["KnowledgeBaseEntry"]["Functions"]["List"]["CURL"] = "curl {yourdomain}{livezilla_folder}/api/v2/api.php<br>-d {authenthication}<br>-d p_knowledgebase_entries_list=1";
     $objects["KnowledgeBaseEntry"]["Functions"]["List"]["Response"] = "JSON code of List of Knowledgebase entries";
     $objects["KnowledgeBaseEntry"]["Functions"]["List"]["Fields"] = array("true");
     $objects["KnowledgeBaseEntry"]["Functions"]["List"]["Filters"] = array("Show Private" => array("Input" => true, "Output" => false, "Type" => "bool", "Comment" => "Private entries will be returned.", "Required" => false, "Example" => "1"), "Id" => array("Input" => true, "Output" => false, "Type" => "string", "Comment" => "Will return the entry matching the given Id.", "Required" => false, "Example" => "14t733d03f64db3b72af327d0d835ebd"), "Limit" => array("Type" => "int", "Required" => false, "Comment" => "Maximum number of tickets to return.", "Example" => "100"), "Offset" => array("Type" => "int", "Required" => false, "Comment" => "Index where to start returning records (requires Limit parameter).", "Example" => "101"));
     $objects["KnowledgeBaseEntry"]["Functions"]["List"]["OutputObject"] = array("KnowledgeBaseEntries" => array(array("KnowledgeBaseEntry" => $_kbEntryOut)));
     $objects["KnowledgeBaseEntry"]["Functions"]["Create"]["Version"] = "6.0.0.0";
     $objects["KnowledgeBaseEntry"]["Functions"]["Create"]["Title"] = "Create Knowledgebase Entry";
     $objects["KnowledgeBaseEntry"]["Functions"]["Create"]["Call"] = "POST /api/v2/api.php";
     $objects["KnowledgeBaseEntry"]["Functions"]["Create"]["Param"] = "POST /api/v2/api.php p_knowledgebase_entry_create=1";
     $objects["KnowledgeBaseEntry"]["Functions"]["Create"]["CURL"] = "curl {yourdomain}{livezilla_folder}/api/v2/api.php<br>-d {authenthication}<br>-d p_knowledgebase_entry_create=1";
     $objects["KnowledgeBaseEntry"]["Functions"]["Create"]["Response"] = "JSON code of chat voucher";
     $objects["KnowledgeBaseEntry"]["Functions"]["Create"]["Fields"] = array("true");
     $objects["KnowledgeBaseEntry"]["Functions"]["Create"]["Filters"] = array();
     $objects["KnowledgeBaseEntry"]["Functions"]["Create"]["OutputObject"] = array("KnowledgeBaseEntry" => $_kbEntryOut);
     $objects["KnowledgeBaseEntry"]["Functions"]["Create"]["InputObject"] = $objects["KnowledgeBaseEntry"]["Fields"];
     return $objects;
 }
Ejemplo n.º 4
0
 static function GetObjectDefinitions($_operatorA, $_chatA, $_ticketA, $_voucherA, $_ticketMessageA, $_ticketEditorA)
 {
     $objects["Operator"]["Fields"] = ApiV2::GetObjectFields("Operator");
     foreach ($objects["Operator"]["Fields"] as $fid => $field) {
         if (isset($field["Code"])) {
             $_operatorA->{$fid} = $field["Code"];
         } else {
             $_operatorA->{$fid} = $field["Example"];
         }
     }
     $_operatorOut = ApiV2::ClearObject($objects["Operator"]["Fields"], $_operatorA, true);
     $objects["Operator"]["Functions"]["List"]["Version"] = "5.2.5.0";
     $objects["Operator"]["Functions"]["List"]["Title"] = "List Operators";
     $objects["Operator"]["Functions"]["List"]["Call"] = "POST /api/v2/api.php";
     $objects["Operator"]["Functions"]["List"]["Param"] = "POST /api/v2/api.php p_operators_list=1";
     $objects["Operator"]["Functions"]["List"]["CURL"] = "curl {yourdomain}{livezilla_folder}/api/v2/api.php<br>-d {authenthication}<br>-d p_operators_list=1";
     $objects["Operator"]["Functions"]["List"]["Response"] = "JSON code of operator(s)";
     $objects["Operator"]["Functions"]["List"]["Fields"] = array("true");
     $objects["Operator"]["Functions"]["List"]["Filters"] = array("UserId" => array("Type" => "string", "Required" => false, "Comment" => "Response will be the Operator matching this login Id.", "Example" => "john_doe"), "Status" => array("Type" => "int", "Required" => false, "Comment" => "Returns all operators having this status.", "Example" => "1"), "Group" => array("Type" => "string", "Required" => false, "Comment" => "Returns all operators that are member of this group.", "Example" => "groupid1"));
     $objects["Operator"]["Functions"]["List"]["OutputObject"] = array("Operators" => array(array("Operator" => $_operatorOut), array("Operator" => $_operatorOut)));
     $objects["Operator"]["Functions"]["Create"]["Version"] = "5.2.5.0";
     $objects["Operator"]["Functions"]["Create"]["Title"] = "Create Operator";
     $objects["Operator"]["Functions"]["Create"]["Call"] = "POST /api/v2/api.php";
     $objects["Operator"]["Functions"]["Create"]["Param"] = "POST /api/v2/api.php p_operator_create=1";
     $objects["Operator"]["Functions"]["Create"]["CURL"] = "curl {yourdomain}{livezilla_folder}/api/v2/api.php<br>-d {authenthication}<br>-d p_operator_create=1";
     $objects["Operator"]["Functions"]["Create"]["Response"] = "JSON code of created operator";
     $objects["Operator"]["Functions"]["Create"]["Fields"] = array("true");
     $objects["Operator"]["Functions"]["Create"]["Filters"] = array();
     $objects["Operator"]["Functions"]["Create"]["OutputObject"] = array("Operator" => $_operatorOut);
     $objects["Operator"]["Functions"]["Create"]["InputObject"] = $objects["Operator"]["Fields"];
     $objects["Operator"]["Functions"]["Delete"]["Version"] = "5.2.5.0";
     $objects["Operator"]["Functions"]["Delete"]["Title"] = "Delete Operator";
     $objects["Operator"]["Functions"]["Delete"]["Call"] = "POST /api/v2/api.php";
     $objects["Operator"]["Functions"]["Delete"]["Param"] = "POST /api/v2/api.php p_operator_delete=1";
     $objects["Operator"]["Functions"]["Delete"]["CURL"] = "curl {yourdomain}{livezilla_folder}/api/v2/api.php<br>-d {authenthication}<br>-d p_operator_delete=1";
     $objects["Operator"]["Functions"]["Delete"]["Response"] = "JSON code of deleted operator";
     $objects["Operator"]["Functions"]["Delete"]["Fields"] = array("UserId");
     $objects["Operator"]["Functions"]["Delete"]["Filters"] = array();
     $objects["Operator"]["Functions"]["Delete"]["OutputObject"] = array("Operator" => $_operatorOut);
     $objects["Operator"]["Functions"]["Delete"]["InputObject"] = array("UserId" => array("Input" => true, "Output" => true, "Type" => "string", "Description" => "The alphanumeric login ID of the operators.", "Required" => true, "Example" => "john_doe"));
     $objects["Chat"]["Fields"] = ApiV2::GetObjectFields("Chat");
     foreach ($objects["Chat"]["Fields"] as $fid => $field) {
         if (isset($field["Code"])) {
             $_chatA->{$fid} = $field["Code"];
         } else {
             $_chatA->{$fid} = $field["Example"];
         }
     }
     $_chatOut = ApiV2::ClearObject($objects["Chat"]["Fields"], $_chatA);
     $objects["Chat"]["Functions"]["List"]["Version"] = "5.2.5.0";
     $objects["Chat"]["Functions"]["List"]["Title"] = "List Chat Transcripts";
     $objects["Chat"]["Functions"]["List"]["Call"] = "POST /api/v2/api.php";
     $objects["Chat"]["Functions"]["List"]["Param"] = "POST /api/v2/api.php p_chats_list=1";
     $objects["Chat"]["Functions"]["List"]["CURL"] = "curl {yourdomain}{livezilla_folder}/api/v2/api.php<br>-d {authenthication}<br>-d p_chats_list=1<br>-d p_limit=10";
     $objects["Chat"]["Functions"]["List"]["Response"] = "JSON code of chat transcript(s)";
     $objects["Chat"]["Functions"]["List"]["Fields"] = array("true");
     $objects["Chat"]["Functions"]["List"]["Filters"] = array("ChatId" => array("Type" => "string", "Required" => false, "Comment" => "Return the chat matching this chat Id.", "Example" => "11123"), "Group" => array("Type" => "string", "Required" => false, "Comment" => "Return all chats of this group.", "Example" => "groupid1"), "Operator" => array("Type" => "string", "Required" => false, "Comment" => "Return all chats of this operator.", "Example" => "john_doe"), "Start After" => array("Type" => "string", "Required" => false, "Comment" => "Return all chats with start time later than<br>YYYY-MM-DD HH:MM:SS", "Example" => "2014-01-01 23:59:59"), "Start Before" => array("Type" => "string", "Required" => false, "Comment" => "Return all chats with start time earlier than<br>YYYY-MM-DD HH:MM:SS", "Example" => "2014-01-03 00:00:00"), "Output" => array("Type" => "string", "Required" => false, "Comment" => "HTML | Plaintext", "Example" => "Plaintext"), "Limit" => array("Type" => "int", "Required" => false, "Comment" => "Maximum number of chats to return.", "Example" => "100"));
     $objects["Chat"]["Functions"]["List"]["OutputObject"] = array("Chats" => array(array("Chat" => $_chatOut)));
     $objects["Ticket"]["Fields"] = ApiV2::GetObjectFields("Ticket");
     foreach ($objects["Ticket"]["Fields"] as $fid => $field) {
         if (isset($field["Code"])) {
             $_ticketA->{$fid} = $field["Code"];
         } else {
             $_ticketA->{$fid} = $field["Example"];
         }
     }
     $_ticketA = ApiV2::ClearObject($objects["Ticket"]["Fields"], $_ticketA);
     $objects["Ticket"]["Functions"]["List"]["Version"] = "5.2.5.0";
     $objects["Ticket"]["Functions"]["List"]["Title"] = "List Tickets";
     $objects["Ticket"]["Functions"]["List"]["Call"] = "POST /api/v2/api.php";
     $objects["Ticket"]["Functions"]["List"]["Param"] = "POST /api/v2/api.php p_tickets_list=1";
     $objects["Ticket"]["Functions"]["List"]["CURL"] = "curl {yourdomain}{livezilla_folder}/api/v2/api.php<br>-d {authenthication}<br>-d p_tickets_list=1<br>-d p_limit=10";
     $objects["Ticket"]["Functions"]["List"]["Response"] = "JSON code of ticket(s)";
     $objects["Ticket"]["Functions"]["List"]["Fields"] = array("true");
     $objects["Ticket"]["Functions"]["List"]["Filters"] = array("Id" => array("Type" => "string", "Required" => false, "Comment" => "Return the ticket matching this Id.", "Example" => "11123"), "Group" => array("Type" => "string", "Required" => false, "Comment" => "Return all tickets of this group.", "Example" => "groupid1"), "Operator" => array("Type" => "string", "Required" => false, "Comment" => "Return all tickets of this operator.", "Example" => "john_doe"), "Created After" => array("Type" => "string", "Required" => false, "Comment" => "Return all tickets created later than<br>YYYY-MM-DD HH:MM:SS", "Example" => "2014-01-01 23:59:59"), "Created Before" => array("Type" => "string", "Required" => false, "Comment" => "Return all tickets created earlier than<br>YYYY-MM-DD HH:MM:SS", "Example" => "2014-01-03 00:00:00"), "Limit" => array("Type" => "int", "Required" => false, "Comment" => "Maximum number of tickets to return.", "Example" => "100"));
     $objects["Ticket"]["Functions"]["List"]["OutputObject"] = array("Tickets" => array(array("Ticket" => $_ticketA)));
     $objects["Ticket"]["Functions"]["Create"]["Version"] = "5.2.5.0";
     $objects["Ticket"]["Functions"]["Create"]["Title"] = "Create Ticket";
     $objects["Ticket"]["Functions"]["Create"]["Call"] = "POST /api/v2/api.php";
     $objects["Ticket"]["Functions"]["Create"]["Param"] = "POST /api/v2/api.php p_ticket_create=1";
     $objects["Ticket"]["Functions"]["Create"]["CURL"] = "curl {yourdomain}{livezilla_folder}/api/v2/api.php<br>-d {authenthication}<br>-d p_ticket_create=1";
     $objects["Ticket"]["Functions"]["Create"]["Response"] = "JSON code of created ticket";
     $objects["Ticket"]["Functions"]["Create"]["Fields"] = array("true");
     $objects["Ticket"]["Functions"]["Create"]["Filters"] = array();
     $objects["Ticket"]["Functions"]["Create"]["OutputObject"] = array("Ticket" => $_ticketA);
     $objects["Ticket"]["Functions"]["Create"]["InputObject"] = $objects["Ticket"]["Fields"];
     $objects["TicketMessage"]["Fields"] = ApiV2::GetObjectFields("TicketMessage");
     $objects["TicketMessage"]["Parent"] = "Ticket";
     foreach ($objects["TicketMessage"]["Fields"] as $fid => $field) {
         if (isset($field["Code"])) {
             $_ticketMessageA->{$fid} = $field["Code"];
         } else {
             $_ticketMessageA->{$fid} = $field["Example"];
         }
     }
     $_ticketMessageA = ApiV2::ClearObject($objects["TicketMessage"]["Fields"], $_ticketMessageA);
     $objects["TicketMessage"]["Functions"]["Create"]["Version"] = "5.2.5.0";
     $objects["TicketMessage"]["Functions"]["Create"]["Title"] = "Create Ticket Message";
     $objects["TicketMessage"]["Functions"]["Create"]["Call"] = "POST /api/v2/api.php";
     $objects["TicketMessage"]["Functions"]["Create"]["Param"] = "POST /api/v2/api.php p_ticketmessage_create=1";
     $objects["TicketMessage"]["Functions"]["Create"]["CURL"] = "curl {yourdomain}{livezilla_folder}/api/v2/api.php<br>-d {authenthication}<br>-d p_ticketmessage_create=1";
     $objects["TicketMessage"]["Functions"]["Create"]["Response"] = "JSON code of created ticket message";
     $objects["TicketMessage"]["Functions"]["Create"]["Fields"] = array("true");
     $objects["TicketMessage"]["Functions"]["Create"]["Filters"] = array();
     $objects["TicketMessage"]["Functions"]["Create"]["OutputObject"] = array("TicketMessage" => $_ticketMessageA);
     $objects["TicketMessage"]["Functions"]["Create"]["InputObject"] = $objects["TicketMessage"]["Fields"];
     $objects["TicketEditor"]["Fields"] = ApiV2::GetObjectFields("TicketEditor");
     $objects["TicketEditor"]["Parent"] = "Ticket";
     foreach ($objects["TicketEditor"]["Fields"] as $fid => $field) {
         if (isset($field["Code"])) {
             $_ticketEditorA->{$fid} = $field["Code"];
         } else {
             $_ticketEditorA->{$fid} = $field["Example"];
         }
     }
     $_ticketEditorA = ApiV2::ClearObject($objects["TicketEditor"]["Fields"], $_ticketEditorA);
     $objects["TicketEditor"]["Functions"]["Assign"]["Version"] = "5.2.5.0";
     $objects["TicketEditor"]["Functions"]["Assign"]["Title"] = "Assign Ticket Editor";
     $objects["TicketEditor"]["Functions"]["Assign"]["Call"] = "POST /api/v2/api.php";
     $objects["TicketEditor"]["Functions"]["Assign"]["Param"] = "POST /api/v2/api.php p_ticketeditor_assign=1";
     $objects["TicketEditor"]["Functions"]["Assign"]["CURL"] = "curl {yourdomain}{livezilla_folder}/api/v2/api.php<br>-d {authenthication}<br>-d p_ticketeditor_assign=1";
     $objects["TicketEditor"]["Functions"]["Assign"]["Response"] = "JSON code of ticket editor";
     $objects["TicketEditor"]["Functions"]["Assign"]["Fields"] = array("true");
     $objects["TicketEditor"]["Functions"]["Assign"]["Filters"] = array();
     $objects["TicketEditor"]["Functions"]["Assign"]["OutputObject"] = array("TicketEditor" => $_ticketEditorA);
     $objects["TicketEditor"]["Functions"]["Assign"]["InputObject"] = $objects["TicketEditor"]["Fields"];
     $objects["CommercialChatVoucher"]["Fields"] = ApiV2::GetObjectFields("CommercialChatVoucher");
     foreach ($objects["CommercialChatVoucher"]["Fields"] as $fid => $field) {
         if (isset($field["Code"])) {
             $_voucherA->{$fid} = $field["Code"];
         } else {
             $_voucherA->{$fid} = $field["Example"];
         }
     }
     $_voucherOut = ApiV2::ClearObject($objects["CommercialChatVoucher"]["Fields"], $_voucherA, true);
     $objects["CommercialChatVoucher"]["Functions"]["Create"]["Version"] = "5.2.5.0";
     $objects["CommercialChatVoucher"]["Functions"]["Create"]["Title"] = "Create Commercial Chat Voucher";
     $objects["CommercialChatVoucher"]["Functions"]["Create"]["Call"] = "POST /api/v2/api.php";
     $objects["CommercialChatVoucher"]["Functions"]["Create"]["Param"] = "POST /api/v2/api.php p_commercialchatvoucher_create=1";
     $objects["CommercialChatVoucher"]["Functions"]["Create"]["CURL"] = "curl {yourdomain}{livezilla_folder}/api/v2/api.php<br>-d {authenthication}<br>-d p_voucher_create=1";
     $objects["CommercialChatVoucher"]["Functions"]["Create"]["Response"] = "JSON code of chat voucher";
     $objects["CommercialChatVoucher"]["Functions"]["Create"]["Fields"] = array("true");
     $objects["CommercialChatVoucher"]["Functions"]["Create"]["Filters"] = array();
     $objects["CommercialChatVoucher"]["Functions"]["Create"]["OutputObject"] = array("CommercialChatVoucher" => $_voucherOut);
     $objects["CommercialChatVoucher"]["Functions"]["Create"]["InputObject"] = $objects["CommercialChatVoucher"]["Fields"];
     return $objects;
 }