Add callback for status changes

This commit is contained in:
Luke Fitzgerald 2010-06-16 18:05:29 +01:00
parent b313bc3cde
commit 6dbf0ab1fe
2 changed files with 22 additions and 5 deletions

View File

@ -900,6 +900,14 @@ class MSN {
$this->addContact($email, 1, $email, true);
$this->connectToSBSession('Passive', $sb_ip, $sb_port, $email, array('sid' => $sid, 'ticket' => $ticket));
break;
case 'NLN':
// NS: <<< NLN {status} {email} {networkid} {nickname} {clientid} {dpobj}
// NS: <<< NLN NLN darkip@inflatablegoldfish.com 1 Luke 2685403136 0
@list(/* NLN */, $email, $network, $nickname, /* clientid */, /* dbobj */) = @explode(' ', $data);
$this->callHandler('StatusChange', array('screenname' => $email, 'network' => $network, 'nickname' => $nickname));
break;
case 'OUT':
// force logout from NS
// NS: <<< OUT xxx
@ -3092,7 +3100,7 @@ X-OIM-Sequence-Num: 1
*
* Handler List
* IMIn, Pong, ConnectFailed, Reconnect,
* AddedToList, RemovedFromList
* AddedToList, RemovedFromList, StatusChange
*
* @param string $event Event name
* @param string $handler User function to call

View File

@ -93,7 +93,7 @@ class MsnManager extends ImManager {
*
* @return void
*/
function connect() {
public function connect() {
if (!$this->conn) {
$this->conn = new MSN(
array(
@ -161,7 +161,7 @@ class MsnManager extends ImManager {
* @param void $data Not used (there to keep callback happy)
* @return void
*/
function handle_connect_failed($data) {
private function handle_connect_failed($data) {
common_log(LOG_NOTICE, 'MSN connect failed, retrying');
}
@ -171,9 +171,18 @@ class MsnManager extends ImManager {
* @param void $data Not used (there to keep callback happy)
* @return void
*/
function handle_reconnect($data) {
private function handle_reconnect($data) {
common_log(LOG_NOTICE, 'MSN reconnecting');
}
/**
* Called by callback when contact changes status
*
* @param array $data Data
*/
private function handle_status_change($data) {
}
/**
* Send a message using the daemon
@ -181,7 +190,7 @@ class MsnManager extends ImManager {
* @param $data Message
* @return boolean true on success
*/
function send_raw_message($data) {
public function send_raw_message($data) {
$this->connect();
if (!$this->conn) {
return false;