/* $Id: doxygen.hpp 4704 2014-01-16 05:30:46Z ming $ */
/*
 * Copyright (C) 2008-2012 Teluu Inc. (http://www.teluu.com)
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */
#ifndef __PJSUA2_DOXYGEN_HPP__
#define __PJSUA2_DOXYGEN_HPP__

/**
 * @file pjsua2/doxygen.hpp
 * @brief PJSUA2 Doxygen documentation
 */

/**
@mainpage pjsua2 API

This documentation contains the API Reference for pjsua2. Please
go to <b>Modules</b> section above for navigation.

For more info regarding pjsua2, including some tutorials, please
see The PJSIP Book.
*/


/**
 * @defgroup PJSUA2_Ref pjsua2 API Reference
 */

/**
 * @defgroup PJSUA2_DS Data Structure
 * @ingroup PJSUA2_Ref
 */


/**
 * @}  PJSUA2_CFG
 */

#endif	/* __PJSUA2_DOXYGEN_HPP__ */
