<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -47,6 +47,32 @@ Then to actually put the Agent to work...
 This creates a new BasicAgent instance and sends it _listen_ to make it start accepting messages.
 Note that by default when an agent is listening, it ignores all errors.  (In the future, I'll have it log them.)
 
+There are also event callbacks for agents.  These events are based on XMPP presence messages.  So, as of this writing,
+the list of allowed callbacks is: signon, signoff, subscribe, unsubscribe, subscription_approval, subscription_denial,
+status_change, and status_message_change.
+
+You can use these callbacks as follows:
+
+&lt;pre&gt;
+  &lt;code&gt;
+    class CoolAgent &lt; Uppercut::Agent
+      on :subscribe do |c|
+        c.send 'Hey dude, thanks for subscribing!'
+      end
+
+      on :signoff do |c|
+        puts &quot;LOG: #{c.to} signed off.&quot;
+      end
+    end
+  &lt;/code&gt;
+&lt;/pre&gt;
+
+Some callbacks only work if the user allows the agent to subscribe to their presence notifications.  This happens
+automatically when a user subscribes to your agent.  (Depending on their client) they'll be presented with a choice
+to authorize or deny the subscription.  You can catch their answer with the 'subscription_approval' and 'subscription_denial'
+callbacks.  Without their approving the subscription, your 'signon', 'signoff', 'status_change', and 'status_message_change'
+callbacks will not be fired by them.  I suggest using the 'subscription_denial' callback to inform them of that.
+
 
 h2. Making a Notifier
 </diff>
      <filename>README.textile</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>88030c4a926267e6d7ffcb6ab557758821446183</id>
    </parent>
  </parents>
  <author>
    <name>Tyler McMullen</name>
    <email>tbmcmullen@gmail.com</email>
  </author>
  <url>http://github.com/tyler/uppercut/commit/acca833d1b20292827ee3fe3b96356e3c9dc049e</url>
  <id>acca833d1b20292827ee3fe3b96356e3c9dc049e</id>
  <committed-date>2008-12-27T01:44:40-08:00</committed-date>
  <authored-date>2008-12-27T01:44:40-08:00</authored-date>
  <message>Minor documentation for new callbacks.</message>
  <tree>8b2bafc0bdf3ea58671ff3f06fb2f98ace44c74a</tree>
  <committer>
    <name>Tyler McMullen</name>
    <email>tbmcmullen@gmail.com</email>
  </committer>
</commit>
