[asterisk-commits] mnicholson: branch irroot/t38gateway-trunk r323840 - /team/irroot/t38gateway-...
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Wed Jun 15 13:59:33 CDT 2011
Author: mnicholson
Date: Wed Jun 15 13:59:27 2011
New Revision: 323840
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=323840
Log:
only call ast_channel_get_t38_state() once and store the result
Modified:
team/irroot/t38gateway-trunk/res/res_fax_spandsp.c
Modified: team/irroot/t38gateway-trunk/res/res_fax_spandsp.c
URL: http://svnview.digium.com/svn/asterisk/team/irroot/t38gateway-trunk/res/res_fax_spandsp.c?view=diff&rev=323840&r1=323839&r2=323840
==============================================================================
--- team/irroot/t38gateway-trunk/res/res_fax_spandsp.c (original)
+++ team/irroot/t38gateway-trunk/res/res_fax_spandsp.c Wed Jun 15 13:59:27 2011
@@ -135,6 +135,7 @@
struct spandsp_pvt {
unsigned int ist38:1;
unsigned int isdone:1;
+ enum ast_t38_state ast_t38_state;
fax_state_t fax_state;
t38_terminal_state_t t38_state;
t30_state_t *t30_state;
@@ -204,7 +205,7 @@
if (s->details->caps & AST_FAX_TECH_GATEWAY) {
ast_set_flag(f, AST_FAX_FRFLAG_GATEWAY);
- if (ast_channel_get_t38_state(s->chan) == T38_STATE_NEGOTIATED) {
+ if (p->ast_t38_state == T38_STATE_NEGOTIATED) {
return ast_write(s->chan, f);
} else {
int res = ast_queue_frame(s->chan, f);
@@ -647,7 +648,6 @@
struct spandsp_pvt *p = s->tech_pvt;
struct ast_fax_t38_parameters *t38_param;
int i;
- enum ast_t38_state t38state;
struct ast_channel *peer;
static struct ast_generator t30_gen = {
alloc: spandsp_fax_gw_gen_alloc,
@@ -668,12 +668,12 @@
p->ist38 = 1;
ast_channel_lock(s->chan);
- t38state = ast_channel_get_t38_state(s->chan);
+ p->ast_t38_state = ast_channel_get_t38_state(s->chan);
if (!(peer = ast_bridged_channel(s->chan))) {
ast_channel_unlock(s->chan);
return -1;
}
- ast_activate_generator((t38state == T38_STATE_NEGOTIATED) ? peer : s->chan, &t30_gen , s);
+ ast_activate_generator((p->ast_t38_state == T38_STATE_NEGOTIATED) ? peer : s->chan, &t30_gen , s);
ast_channel_unlock(s->chan);
span_log_set_message_handler(&p->t38_gw_state.logging, spandsp_log);
@@ -681,7 +681,7 @@
span_log_set_level(&p->t38_gw_state.logging, SPAN_LOG_WARNING + option_debug);
span_log_set_level(&p->t38_core_state->logging, SPAN_LOG_WARNING + option_debug);
- t38_param = (ast_channel_get_t38_state(s->chan) == T38_STATE_NEGOTIATED) ? &s->details->our_t38_parameters : &s->details->their_t38_parameters;
+ t38_param = (p->ast_t38_state == T38_STATE_NEGOTIATED) ? &s->details->our_t38_parameters : &s->details->their_t38_parameters;
t38_set_t38_version(p->t38_core_state, t38_param->version);
t38_gateway_set_ecm_capability(&p->t38_gw_state, s->details->option.ecm);
t38_set_max_datagram_size(p->t38_core_state, t38_param->max_ifp);
More information about the asterisk-commits
mailing list