⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pjsua.h

📁 基于sip协议的网络电话源码
💻 H
📖 第 1 页 / 共 5 页
字号:
     * This field should be specified if registration is desired. If the     * value is empty, no account registration will be performed.     */    pj_str_t	    reg_uri;    /**     * If this flag is set, the presence information of this account will     * be PUBLISH-ed to the server where the account belongs.     */    pj_bool_t	    publish_enabled;    /**      * Optional URI to be put as Contact for this account. It is recommended     * that this field is left empty, so that the value will be calculated     * automatically based on the transport address.     */    pj_str_t	    force_contact;    /**     * Number of proxies in the proxy array below.     *     * \par Python:     * Not applicable, as \a proxy is implemented as list of strings.     */    unsigned	    proxy_cnt;    /**      * Optional URI of the proxies to be visited for all outgoing requests      * that are using this account (REGISTER, INVITE, etc). Application need      * to specify these proxies if the service provider requires that requests     * destined towards its network should go through certain proxies first     * (for example, border controllers).     *     * These proxies will be put in the route set for this account, with      * maintaining the orders (the first proxy in the array will be visited     * first). If global outbound proxies are configured in pjsua_config,     * then these account proxies will be placed after the global outbound     * proxies in the routeset.     *     * \par Python:     * This will be list of strings.     */    pj_str_t	    proxy[PJSUA_ACC_MAX_PROXIES];    /**      * Optional interval for registration, in seconds. If the value is zero,      * default interval will be used (PJSUA_REG_INTERVAL, 55 seconds).     */    unsigned	    reg_timeout;    /**      * Number of credentials in the credential array.     *     * \par Python:     * Not applicable, since \a cred_info is a list of credentials.     */    unsigned	    cred_count;    /**      * Array of credentials. If registration is desired, normally there should     * be at least one credential specified, to successfully authenticate     * against the service provider. More credentials can be specified, for     * example when the requests are expected to be challenged by the     * proxies in the route set.     *     * \par Python:     * This field is a list of credentials.     */    pjsip_cred_info cred_info[PJSUA_ACC_MAX_PROXIES];    /**     * Optionally bind this account to specific transport. This normally is     * not a good idea, as account should be able to send requests using     * any available transports according to the destination. But some     * application may want to have explicit control over the transport to     * use, so in that case it can set this field.     *     * Default: -1 (PJSUA_INVALID_ID)     *     * @see pjsua_acc_set_transport()     */    pjsua_transport_id  transport_id;} pjsua_acc_config;/** * Call this function to initialize account config with default values. * * @param cfg	    The account config to be initialized. * * \par Python: * In Python, this function both creates and initializes the account * config: * \code    acc_cfg = py_pjsua.acc_config_default() * \endcode */PJ_INLINE(void) pjsua_acc_config_default(pjsua_acc_config *cfg){    pj_bzero(cfg, sizeof(*cfg));    cfg->reg_timeout = PJSUA_REG_INTERVAL;    cfg->transport_id = PJSUA_INVALID_ID;}/** * Account info. Application can query account info by calling  * #pjsua_acc_get_info(). * * \par Python: * The data type in Python is <tt>py_pjsua.Acc_Info</tt>. */typedef struct pjsua_acc_info{    /**      * The account ID.      */    pjsua_acc_id	id;    /**     * Flag to indicate whether this is the default account.     */    pj_bool_t		is_default;    /**      * Account URI      */    pj_str_t		acc_uri;    /**      * Flag to tell whether this account has registration setting     * (reg_uri is not empty).     */    pj_bool_t		has_registration;    /**     * An up to date expiration interval for account registration session.     */    int			expires;    /**     * Last registration status code. If status code is zero, the account     * is currently not registered. Any other value indicates the SIP     * status code of the registration.     */    pjsip_status_code	status;    /**     * String describing the registration status.     */    pj_str_t		status_text;    /**     * Presence online status for this account.     */    pj_bool_t		online_status;    /**     * Buffer that is used internally to store the status text.     */    char		buf_[PJ_ERR_MSG_SIZE];} pjsua_acc_info;/** * Get number of current accounts. * * @return		Current number of accounts. * * \par Python: * \code    count = py_pjsua.acc_get_count() * \endcode */PJ_DECL(unsigned) pjsua_acc_get_count(void);/** * Check if the specified account ID is valid. * * @param acc_id	Account ID to check. * * @return		Non-zero if account ID is valid. * * \par Python: * \code    is_valid = py_pjsua.acc_is_valid(acc_id) * \endcode */PJ_DECL(pj_bool_t) pjsua_acc_is_valid(pjsua_acc_id acc_id);/** * Set default account to be used when incoming and outgoing * requests doesn't match any accounts. * * @param acc_id	The account ID to be used as default. * * @return		PJ_SUCCESS on success. * * \par Python: * \code    status = py_pjsua.acc_set_default(acc_id) * \endcode */PJ_DECL(pj_status_t) pjsua_acc_set_default(pjsua_acc_id acc_id);/** * Get default account to be used when receiving incoming requests (calls), * when the destination of the incoming call doesn't match any other * accounts. * * @return		The default account ID, or PJSUA_INVALID_ID if no *			default account is configured. * * \par Python: * \code    acc_id = py_pjsua.acc_get_default() * \endcode */PJ_DECL(pjsua_acc_id) pjsua_acc_get_default(void);/** * Add a new account to pjsua. PJSUA must have been initialized (with * #pjsua_init()) before calling this function. If registration is configured * for this account, this function would also start the SIP registration * session with the SIP registrar server. This SIP registration session * will be maintained internally by the library, and application doesn't * need to do anything to maintain the registration session. * * * @param acc_cfg	Account configuration. * @param is_default	If non-zero, this account will be set as the default *			account. The default account will be used when sending *			outgoing requests (e.g. making call) when no account is *			specified, and when receiving incoming requests when the *			request does not match any accounts. It is recommended *			that default account is set to local/LAN account. * @param p_acc_id	Pointer to receive account ID of the new account. * * @return		PJ_SUCCESS on success, or the appropriate error code. * * \par Python: * The function returns (status, account_id) tuple: * \code    status, account_id = py_pjsua.acc_add(acc_cfg, is_default) * \endcode */PJ_DECL(pj_status_t) pjsua_acc_add(const pjsua_acc_config *acc_cfg,				   pj_bool_t is_default,				   pjsua_acc_id *p_acc_id);/** * Add a local account. A local account is used to identify local endpoint * instead of a specific user, and for this reason, a transport ID is needed * to obtain the local address information. * * @param tid		Transport ID to generate account address. * @param is_default	If non-zero, this account will be set as the default *			account. The default account will be used when sending *			outgoing requests (e.g. making call) when no account is *			specified, and when receiving incoming requests when the *			request does not match any accounts. It is recommended *			that default account is set to local/LAN account. * @param p_acc_id	Pointer to receive account ID of the new account. * * @return		PJ_SUCCESS on success, or the appropriate error code. * * \par Python: * The function returns (status, account_id) tuple: * \code    status, account_id = py_pjsua.acc_add_local(tid, is_default) * \endcode */PJ_DECL(pj_status_t) pjsua_acc_add_local(pjsua_transport_id tid,					 pj_bool_t is_default,					 pjsua_acc_id *p_acc_id);/** * Delete an account. This will unregister the account from the SIP server, * if necessary, and terminate server side presence subscriptions associated * with this account. * * @param acc_id	Id of the account to be deleted. * * @return		PJ_SUCCESS on success, or the appropriate error code. * * \par Python: * \code    status = py_pjsua.acc_del(acc_id) * \endcode */PJ_DECL(pj_status_t) pjsua_acc_del(pjsua_acc_id acc_id);/** * Modify account information. * * @param acc_id	Id of the account to be modified. * @param acc_cfg	New account configuration. * * @return		PJ_SUCCESS on success, or the appropriate error code. * * \par Python: * \code    status = py_pjsua.acc_modify(acc_id, acc_cfg) * \endcode */PJ_DECL(pj_status_t) pjsua_acc_modify(pjsua_acc_id acc_id,				      const pjsua_acc_config *acc_cfg);/** * Modify account's presence status to be advertised to remote/presence * subscribers. This would trigger the sending of outgoing NOTIFY request * if there are server side presence subscription for this account. * * @param acc_id	The account ID. * @param is_online	True of false. * * @return		PJ_SUCCESS on success, or the appropriate error code. * * \par Python: * \code    status = py_pjsua.acc_set_online_status(acc_id, is_online) * \endcode */PJ_DECL(pj_status_t) pjsua_acc_set_online_status(pjsua_acc_id acc_id,						 pj_bool_t is_online);/** * Update registration or perform unregistration. If registration is * configured for this account, then initial SIP REGISTER will be sent * when the account is added with #pjsua_acc_add(). Application normally * only need to call this function if it wants to manually update the * registration or to unregister from the server. * * @param acc_id	The account ID. * @param renew		If renew argument is zero, this will start  *			unregistration process. * * @return		PJ_SUCCESS on success, or the appropriate error code. * * \par Python: * \code    status = py_pjsua.acc_set_registration(acc_id, renew) * \endcode */PJ_DECL(pj_status_t) pjsua_acc_set_registration(pjsua_acc_id acc_id, 						pj_bool_t renew);/** * Get information about the specified account. * * @param acc_id	Account identification. * @param info		Pointer to receive account information. * * @return		PJ_SUCCESS on success, or the appropriate error code. * * \par Python: * \code    acc_info = py_pjsua.acc_get_info(acc_id) * \endcode * The function returns None if account ID is not valid. */PJ_DECL(pj_status_t) pjsua_acc_get_info(pjsua_acc_id acc_id,					pjsua_acc_info *info);/** * Enumerate all account currently active in the library. This will fill * the array with the account Ids, and application can then query the * account information for each id with #pjsua_acc_get_info(). * * @see pjsua_acc_enum_info(). * * @param ids		Array of account IDs to be initialized. * @param count		In input, specifies the maximum number of elements. *			On return, it contains the actual number of elements. * * @return		PJ_SUCCESS on success, or the appropriate error code. * * \par Python: * The function takes no argument and returns list of account Ids: * \code  [acc_ids] = py_pjsua.enum_accs() * \endcode */PJ_DECL(pj_status_t) pjsua_enum_accs(pjsua_acc_id ids[],				     unsigned *count );/** * Enumerate account informations. * * @param info		Array of account infos to be initialized. * @param count		In input, specifies the maximum number of elements. *			On return, it contains the actual number of elements. * * @return		PJ_SUCCESS on success, or the appropriate error code. * * \par Python: * The function takes no argument and returns list of account infos: * \code    [acc_info] = py_pjsua.acc_enum_info() * \endcode */PJ_DECL(pj_status_t) pjsua_acc_enum_info( pjsua_acc_info info[],					  unsigned *count );/** * This is an internal function to find the most appropriate account to * used to reach to the specified URL. * * @param url		The remote URL to reach. * * @return		Account id. * * \par Python: * \code    acc_id = py_pjsua.acc_find_for_outgoing(url) * \endcode */PJ_DECL(pjsua_acc_id) pjsua_acc_find_for_outgoing(const pj_str_t *url);/** * This is an internal function to find the most appropriate account to be * used to handle incoming calls. * * @param rdata		The incoming request message. * * @return		Account id. * * \par Python: * \code    acc_id = py_pjsua.acc_find_for_outgoing(url) * \endcode */PJ_DECL(pjsua_acc_id) pjsua_acc_find_for_incoming(pjsip_rx_data *rdata);/** * Create arbitrary requests using the account. Application should only use * this function to create auxiliary requests outside d

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -