[commit] r4807 - in freeswitch/trunk/src: . include mod/codecs/mod_g729 mod/endpoints/mod_dingaling
Author: anthm Date: Fri Mar 30 12:41:12 2007 New Revision: 4807 Modified: freeswitch/trunk/src/include/switch_utils.h freeswitch/trunk/src/mod/codecs/mod_g729/mod_g729.c freeswitch/trunk/src/mod/endpoints/mod_dingaling/Makefile freeswitch/trunk/src/mod/endpoints/mod_dingaling/mod_dingaling.c freeswitch/trunk/src/switch_core_io.c Log: cleanup Modified: freeswitch/trunk/src/include/switch_utils.h ============================================================================== --- freeswitch/trunk/src/include/switch_utils.h (original) +++ freeswitch/trunk/src/include/switch_utils.h Fri Mar 30 12:41:12 2007 @@ -180,6 +180,60 @@ */ #define switch_safe_free(it) if (it) {free(it);it=NULL;} + +/*! + \brief Test if one string is inside another with extra case checking + \param s the inner string + \param q the big string + \return SWITCH_TRUE or SWITCH_FALSE +*/ +static inline switch_bool_t switch_strstr(char *s, char *q) +{ + char *p, *S = NULL, *Q = NULL; + switch_bool_t tf = SWITCH_FALSE; + + if (strstr(s, q)) { + return SWITCH_TRUE; + } + + S = strdup(s); + + assert(S != NULL); + + for (p = S; p && *p; p++) { + *p = (char)toupper(*p); + } + + if (strstr(S, q)) { + tf = SWITCH_TRUE; + goto done; + } + + Q = strdup(q); + assert(Q != NULL); + + for (p = Q; p && *p; p++) { + *p = (char)toupper(*p); + } + + if (strstr(s, Q)) { + tf = SWITCH_TRUE; + goto done; + } + + if (strstr(S, Q)) { + tf = SWITCH_TRUE; + goto done; + } + + done: + switch_safe_free(S); + switch_safe_free(Q); + + return tf; +} + + /*! \brief Test for NULL or zero length string \param s the string to test Modified: freeswitch/trunk/src/mod/codecs/mod_g729/mod_g729.c ============================================================================== --- freeswitch/trunk/src/mod/codecs/mod_g729/mod_g729.c (original) +++ freeswitch/trunk/src/mod/codecs/mod_g729/mod_g729.c Fri Mar 30 12:41:12 2007 @@ -154,10 +154,9 @@ } - if (encoded_data_len % 2 == 0) { - - if (encoded_data_len % 12 == 0) { + + if (encoded_data_len == 2 || encoded_data_len % 12 == 0) { return SWITCH_STATUS_BREAK; //divisor = 12; //plen = 10; Modified: freeswitch/trunk/src/mod/endpoints/mod_dingaling/Makefile ============================================================================== --- freeswitch/trunk/src/mod/endpoints/mod_dingaling/Makefile (original) +++ freeswitch/trunk/src/mod/endpoints/mod_dingaling/Makefile Fri Mar 30 12:41:12 2007 @@ -1,13 +1,20 @@ BASE=../../../.. -DING_DIR=$(BASE)/libs/libdingaling -DINGLA=$(DING_DIR)/libdingaling.la +LOCAL_CFLAGS = `$(BASE)/libs/apr/apr-1-config --cflags --cppflags --includes` +LOCAL_CFLAGS += `$(BASE)/libs/apr-util/apu-1-config --includes` -LOCAL_CFLAGS=-I$(DING_DIR)/src -LOCAL_LIBADD=$(DINGLA) +IKS_DIR=$(BASE)/libs/iksemel +IKS_LA=$(IKS_DIR)/src/libiksemel.la +DING_DIR=$(BASE)/libs/libdingaling +LOCAL_CFLAGS += -I$(DING_DIR)/src -I$(BASE)/libs/iksemel/include +LOCAL_OBJS=$(DING_DIR)/src/libdingaling.o $(IKS_LA) include $(BASE)/build/modmake.rules -$(DINGLA): $(DING_DIR) $(DING_DIR)/.update - cd $(DING_DIR) && $(MAKE) - $(TOUCH_TARGET) +$(IKS_LA): $(IKS_DIR) $(IKS_DIR)/.update + @cd $(IKS_DIR) && $(MAKE) + @$(TOUCH_TARGET) + + + + Modified: freeswitch/trunk/src/mod/endpoints/mod_dingaling/mod_dingaling.c ============================================================================== --- freeswitch/trunk/src/mod/endpoints/mod_dingaling/mod_dingaling.c (original) +++ freeswitch/trunk/src/mod/endpoints/mod_dingaling/mod_dingaling.c Fri Mar 30 12:41:12 2007 @@ -2167,28 +2167,31 @@ break; case LDL_SIGNAL_SUBSCRIBE: + if (profile->user_flags & LDL_FLAG_COMPONENT && ldl_jid_domcmp(from, to)) { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Attempt to add presence from/to our own domain [%s][%s]\n", from, to); + } else { + if ((sql = switch_mprintf("delete from subscriptions where sub_from='%q' and sub_to='%q';\n" + "insert into subscriptions values('%q','%q','%q','%q');\n", from, to, from, to, msg, subject))) { + execute_sql(profile->dbname, sql, profile->mutex); + switch_core_db_free(sql); + } - if ((sql = switch_mprintf("delete from subscriptions where sub_from='%q' and sub_to='%q';\n" - "insert into subscriptions values('%q','%q','%q','%q');\n", from, to, from, to, msg, subject))) { - execute_sql(profile->dbname, sql, profile->mutex); - switch_core_db_free(sql); - } - - if (is_special(to)) { - ldl_handle_send_presence(profile->handle, to, from, NULL, NULL, "Click To Call"); - } + if (is_special(to)) { + ldl_handle_send_presence(profile->handle, to, from, NULL, NULL, "Click To Call"); + } #if 0 - if (is_special(to)) { - if (switch_event_create(&event, SWITCH_EVENT_PRESENCE_IN) == SWITCH_STATUS_SUCCESS) { - switch_event_add_header(event, SWITCH_STACK_BOTTOM, "proto", MDL_CHAT_PROTO); - switch_event_add_header(event, SWITCH_STACK_BOTTOM, "login", "%s", profile->login); - switch_event_add_header(event, SWITCH_STACK_BOTTOM, "from", "%s", to); - //switch_event_add_header(event, SWITCH_STACK_BOTTOM, "rpid", "unknown"); - switch_event_add_header(event, SWITCH_STACK_BOTTOM, "status", "Click To Call"); - switch_event_fire(&event); + if (is_special(to)) { + if (switch_event_create(&event, SWITCH_EVENT_PRESENCE_IN) == SWITCH_STATUS_SUCCESS) { + switch_event_add_header(event, SWITCH_STACK_BOTTOM, "proto", MDL_CHAT_PROTO); + switch_event_add_header(event, SWITCH_STACK_BOTTOM, "login", "%s", profile->login); + switch_event_add_header(event, SWITCH_STACK_BOTTOM, "from", "%s", to); + //switch_event_add_header(event, SWITCH_STACK_BOTTOM, "rpid", "unknown"); + switch_event_add_header(event, SWITCH_STACK_BOTTOM, "status", "Click To Call"); + switch_event_fire(&event); + } } - } #endif + } break; case LDL_SIGNAL_ROSTER: if (switch_event_create(&event, SWITCH_EVENT_ROSTER) == SWITCH_STATUS_SUCCESS) { Modified: freeswitch/trunk/src/switch_core_io.c ============================================================================== --- freeswitch/trunk/src/switch_core_io.c (original) +++ freeswitch/trunk/src/switch_core_io.c Fri Mar 30 12:41:12 2007 @@ -133,6 +133,15 @@ case SWITCH_STATUS_NOOP: status = SWITCH_STATUS_SUCCESS; break; + case SWITCH_STATUS_BREAK: + memset(session->raw_read_frame.data, 255, read_frame->codec->implementation->bytes_per_frame); + session->raw_read_frame.datalen = read_frame->codec->implementation->bytes_per_frame; + session->raw_read_frame.samples = session->raw_read_frame.datalen / sizeof(int16_t); + session->raw_read_frame.timestamp = read_frame->timestamp; + session->raw_read_frame.rate = read_frame->rate; + read_frame = &session->raw_read_frame; + status = SWITCH_STATUS_SUCCESS; + break; default: switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Codec %s decoder error!\n", session->read_codec->codec_interface->interface_name); goto done;
participants (1)
-
Freeswitch SVN