[Freeswitch-svn] [commit] r13242 - freeswitch/trunk/src/mod/applications/mod_fifo
Author: anthm Date: Wed May 6 10:24:04 2009 New Revision: 13242 Log: MODAPP-272 Modified: freeswitch/trunk/src/mod/applications/mod_fifo/mod_fifo.c Modified: freeswitch/trunk/src/mod/applications/mod_fifo/mod_fifo.c ============================================================================== --- freeswitch/trunk/src/mod/applications/mod_fifo/mod_fifo.c (original) +++ freeswitch/trunk/src/mod/applications/mod_fifo/mod_fifo.c Wed May 6 10:24:04 2009 @@ -1014,7 +1014,7 @@ } - if (cd.do_orbit && cd.orbit_exten) { + if ((switch_true(switch_channel_get_variable(channel, "fifo_caller_exit_to_orbit")) || cd.do_orbit) && cd.orbit_exten) { if (orbit_ann) { switch_ivr_play_file(session, NULL, orbit_ann, NULL); } @@ -1975,7 +1975,7 @@ static void fifo_member_add(char *fifo_name, char *originate_string, int simo_count, int timeout, int lag, time_t expires) { char digest[SWITCH_MD5_DIGEST_STRING_SIZE] = { 0 }; - char *sql; + char *sql, *name_dup, *p; fifo_node_t *node = NULL; switch_md5_string(digest, (void *) originate_string, strlen(originate_string)); @@ -1994,15 +1994,23 @@ node->has_outbound = 1; + name_dup = strdup(fifo_name); + if ((p = strchr(name_dup, '@'))) { + *p = '\0'; + } + sql = switch_mprintf("insert into fifo_outbound " "(uuid, fifo_name, originate_string, simo_count, use_count, timeout, " "lag, next_avail, expires, static, outbound_call_count, outbound_fail_count, hostname) " - "values ('%q','%q','%q',%d,%d,%d,%d,%d,%ld,0,0,0,'%q')", - digest, fifo_name, originate_string, simo_count, 0, timeout, lag, 0, (long)expires, globals.hostname + "values ('%q','%q'," + "'{execute_on_answer=''unset fifo_hangup_check'',fifo_hangup_check=''%q'',origination_caller_id_name=Queue," + "origination_caller_id_number=''fifo+%q''}%q',%d,%d,%d,%d,%d,%ld,0,0,0,'%q')", + digest, fifo_name, fifo_name, name_dup, originate_string, simo_count, 0, timeout, lag, 0, (long)expires, globals.hostname ); switch_assert(sql); fifo_execute_sql(sql, globals.sql_mutex); free(sql); + free(name_dup); }
participants (1)
-
FreeSWITCH SVN