mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-19 11:42:27 +00:00
res_fax.c: Add chan locked precondition comments.
Change-Id: Ic10ae434536bbf7fb7055d6ab36cc50b8748a4e7
This commit is contained in:
@@ -2880,11 +2880,17 @@ static struct fax_gateway *fax_gateway_new(struct ast_channel *chan, struct ast_
|
|||||||
return gateway;
|
return gateway;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*! \brief Create a fax session and start T.30<->T.38 gateway mode
|
/*!
|
||||||
|
* \brief Create a fax session and start T.30<->T.38 gateway mode
|
||||||
|
*
|
||||||
* \param gateway a fax gateway object
|
* \param gateway a fax gateway object
|
||||||
* \param details fax session details
|
* \param details fax session details
|
||||||
* \param chan active channel
|
* \param chan active channel
|
||||||
* \return 0 on error 1 on success*/
|
*
|
||||||
|
* \pre chan is locked on entry
|
||||||
|
*
|
||||||
|
* \return 0 on error 1 on success
|
||||||
|
*/
|
||||||
static int fax_gateway_start(struct fax_gateway *gateway, struct ast_fax_session_details *details, struct ast_channel *chan)
|
static int fax_gateway_start(struct fax_gateway *gateway, struct ast_fax_session_details *details, struct ast_channel *chan)
|
||||||
{
|
{
|
||||||
struct ast_fax_session *s;
|
struct ast_fax_session *s;
|
||||||
@@ -2928,6 +2934,7 @@ static int fax_gateway_start(struct fax_gateway *gateway, struct ast_fax_session
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*! \pre chan is locked on entry */
|
||||||
static struct ast_frame *fax_gateway_request_t38(struct fax_gateway *gateway, struct ast_channel *chan, struct ast_frame *f)
|
static struct ast_frame *fax_gateway_request_t38(struct fax_gateway *gateway, struct ast_channel *chan, struct ast_frame *f)
|
||||||
{
|
{
|
||||||
struct ast_frame *fp;
|
struct ast_frame *fp;
|
||||||
@@ -2966,6 +2973,7 @@ static struct ast_frame *fax_gateway_request_t38(struct fax_gateway *gateway, st
|
|||||||
return fp;
|
return fp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*! \pre chan is locked on entry */
|
||||||
static struct ast_frame *fax_gateway_detect_v21(struct fax_gateway *gateway, struct ast_channel *chan, struct ast_channel *peer, struct ast_channel *active, struct ast_frame *f)
|
static struct ast_frame *fax_gateway_detect_v21(struct fax_gateway *gateway, struct ast_channel *chan, struct ast_channel *peer, struct ast_channel *active, struct ast_frame *f)
|
||||||
{
|
{
|
||||||
struct ast_channel *other = (active == chan) ? peer : chan;
|
struct ast_channel *other = (active == chan) ? peer : chan;
|
||||||
@@ -3002,12 +3010,17 @@ static int fax_gateway_indicate_t38(struct ast_channel *chan, struct ast_channel
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*! \brief T38 Gateway Negotiate t38 parameters
|
/*!
|
||||||
|
* \brief T38 Gateway Negotiate t38 parameters
|
||||||
|
*
|
||||||
* \param gateway gateway object
|
* \param gateway gateway object
|
||||||
* \param chan channel running the gateway
|
* \param chan channel running the gateway
|
||||||
* \param peer channel im bridged too
|
* \param peer channel im bridged too
|
||||||
* \param active channel the frame originated on
|
* \param active channel the frame originated on
|
||||||
* \param f the control frame to process
|
* \param f the control frame to process
|
||||||
|
*
|
||||||
|
* \pre chan is locked on entry
|
||||||
|
*
|
||||||
* \return processed control frame or null frame
|
* \return processed control frame or null frame
|
||||||
*/
|
*/
|
||||||
static struct ast_frame *fax_gateway_detect_t38(struct fax_gateway *gateway, struct ast_channel *chan, struct ast_channel *peer, struct ast_channel *active, struct ast_frame *f)
|
static struct ast_frame *fax_gateway_detect_t38(struct fax_gateway *gateway, struct ast_channel *chan, struct ast_channel *peer, struct ast_channel *active, struct ast_frame *f)
|
||||||
@@ -3250,7 +3263,8 @@ static void fax_gateway_framehook_destroy(void *data)
|
|||||||
ao2_ref(gateway, -1);
|
ao2_ref(gateway, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*! \brief T.30<->T.38 gateway framehook.
|
/*!
|
||||||
|
* \brief T.30<->T.38 gateway framehook.
|
||||||
*
|
*
|
||||||
* Intercept packets on bridged channels and determine if a T.38 gateway is
|
* Intercept packets on bridged channels and determine if a T.38 gateway is
|
||||||
* required. If a gateway is required, start a gateway and handle T.38
|
* required. If a gateway is required, start a gateway and handle T.38
|
||||||
@@ -3261,6 +3275,8 @@ static void fax_gateway_framehook_destroy(void *data)
|
|||||||
* \param event framehook event
|
* \param event framehook event
|
||||||
* \param data framehook data (struct fax_gateway *)
|
* \param data framehook data (struct fax_gateway *)
|
||||||
*
|
*
|
||||||
|
* \pre chan is locked on entry
|
||||||
|
*
|
||||||
* \return processed frame or NULL when f is NULL or a null frame
|
* \return processed frame or NULL when f is NULL or a null frame
|
||||||
*/
|
*/
|
||||||
static struct ast_frame *fax_gateway_framehook(struct ast_channel *chan, struct ast_frame *f, enum ast_framehook_event event, void *data)
|
static struct ast_frame *fax_gateway_framehook(struct ast_channel *chan, struct ast_frame *f, enum ast_framehook_event event, void *data)
|
||||||
@@ -3491,9 +3507,9 @@ static int fax_gateway_attach(struct ast_channel *chan, struct ast_fax_session_d
|
|||||||
.disable_inheritance = 1, /* Masquerade inheritance is handled through the datastore fixup */
|
.disable_inheritance = 1, /* Masquerade inheritance is handled through the datastore fixup */
|
||||||
};
|
};
|
||||||
|
|
||||||
if (global_fax_debug) {
|
if (global_fax_debug) {
|
||||||
details->option.debug = AST_FAX_OPTFLAG_TRUE;
|
details->option.debug = AST_FAX_OPTFLAG_TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
ast_string_field_set(details, result, "SUCCESS");
|
ast_string_field_set(details, result, "SUCCESS");
|
||||||
ast_string_field_set(details, resultstr, "gateway operation started successfully");
|
ast_string_field_set(details, resultstr, "gateway operation started successfully");
|
||||||
|
Reference in New Issue
Block a user