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

📄 sip_inv.h

📁 基于sip协议的网络电话源码
💻 H
📖 第 1 页 / 共 2 页
字号:
 * * @param endpt		If tdata is not NULL, application needs to specify *			how to create the response. Either dlg or endpt *			argument MUST be specified, with dlg argument takes *			precedence when both are specified. * * @param tdata		If this argument is not NULL, this function will  *			create the appropriate non-2xx final response message *			when the verification fails. * * @return		If everything has been negotiated successfully,  *			the function will return PJ_SUCCESS. Otherwise it  *			will return the reason of the failure as the return *			code. * *			This function is capable to create the appropriate  *			response message when the verification has failed.  *			If tdata is specified, then a non-2xx final response *			will be created and put in this argument upon return, *			when the verification has failed.  * *			If a dialog has been created prior to calling this  *			function, then it MUST be specified in dlg argument.  *			Otherwise application MUST specify the endpt argument *			(this is useful e.g. when application wants to send  *			the response statelessly). */PJ_DECL(pj_status_t) pjsip_inv_verify_request(	pjsip_rx_data *rdata,						unsigned *options,						const pjmedia_sdp_session *sdp,						pjsip_dialog *dlg,						pjsip_endpoint *endpt,						pjsip_tx_data **tdata);/** * Create UAS invite session for the specified dialog in dlg. Application  * SHOULD call the verification function before calling this function,  * to ensure that it can create the session successfully. * * @param dlg		The dialog to be used. * @param rdata		Application MUST specify the received INVITE request  *			in rdata. The invite session needs to inspect the  *			received request to see if the request contains  *			features that it supports. * @param local_sdp	If application has determined its media capability,  *			it can specify this capability in this argument.  *			If SDP is received in the initial INVITE, the UAS  *			capability specified in this argument doesn't have to *			match the received offer; the SDP negotiator is able  *			to rearrange the media lines in the answer so that it *			matches the offer.  * @param options	The options argument is bitmask combination of SIP  *			features in pjsip_inv_options enumeration. * @param p_inv		Pointer to receive the newly created invite session. * * @return		On successful, the invite session will be put in  *			p_inv argument and the function will return PJ_SUCCESS. *			Otherwise the appropriate error status will be returned  *			on failure. */PJ_DECL(pj_status_t) pjsip_inv_create_uas(pjsip_dialog *dlg,					  pjsip_rx_data *rdata,					  const pjmedia_sdp_session *local_sdp,					  unsigned options,					  pjsip_inv_session **p_inv);/** * Forcefully terminate and destroy INVITE session, regardless of * the state of the session. Note that this function should only be used * when there is failure in the INVITE session creation. After the * invite session has been created and initialized, normally application * SHOULD use #pjsip_inv_end_session() to end the INVITE session instead. * * Note also that this function may terminate the underlying dialog, if * there are no other sessions in the dialog. * * @param inv		The invite session. * @param st_code	Status code for the reason of the termination. * @param notify	If set to non-zero, then on_state_changed()  *			callback will be called. * * @return		PJ_SUCCESS if the INVITE session has been *			terminated. */PJ_DECL(pj_status_t) pjsip_inv_terminate( pjsip_inv_session *inv,				          int st_code,					  pj_bool_t notify );/** * Create the initial INVITE request for this session. This function can only  * be called for UAC session. If local media capability is specified when  * the invite session was created, then this function will put an SDP offer  * in the outgoing INVITE request. Otherwise the outgoing request will not  * contain SDP body. * * @param inv		The UAC invite session. * @param p_tdata	The initial INVITE request will be put in this  *			argument if it can be created successfully. * * @return		PJ_SUCCESS if the INVITE request can be created. */PJ_DECL(pj_status_t) pjsip_inv_invite( pjsip_inv_session *inv,				       pjsip_tx_data **p_tdata );/** * Create the initial response message for the incoming INVITE request in * rdata with  status code st_code and optional status text st_text. Use * #pjsip_answer() to create subsequent response message. */PJ_DECL(pj_status_t) pjsip_inv_initial_answer(	pjsip_inv_session *inv,						pjsip_rx_data *rdata,						int st_code,						const pj_str_t *st_text,						const pjmedia_sdp_session *sdp,						pjsip_tx_data **p_tdata);/** * Create a response message to the initial INVITE request. This function * can only be called for the initial INVITE request, as subsequent * re-INVITE request will be answered automatically. * * @param inv		The UAS invite session. * @param st_code	The st_code contains the status code to be sent,  *			which may be a provisional or final response.  * @param st_text	If custom status text is desired, application can  *			specify the text in st_text; otherwise if this  *			argument is NULL, default status text will be used. * @param local_sdp	If application has specified its media capability *			during creation of UAS invite session, the local_sdp *			argument MUST be NULL. This is because application  *			can not perform more than one SDP offer/answer session *			in a single INVITE transaction. *			If application has not specified its media capability  *			during creation of UAS invite session, it MAY or MUST *			specify its capability in local_sdp argument,  *			depending whether st_code indicates a 2xx final  *			response. * @param p_tdata	Pointer to receive the response message created by *			this function. * * @return		PJ_SUCCESS if response message was created *			successfully. */PJ_DECL(pj_status_t) pjsip_inv_answer(	pjsip_inv_session *inv,					int st_code,					const pj_str_t *st_text,					const pjmedia_sdp_session *local_sdp,					pjsip_tx_data **p_tdata );/** * Set local answer to respond to remote SDP offer, to be carried by  * subsequent response (or request). * * @param inv		The invite session. * @param sdp		The SDP description which will be set as answer *			to remote. * * @return		PJ_SUCCESS if local answer can be accepted by *			SDP negotiator. */PJ_DECL(pj_status_t) pjsip_inv_set_sdp_answer(pjsip_inv_session *inv,					      const pjmedia_sdp_session *sdp );/** * Create a SIP message to initiate invite session termination. Depending on  * the state of the session, this function may return CANCEL request,  * a non-2xx final response, or a BYE request. If the session has not answered * the incoming INVITE, this function creates the non-2xx final response with  * the specified status code in st_code and optional status text in st_text. * * @param inv		The invite session. * @param st_code	Status code to be used for terminating the session. * @param st_text	Optional status text. * @param p_tdata	Pointer to receive the message to be created. * * @return		PJ_SUCCESS if termination message can be created. */PJ_DECL(pj_status_t) pjsip_inv_end_session( pjsip_inv_session *inv,					    int st_code,					    const pj_str_t *st_text,					    pjsip_tx_data **p_tdata );/** * Create a re-INVITE request.  * * @param inv		The invite session. * @param new_contact	If application wants to update its local contact and *			inform peer to perform target refresh with a new  *			contact, it can specify the new contact in this  *			argument; otherwise this argument must be NULL. * @param new_offer	Application MAY initiate a new SDP offer/answer  *			session in the request when there is no pending  *			answer to be sent or received. It can detect this  *			condition by observing the state of the SDP  *			negotiator of the invite session. If new offer  *			should be sent to remote, the offer must be specified *			in this argument, otherwise it must be NULL. * @param p_tdata	Pointer to receive the re-INVITE request message to *			be created. * * @return		PJ_SUCCESS if a re-INVITE request with the specified *			characteristics (e.g. to contain new offer) can be  *			created. */PJ_DECL(pj_status_t) pjsip_inv_reinvite(pjsip_inv_session *inv,					const pj_str_t *new_contact,					const pjmedia_sdp_session *new_offer,					pjsip_tx_data **p_tdata );/** * Create an UPDATE request.  * * @param inv		The invite session. * @param new_contact	If application wants to update its local contact *			and inform peer to perform target refresh with a new *			contact, it can specify the new contact in this  *			argument; otherwise this argument must be NULL. * @param new_offer	Application MAY initiate a new SDP offer/answer  *			session in the request when there is no pending answer *			to be sent or received. It can detect this condition *			by observing the state of the SDP negotiator of the  *			invite session. If new offer should be sent to remote, *			the offer must be specified in this argument; otherwise *			this argument must be NULL. * @param p_tdata	Pointer to receive the UPDATE request message to *			be created. * * @return		PJ_SUCCESS if a UPDATE request with the specified *			characteristics (e.g. to contain new offer) can be  *			created. */PJ_DECL(pj_status_t) pjsip_inv_update (	pjsip_inv_session *inv,					const pj_str_t *new_contact,					const pjmedia_sdp_session *new_offer,					pjsip_tx_data **p_tdata );/** * Send request or response message in tdata.  * * @param inv		The invite session. * @param tdata		The message to be sent. * * @return		PJ_SUCCESS if transaction can be initiated  *			successfully to send this message. Note that the *			actual final state of the transaction itself will *			be reported later, in on_tsx_state_changed() *			callback. */PJ_DECL(pj_status_t) pjsip_inv_send_msg(pjsip_inv_session *inv,					pjsip_tx_data *tdata);/** * Get the invite session for the dialog, if any. * * @param dlg		The dialog which invite session is being queried. * * @return		The invite session instance which has been  *			associated with this dialog, or NULL. */PJ_DECL(pjsip_inv_session*) pjsip_dlg_get_inv_session(pjsip_dialog *dlg);/** * Get the invite session instance associated with transaction tsx, if any. * * @param tsx		The transaction, which invite session is being  *			queried. * * @return		The invite session instance which has been  *			associated with this transaction, or NULL. */PJ_DECL(pjsip_inv_session*) pjsip_tsx_get_inv_session(pjsip_transaction *tsx);/** * Get state names for INVITE session state. * * @param state		The invite state. * * @return		String describing the state. */PJ_DECL(const char *) pjsip_inv_state_name(pjsip_inv_state state);/** * This is a utility function to create SIP body for SDP content. * * @param pool		Pool to allocate memory. * @param sdp		SDP session to be put in the SIP message body. * @param p_body	Pointer to receive SIP message body containing *			the SDP session. * * @return		PJ_SUCCESS on success. */PJ_DECL(pj_status_t) pjsip_create_sdp_body(pj_pool_t *pool,					   pjmedia_sdp_session *sdp,					   pjsip_msg_body **p_body);PJ_END_DECL/** * @} */#endif	/* __SIP_INVITE_SESSION_H__ */

⌨️ 快捷键说明

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