Version 2 (modified by bennylp, 13 years ago) (diff)


SIP Presence

Subscribing to Buddy's Presence Status

To subscribe to buddy's presence status, you need to add a buddy object, install callback to handle buddy's event, and start subscribing to buddy's presence status. The snippet below shows a sample code to achieve these.

class MyBuddyCallback(pjsua.BuddyCallback):
    def __init__(self, buddy=None):
        pjsua.BuddyCallback.__init__(self, buddy)

    def on_state(self):
        print "Buddy",, "is",

    uri = '"Alice" <>'
    buddy = acc.add_buddy(uri, cb=MyBuddyCallback())

except pjsua.Error, err:
    print 'Error adding buddy:', err

For more information please see Buddy class and BuddyCallback class reference documentation.

Responding to Presence Subscription Request

By default, incoming presence subscription to an account will be accepted automatically. You will probably want to change this behavior, for example only to automatically accept subscription if it comes from one of the buddy in the buddy list, and for anything else prompt the user if he/she wants to accept the request.

This can be done by implementing the on_incoming_subscribe() method of the AccountCallback class.