示例#1
0
// Authorize with OnSip PBX
// Pass unique contextId to be associated with this request,
// the Iq Result will have the same contextId
void OnSipXmppBase::Authorize(int contextId,IqHandler* iqHandler)
{
	Logger::log_debug("OnSipXmppBase::Authorize contextId %d iqh=%p",contextId, iqHandler );
	_checkThread.CheckSameThread();	// Verify we are single threaded for this object

	// Create DataForm
	DataForm* settings = new DataForm( gloox::TypeSubmit );
	// Add sip address field
	DataFormField* dff = new DataFormField( "sip-address", m_login.SIPAddress() );
	settings->addField(dff);
	// Add password field
	dff = new DataFormField( "password", m_login.m_password, EmptyString, DataFormField::TypeTextPrivate );
	settings->addField(dff);
	// Add command
	JID toJid( "commands.auth.xmpp.onsip.com" );
	IQ iq( IQ::Set, toJid, m_gloox->getID() );
	Adhoc::Command *cmd = new Adhoc::Command( "authorize-plain", EmptyString, Adhoc::Command::Executing, settings );
	iq.addExtension( cmd );

	Logger::log_debug("OnSipXmppBase::Authorize sending");
	_ASSERT( iqHandler != NULL );
	m_gloox->send( iq, iqHandler, contextId );
}
int main()
{
  ClientBase* cb = new ClientBase();
  PubSub::Manager* psm = new PubSub::Manager( cb );
  RH* rh = new RH();

  cb->setTest( SubscriptionDefault );
  psm->subscribe( jid, node, rh );

  cb->setTest( SubscriptionJID );
  psm->subscribe( jid, node, rh, jid2 );

  cb->setTest( SubscriptionSubType );
  psm->subscribe( jid, node, rh, jid2, PubSub::SubscriptionItems );

  cb->setTest( SubscriptionDepth );
  psm->subscribe( jid, node, rh, jid2, PubSub::SubscriptionItems, 0 );

  cb->setTest( UnsubscriptionDefault );
  psm->unsubscribe( jid, node, subid, rh );

  cb->setTest( UnsubscriptionJID );
  psm->unsubscribe( jid, node, subid, rh, jid2 );

  cb->setTest( GetSubscriptionOptions );
  psm->getSubscriptionOptions( jid, jid2, node, rh );

  DataForm* df = new DataForm( TypeSubmit );
  df->addField( DataFormField::TypeHidden, "FORM_TYPE",
      "http://jabber.org/protocol/pubsub#subscribe_options" );
  cb->setTest( SetSubscriptionOptions );
  psm->setSubscriptionOptions( jid, jid2, node, df, rh );

  cb->setTest( GetSubscriptionList );
  psm->getSubscriptions( jid, rh );

  cb->setTest( GetSubscriberList );
  psm->getSubscribers( jid, node, rh );

  PubSub::SubscriberList sl;
  sl.push_back( PubSub::Subscriber( jid2, PubSub::SubscriptionNone, "abc" ) );
  cb->setTest( SetSubscriberList );
  psm->setSubscribers( jid, node, sl, rh );

  cb->setTest( GetAffiliationList );
  psm->getAffiliations( jid, rh );

  cb->setTest( GetAffiliateList );
  psm->getAffiliates( jid, node, rh );

  PubSub::AffiliateList al;
  al.push_back( PubSub::Affiliate( jid2, PubSub::AffiliationOwner ) );
  cb->setTest( SetAffiliateList );
  psm->setAffiliates( jid, node, al, rh );

  cb->setTest( GetNodeConfig );
  psm->getNodeConfig( jid, node, rh );

  df = new DataForm( TypeSubmit );
  df->addField( DataFormField::TypeHidden, "FORM_TYPE",
      "http://jabber.org/protocol/pubsub#node_config" );
  df->addField( DataFormField::TypeNone, "pubsub#title", "Princely Musings (Atom)" );
  cb->setTest( SetNodeConfig );
  psm->setNodeConfig( jid, node, df, rh );

  cb->setTest( DefaultNodeConfig );
  psm->getDefaultNodeConfig( jid, PubSub::NodeLeaf, rh );


  delete rh;
  delete psm;




  if( cb->failed )
    printf( "PubSub::Manager: %d test(s) failed\n", cb->failed );
  else
    printf( "PubSub::Manager: OK\n" );

  delete cb;

}