diff --git a/XMPPHP/XMPP.php b/XMPPHP/XMPP.php index ed7f55b..73fbd26 100644 --- a/XMPPHP/XMPP.php +++ b/XMPPHP/XMPP.php @@ -187,7 +187,7 @@ class XMPPHP_XMPP extends XMPPHP_XMLStream { * @param string $show * @param string $to */ - public function presence($status = null, $show = 'available', $to = null, $type='available') { + public function presence($status = null, $show = 'available', $to = null, $type='available', $priority=0) { if($type == 'available') $type = ''; $to = htmlspecialchars($to); $status = htmlspecialchars($status); @@ -202,6 +202,7 @@ class XMPPHP_XMPP extends XMPPHP_XMLStream { $out .= ">"; if($show != 'available') $out .= "$show"; if($status) $out .= "$status"; + if($priority) $out .= "$priority"; $out .= ""; } @@ -221,6 +222,7 @@ class XMPPHP_XMPP extends XMPPHP_XMLStream { } $payload['from'] = $xml->attrs['from']; $payload['body'] = $xml->sub('body')->data; + $payload['xml'] = $xml; $this->log->log("Message: {$xml->sub('body')->data}", XMPPHP_Log::LEVEL_DEBUG); $this->event('message', $payload); } @@ -236,6 +238,7 @@ class XMPPHP_XMPP extends XMPPHP_XMLStream { $payload['from'] = $xml->attrs['from']; $payload['status'] = (isset($xml->sub('status')->data)) ? $xml->sub('status')->data : ''; $payload['priority'] = (isset($xml->sub('priority')->data)) ? intval($xml->sub('priority')->data) : 0; + $payload['xml'] = $xml; if($this->track_presence) { $this->roster->setPresence($payload['from'], $payload['priority'], $payload['show'], $payload['status']); }