[Freeswitch-svn] [commit] r1153 - in freeswitch/branches/james: . libs/iax/src libs/libdingaling/src src src/mod/endpoints/mod_dingaling src/mod/endpoints/mod_wanpipe w32/vsnet w32/vsnet/Tools/gnutls
james at freeswitch.org
james at freeswitch.org
Wed Jun 7 14:22:25 EDT 2006
Author: james
Date: Fri Apr 14 05:24:38 2006
New Revision: 1153
Added:
freeswitch/branches/james/w32/vsnet/Tools/gnutls/
- copied from r1150, /freeswitch/trunk/w32/vsnet/Tools/gnutls/
freeswitch/branches/james/w32/vsnet/Tools/gnutls/gnutls.zip
- copied unchanged from r1150, /freeswitch/trunk/w32/vsnet/Tools/gnutls/gnutls.zip
freeswitch/branches/james/w32/vsnet/Tools/gnutls/libcrypt.zip
- copied unchanged from r1150, /freeswitch/trunk/w32/vsnet/Tools/gnutls/libcrypt.zip
freeswitch/branches/james/w32/vsnet/Tools/gnutls/libgpg-error.zip
- copied unchanged from r1150, /freeswitch/trunk/w32/vsnet/Tools/gnutls/libgpg-error.zip
Modified:
freeswitch/branches/james/ (props changed)
freeswitch/branches/james/libs/iax/src/iax.c
freeswitch/branches/james/libs/iax/src/winpoop.h
freeswitch/branches/james/libs/libdingaling/src/libdingaling.c
freeswitch/branches/james/libs/libdingaling/src/libdingaling.h
freeswitch/branches/james/src/mod/endpoints/mod_dingaling/mod_dingaling.c
freeswitch/branches/james/src/mod/endpoints/mod_wanpipe/mod_wanpipe.c
freeswitch/branches/james/src/switch_rtp.c
freeswitch/branches/james/w32/vsnet/GetLibs.vbs
Log:
Updated branch to trunk.
Modified: freeswitch/branches/james/libs/iax/src/iax.c
==============================================================================
--- freeswitch/branches/james/libs/iax/src/iax.c (original)
+++ freeswitch/branches/james/libs/iax/src/iax.c Fri Apr 14 05:24:38 2006
@@ -36,7 +36,7 @@
#endif
void gettimeofday(struct timeval *tv, void /*struct timezone*/ *tz);
-
+#include "winpoop.h"
#else
Modified: freeswitch/branches/james/libs/iax/src/winpoop.h
==============================================================================
--- freeswitch/branches/james/libs/iax/src/winpoop.h (original)
+++ freeswitch/branches/james/libs/iax/src/winpoop.h Fri Apr 14 05:24:38 2006
@@ -24,7 +24,6 @@
static INLINE int inet_aton(char *cp, struct in_addr *inp)
{
- int res;
int a1, a2, a3, a4;
unsigned int saddr;
if (sscanf(cp, "%d.%d.%d.%d", &a1, &a2, &a3, &a4) != 4)
Modified: freeswitch/branches/james/libs/libdingaling/src/libdingaling.c
==============================================================================
--- freeswitch/branches/james/libs/libdingaling/src/libdingaling.c (original)
+++ freeswitch/branches/james/libs/libdingaling/src/libdingaling.c Fri Apr 14 05:24:38 2006
@@ -72,6 +72,7 @@
int debug;
apr_pool_t *memory_pool;
unsigned int id;
+ ldl_logger_t logger;
} globals;
struct packet_node {
@@ -128,6 +129,41 @@
void *private_data;
};
+
+static char *cut_path(char *in)
+{
+ char *p, *ret = in;
+ char delims[] = "/\\";
+ char *i;
+
+ for (i = delims; *i; i++) {
+ p = in;
+ while ((p = strchr(p, *i)) != 0) {
+ ret = ++p;
+ }
+ }
+ return ret;
+}
+
+static void default_logger(char *file, const char *func, int line, int level, char *fmt, ...)
+{
+ char *fp;
+ char data[1024];
+
+ va_list ap;
+
+ fp = cut_path(file);
+
+ va_start(ap, fmt);
+
+ vsnprintf(data, sizeof(data), fmt, ap);
+
+ fprintf(globals.log_stream, "%s:%d %s() %s", file, line, func, data);
+
+ va_end(ap);
+
+}
+
static unsigned int next_id(void)
{
return globals.id++;
@@ -147,7 +183,7 @@
apr_pool_t *pool = session->pool;
if (globals.debug) {
- fprintf(globals.log_stream, "Destroyed Session %s\n", session->id);
+ globals.logger(DL_LOG_DEBUG, "Destroyed Session %s\n", session->id);
}
if (session->id) {
apr_hash_set(session->handle->sessions, session->id, APR_HASH_KEY_STRING, NULL);
@@ -170,7 +206,7 @@
ldl_session_t *session = NULL;
if (!(session = apr_palloc(handle->pool, sizeof(ldl_session_t)))) {
- fprintf(globals.log_stream, "Memory ERROR!\n");
+ globals.logger(DL_LOG_DEBUG, "Memory ERROR!\n");
*session_p = NULL;
return LDL_STATUS_MEMERR;
}
@@ -190,7 +226,7 @@
*session_p = session;
if (globals.debug) {
- fprintf(globals.log_stream, "Created Session %s\n", id);
+ globals.logger(DL_LOG_DEBUG, "Created Session %s\n", id);
}
return LDL_STATUS_SUCCESS;
@@ -211,13 +247,13 @@
if (!session) {
if (globals.debug) {
- fprintf(globals.log_stream, "Non-Existent Session %s!\n", id);
+ globals.logger(DL_LOG_DEBUG, "Non-Existent Session %s!\n", id);
}
return LDL_STATUS_MEMERR;
}
if (globals.debug) {
- fprintf(globals.log_stream, "Message for Session %s\n", id);
+ globals.logger(DL_LOG_DEBUG, "Message for Session %s\n", id);
}
while(xml) {
@@ -251,7 +287,7 @@
session->payload_len++;
if (globals.debug) {
- fprintf(globals.log_stream, "Add Payload [%s] id='%s'\n", name, id);
+ globals.logger(DL_LOG_DEBUG, "Add Payload [%s] id='%s'\n", name, id);
}
}
}
@@ -276,7 +312,7 @@
for (x = 0; x < session->candidate_len; x++) {
if (session->candidates[x].pref == pref) {
if (globals.debug) {
- fprintf(globals.log_stream, "Duplicate Pref!\n");
+ globals.logger(DL_LOG_DEBUG, "Duplicate Pref!\n");
}
index = x;
break;
@@ -311,7 +347,7 @@
session->candidates[index].port = atoi(key);
}
if (globals.debug) {
- fprintf(globals.log_stream,
+ globals.logger(DL_LOG_DEBUG,
"New Candidate %d\n"
"name=%s\n"
"type=%s\n"
@@ -394,7 +430,7 @@
apr_thread_mutex_lock(handle->lock);
if ((packet_node = apr_hash_get(handle->retry_hash, id, APR_HASH_KEY_STRING))) {
if (globals.debug) {
- fprintf(globals.log_stream, "Cancel packet %s\n", packet_node->id);
+ globals.logger(DL_LOG_DEBUG, "Cancel packet %s\n", packet_node->id);
}
packet_node->retries = 0;
}
@@ -500,9 +536,9 @@
}
}
} else if (strcmp("failure", iks_name(node)) == 0) {
- fprintf(globals.log_stream, "sasl authentication failed\n");
+ globals.logger(DL_LOG_DEBUG, "sasl authentication failed\n");
} else if (strcmp("success", iks_name(node)) == 0) {
- fprintf(globals.log_stream, "XMPP server connected\n");
+ globals.logger(DL_LOG_DEBUG, "XMPP server connected\n");
iks_send_header(handle->parser, handle->acc->server);
ldl_set_flag(handle, LDL_FLAG_AUTHORIZED);
} else {
@@ -516,11 +552,11 @@
break;
#if 0
case IKS_NODE_STOP:
- fprintf(globals.log_stream, "server disconnected\n");
+ globals.logger(DL_LOG_DEBUG, "server disconnected\n");
break;
case IKS_NODE_ERROR:
- fprintf(globals.log_stream, "stream error\n");
+ globals.logger(DL_LOG_DEBUG, "stream error\n");
break;
#endif
@@ -553,7 +589,7 @@
static int on_error(void *user_data, ikspak * pak)
{
- fprintf(globals.log_stream, "authorization failed\n");
+ globals.logger(DL_LOG_DEBUG, "authorization failed\n");
return IKS_FILTER_EAT;
}
@@ -633,7 +669,7 @@
len = apr_queue_size(handle->retry_queue);
if (globals.debug && len) {
- fprintf(globals.log_stream, "Processing %u packets in retry queue\n", len);
+ globals.logger(DL_LOG_DEBUG, "Processing %u packets in retry queue\n", len);
}
apr_thread_mutex_lock(handle->lock);
while(x < len && apr_queue_trypop(handle->retry_queue, &pop) == APR_SUCCESS) {
@@ -646,7 +682,7 @@
if (packet_node->retries > 0) {
packet_node->retries--;
if (globals.debug) {
- fprintf(globals.log_stream, "Sending packet %s (%d left)\n", packet_node->id, packet_node->retries);
+ globals.logger(DL_LOG_DEBUG, "Sending packet %s (%d left)\n", packet_node->id, packet_node->retries);
}
iks_send(handle->parser, packet_node->xml);
packet_node->next = now + 5000000;
@@ -654,7 +690,7 @@
}
if (packet_node->retries == 0) {
if (globals.debug) {
- fprintf(globals.log_stream, "Discarding packet %s\n", packet_node->id);
+ globals.logger(DL_LOG_DEBUG, "Discarding packet %s\n", packet_node->id);
}
apr_hash_set(handle->retry_hash, packet_node->id, APR_HASH_KEY_STRING, NULL);
iks_delete(packet_node->xml);
@@ -691,11 +727,11 @@
case IKS_OK:
break;
case IKS_NET_NODNS:
- fprintf(globals.log_stream, "hostname lookup failed\n");
+ globals.logger(DL_LOG_DEBUG, "hostname lookup failed\n");
case IKS_NET_NOCONN:
- fprintf(globals.log_stream, "connection failed\n");
+ globals.logger(DL_LOG_DEBUG, "connection failed\n");
default:
- fprintf(globals.log_stream, "io error %d\n", e);
+ globals.logger(DL_LOG_DEBUG, "io error %d\n", e);
microsleep(500);
continue;
}
@@ -719,7 +755,7 @@
}
if (IKS_OK != e) {
- fprintf(globals.log_stream, "io error %d\n", e);
+ globals.logger(DL_LOG_DEBUG, "io error %d\n", e);
microsleep(500);
break;
}
@@ -730,13 +766,13 @@
if (!ldl_test_flag(handle, LDL_FLAG_AUTHORIZED)) {
if (IKS_NET_TLSFAIL == e) {
- fprintf(globals.log_stream, "tls handshake failed\n");
+ globals.logger(DL_LOG_DEBUG, "tls handshake failed\n");
microsleep(500);
break;
}
if (handle->counter == 0) {
- fprintf(globals.log_stream, "network timeout\n");
+ globals.logger(DL_LOG_DEBUG, "network timeout\n");
microsleep(500);
break;
}
@@ -828,6 +864,11 @@
return handle->private_info;
}
+void ldl_global_set_logger(ldl_logger_t logger)
+{
+ globals.logger = logger;
+}
+
unsigned int ldl_session_terminate(ldl_session_t *session)
{
iks *iq, *sess;
@@ -1012,15 +1053,16 @@
memset(&globals, 0, sizeof(globals));
if (apr_pool_create(&globals.memory_pool, NULL) != LDL_STATUS_SUCCESS) {
- fprintf(globals.log_stream, "Could not allocate memory pool\n");
+ globals.logger(DL_LOG_DEBUG, "Could not allocate memory pool\n");
return LDL_STATUS_MEMERR;
}
globals.log_stream = stdout;
globals.debug = debug;
globals.id = 300;
+ globals.logger = default_logger;
ldl_set_flag(&globals, LDL_FLAG_INIT);
-
+
return LDL_STATUS_SUCCESS;
}
Modified: freeswitch/branches/james/libs/libdingaling/src/libdingaling.h
==============================================================================
--- freeswitch/branches/james/libs/libdingaling/src/libdingaling.h (original)
+++ freeswitch/branches/james/libs/libdingaling/src/libdingaling.h Fri Apr 14 05:24:38 2006
@@ -127,9 +127,20 @@
LDL_DESCRIPTION_ACCEPT
} ldl_description_t;
+#define DL_PRE __FILE__, __FUNCTION__, __LINE__
+#define DL_LOG_DEBUG DL_PRE, 7
+#define DL_LOG_INFO DL_PRE, 6
+#define DL_LOG_NOTICE DL_PRE, 5
+#define DL_LOG_WARNING DL_PRE, 4
+#define DL_LOG_ERR DL_PRE, 3
+#define DL_LOG_CRIT DL_PRE, 2
+#define DL_LOG_ALERT DL_PRE, 1
+#define DL_LOG_EMERG DL_PRE, 0
+
typedef ldl_status (*ldl_loop_callback_t)(ldl_handle_t *);
typedef ldl_status (*ldl_session_callback_t)(ldl_handle_t *, ldl_session_t *, ldl_signal_t, char *);
typedef ldl_status (*ldl_response_callback_t)(ldl_handle_t *, char *);
+typedef void (*ldl_logger_t)(char *file, const char *func, int line, int level, char *fmt, ...);
#define ldl_yield(ms) apr_sleep(ms * 10); apr_thread_yield();
@@ -230,6 +241,12 @@
\return the data
*/
void *ldl_session_get_private(ldl_session_t *session);
+
+/*!
+ \brief Set a custom logger
+ \param logger the logger function
+*/
+void ldl_global_set_logger(ldl_logger_t logger);
/*!
\brief Perform a probe on a given id to resolve the proper Jingle Resource
Modified: freeswitch/branches/james/src/mod/endpoints/mod_dingaling/mod_dingaling.c
==============================================================================
--- freeswitch/branches/james/src/mod/endpoints/mod_dingaling/mod_dingaling.c (original)
+++ freeswitch/branches/james/src/mod/endpoints/mod_dingaling/mod_dingaling.c Fri Apr 14 05:24:38 2006
@@ -32,6 +32,8 @@
#include <switch.h>
#include <libdingaling.h>
+#define DL_CAND_WAIT 10000000
+
static const char modname[] = "mod_dingaling";
static switch_memory_pool *module_pool = NULL;
@@ -116,8 +118,12 @@
int32_t timestamp_send;
int32_t timestamp_recv;
int32_t timestamp_dtmf;
+ uint32_t last_read;
char *codec_name;
uint8_t codec_num;
+ switch_time_t last_cand;
+ char *stun_ip;
+ uint16_t stun_port;
};
struct rfc2833_digit {
@@ -147,8 +153,19 @@
static ldl_status handle_response(ldl_handle_t *handle, char *id);
static switch_status load_config(void);
+static void dl_logger(char *file, const char *func, int line, int level, char *fmt, ...)
+{
+ va_list ap;
+ char data[1024];
+ va_start(ap, fmt);
+
+ vsnprintf(data, sizeof(data), fmt, ap);
+ switch_log_printf(SWITCH_CHANNEL_ID_LOG, file, func, line, SWITCH_LOG_DEBUG, data);
+ va_end(ap);
+}
+
static void get_codecs(struct private_object *tech_pvt)
{
assert(tech_pvt != NULL);
@@ -219,7 +236,12 @@
started = switch_time_now();
- next_cand = switch_test_flag(tech_pvt, TFLAG_OUTBOUND) ? switch_time_now() + 5000000 : switch_time_now() + 20000000;
+ if (!tech_pvt->last_cand) {
+ tech_pvt->last_cand = switch_time_now();
+ next_cand = tech_pvt->last_cand;
+ } else {
+ next_cand = tech_pvt->last_cand + DL_CAND_WAIT;
+ }
while(! (switch_test_flag(tech_pvt, TFLAG_CODEC_READY) && switch_test_flag(tech_pvt, TFLAG_RTP_READY))) {
now = switch_time_now();
@@ -233,7 +255,7 @@
if (now >= next_cand) {
ldl_payload_t payloads[5];
- next_cand += 10000000;
+ next_cand += DL_CAND_WAIT;
memset(payloads, 0, sizeof(payloads));
if (!switch_test_flag(tech_pvt, TFLAG_CODEC_READY)) {
@@ -270,26 +292,33 @@
if (!strncasecmp(advip, "stun:", 5)) {
char *stun_ip = advip + 5;
+
+ if (tech_pvt->stun_ip) {
+ cand[0].address = tech_pvt->stun_ip;
+ cand[0].port = tech_pvt->stun_port;
+ } else {
+ if (!stun_ip) {
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Stun Failed! NO STUN SERVER!\n");
+ switch_channel_hangup(channel);
+ break;
+ }
- if (!stun_ip) {
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Stun Failed! NO STUN SERVER!\n");
- switch_channel_hangup(channel);
- break;
+ cand[0].address = tech_pvt->profile->ip;
+ if (switch_stun_lookup(&cand[0].address,
+ &cand[0].port,
+ stun_ip,
+ SWITCH_STUN_DEFAULT_PORT,
+ &err,
+ switch_core_session_get_pool(tech_pvt->session)) != SWITCH_STATUS_SUCCESS) {
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Stun Failed! %s:%d [%s]\n", stun_ip, SWITCH_STUN_DEFAULT_PORT, err);
+ switch_channel_hangup(channel);
+ break;
+ }
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Stun Success %s:%d\n", cand[0].address, cand[0].port);
}
-
- cand[0].address = tech_pvt->profile->ip;
- if (switch_stun_lookup(&cand[0].address,
- &cand[0].port,
- stun_ip,
- SWITCH_STUN_DEFAULT_PORT,
- &err,
- switch_core_session_get_pool(tech_pvt->session)) != SWITCH_STATUS_SUCCESS) {
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Stun Failed! %s:%d [%s]\n", stun_ip, SWITCH_STUN_DEFAULT_PORT, err);
- switch_channel_hangup(channel);
- break;
- }
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Stun Success %s:%d\n", cand[0].address, cand[0].port);
cand[0].type = "stun";
+ tech_pvt->stun_ip = switch_core_session_strdup(tech_pvt->session, cand[0].address);
+ tech_pvt->stun_port = cand[0].port;
} else {
cand[0].type = "local";
}
@@ -360,7 +389,7 @@
tech_pvt->codec_num,
tech_pvt->read_codec.implementation->encoded_bytes_per_frame,
tech_pvt->read_codec.implementation->microseconds_per_frame,
- 0,
+ SWITCH_RTP_FLAG_USE_TIMER,
NULL,
&err, switch_core_session_get_pool(tech_pvt->session)))) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "RTP ERROR %s\n", err);
@@ -632,6 +661,9 @@
}
}
+ if (switch_test_flag(&tech_pvt->read_frame, SFF_CNG)) {
+ tech_pvt->read_frame.datalen = tech_pvt->last_read ? tech_pvt->last_read : tech_pvt->read_codec.implementation->encoded_bytes_per_frame;
+ }
if (tech_pvt->read_frame.datalen > 0) {
bytes = tech_pvt->read_codec.implementation->encoded_bytes_per_frame;
@@ -640,7 +672,7 @@
ms = frames * tech_pvt->read_codec.implementation->microseconds_per_frame;
tech_pvt->timestamp_recv += (int32_t) samples;
tech_pvt->read_frame.samples = (int) samples;
-
+ tech_pvt->last_read = tech_pvt->read_frame.datalen;
//printf("READ bytes=%d payload=%d frames=%d samples=%d ms=%d ts=%d sampcount=%d\n", (int)tech_pvt->read_frame.datalen, (int)payload, (int)frames, (int)samples, (int)ms, (int)tech_pvt->timestamp_recv, (int)tech_pvt->read_frame.samples);
break;
}
@@ -1029,6 +1061,7 @@
} else if (!strcasecmp(cfg.category, "interface")) {
if (!globals.init) {
ldl_global_init(globals.debug);
+ ldl_global_set_logger(dl_logger);
globals.init = 1;
}
@@ -1126,6 +1159,7 @@
tech_pvt->codec_index = -1;
tech_pvt->profile = profile;
tech_pvt->local_port = switch_rtp_request_port();
+ tech_pvt->last_cand = switch_time_now() + DL_CAND_WAIT;
} else {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Hey where is my memory pool?\n");
switch_core_session_destroy(&session);
@@ -1213,7 +1247,7 @@
unsigned int len = 0;
char *err;
-
+ tech_pvt->last_cand = switch_time_now();
if (ldl_session_get_candidates(dlsession, &candidates, &len) == LDL_STATUS_SUCCESS) {
unsigned int x;
@@ -1228,7 +1262,19 @@
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "candidates %s:%d\n", candidates[x].address, candidates[x].port);
if (!strcasecmp(candidates[x].protocol, "udp") &&
((profile->lanaddr && !strncasecmp(candidates[x].address, profile->lanaddr, strlen(profile->lanaddr))) ||
- (strncasecmp(candidates[x].address, "10.", 3) && strncasecmp(candidates[x].address, "192.168.", 8)))) {
+ (strncasecmp(candidates[x].address, "10.", 3) &&
+ strncasecmp(candidates[x].address, "192.168.", 8) &&
+ strncasecmp(candidates[x].address, "127.", 4) &&
+ strncasecmp(candidates[x].address, "1.", 2) &&
+ strncasecmp(candidates[x].address, "2.", 2) &&
+ strncasecmp(candidates[x].address, "172.16.", 7) &&
+ strncasecmp(candidates[x].address, "172.17.", 7) &&
+ strncasecmp(candidates[x].address, "172.18.", 7) &&
+ strncasecmp(candidates[x].address, "172.19.", 7) &&
+ strncasecmp(candidates[x].address, "172.2", 5) &&
+ strncasecmp(candidates[x].address, "172.30.", 7) &&
+ strncasecmp(candidates[x].address, "172.31.", 7)
+ ))) {
ldl_payload_t payloads[5];
ldl_candidate_t cand[1];
@@ -1275,24 +1321,29 @@
if (!strncasecmp(advip, "stun:", 5)) {
char *stun_ip = advip + 5;
- if (!stun_ip) {
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Stun Failed! NO STUN SERVER!\n");
- switch_channel_hangup(channel);
- break;
- }
+ if (tech_pvt->stun_ip) {
+ cand[0].address = tech_pvt->stun_ip;
+ cand[0].port = tech_pvt->stun_port;
+ } else {
+ if (!stun_ip) {
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Stun Failed! NO STUN SERVER!\n");
+ switch_channel_hangup(channel);
+ break;
+ }
- cand[0].address = profile->ip;
- if (switch_stun_lookup(&cand[0].address,
- &cand[0].port,
- stun_ip,
- SWITCH_STUN_DEFAULT_PORT,
- &err,
- switch_core_session_get_pool(tech_pvt->session)) != SWITCH_STATUS_SUCCESS) {
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Stun Failed! %s:%d [%s]\n", stun_ip, SWITCH_STUN_DEFAULT_PORT, err);
- switch_channel_hangup(channel);
- return LDL_STATUS_FALSE;
+ cand[0].address = profile->ip;
+ if (switch_stun_lookup(&cand[0].address,
+ &cand[0].port,
+ stun_ip,
+ SWITCH_STUN_DEFAULT_PORT,
+ &err,
+ switch_core_session_get_pool(tech_pvt->session)) != SWITCH_STATUS_SUCCESS) {
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Stun Failed! %s:%d [%s]\n", stun_ip, SWITCH_STUN_DEFAULT_PORT, err);
+ switch_channel_hangup(channel);
+ return LDL_STATUS_FALSE;
+ }
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Stun Success %s:%d\n", cand[0].address, cand[0].port);
}
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Stun Success %s:%d\n", cand[0].address, cand[0].port);
cand[0].type = "stun";
} else {
cand[0].type = "local";
Modified: freeswitch/branches/james/src/mod/endpoints/mod_wanpipe/mod_wanpipe.c
==============================================================================
--- freeswitch/branches/james/src/mod/endpoints/mod_wanpipe/mod_wanpipe.c (original)
+++ freeswitch/branches/james/src/mod/endpoints/mod_wanpipe/mod_wanpipe.c Fri Apr 14 05:24:38 2006
@@ -786,8 +786,6 @@
}
}
-
- switch_channel_set_caller_profile(channel, caller_profile);
tech_pvt->caller_profile = caller_profile;
if (bchan) {
@@ -802,7 +800,7 @@
switch_set_flag(tech_pvt, TFLAG_NOSIG);
snprintf(name, sizeof(name), "WanPipe/%s/nosig-%04x", bchan, rand() & 0xffff);
switch_channel_set_name(channel, name);
-
+ switch_channel_set_caller_profile(channel, caller_profile);
} else {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Invalid address\n");
switch_core_session_destroy(new_session);
@@ -854,6 +852,7 @@
snprintf(name, sizeof(name), "WanPipe/s%dc%d/%s-%04x", spri->span, channo, caller_profile->destination_number, rand() & 0xffff);
switch_channel_set_name(channel, name);
+ switch_channel_set_caller_profile(channel, caller_profile);
sr = pri_sr_new();
pri_sr_set_channel(sr, channo, 0, 0);
pri_sr_set_bearer(sr, 0, SPANS[span]->l1);
Modified: freeswitch/branches/james/src/switch_rtp.c
==============================================================================
--- freeswitch/branches/james/src/switch_rtp.c (original)
+++ freeswitch/branches/james/src/switch_rtp.c Fri Apr 14 05:24:38 2006
@@ -268,6 +268,7 @@
}
rtp_session->pool = pool;
+ rtp_session->flags = flags;
/* for from address on recvfrom calls */
switch_sockaddr_info_get(&rtp_session->from_addr, NULL, SWITCH_UNSPEC, 0, 0, rtp_session->pool);
@@ -493,15 +494,15 @@
}
if (switch_test_flag(rtp_session, SWITCH_RTP_FLAG_USE_TIMER)) {
-
if ((switch_time_now() - rtp_session->next_read) > 1000) {
/* We're late! We're Late!*/
- memset(&rtp_session->recv_msg, 0, 13);
+ memset(&rtp_session->recv_msg, 0, SWITCH_RTP_CNG_PAYLOAD);
rtp_session->recv_msg.header.pt = SWITCH_RTP_CNG_PAYLOAD;
*flags |= SFF_CNG;
- /* RE-Sync the clock and return a CNG frame */
- rtp_session->next_read = switch_time_now() + rtp_session->ms_per_packet;
- return 13;
+ /* Set the next waypoint and return a CNG frame */
+ rtp_session->next_read += rtp_session->ms_per_packet;
+ *payload_type = SWITCH_RTP_CNG_PAYLOAD;
+ return SWITCH_RTP_CNG_PAYLOAD;
}
if (!switch_test_flag(rtp_session, SWITCH_RTP_FLAG_NOBLOCK) && status == SWITCH_STATUS_BREAK) {
@@ -605,7 +606,7 @@
bytes = sbytes;
}
-
+ rtp_session->send_msg.header.pt = rtp_session->payload;
switch_socket_sendto(rtp_session->sock, rtp_session->remote_addr, 0, (void*)&rtp_session->send_msg, &bytes);
if (rtp_session->ice_user) {
@@ -630,7 +631,6 @@
rtp_session->seq = htons(rtp_session->seq);
rtp_session->send_msg.header.seq = rtp_session->seq;
rtp_session->send_msg.header.ts = htonl(rtp_session->ts);
- rtp_session->payload = (uint8_t)htonl(rtp_session->payload);
return rtp_common_write(rtp_session, data, datalen, rtp_session->payload);
@@ -642,10 +642,10 @@
if (!switch_test_flag(rtp_session, SWITCH_RTP_FLAG_IO) || !rtp_session->remote_addr) {
return -1;
}
+
rtp_session->ts += ts;
rtp_session->send_msg.header.seq = htons(mseq);
rtp_session->send_msg.header.ts = htonl(rtp_session->ts);
- rtp_session->send_msg.header.pt = (uint8_t)htonl(payload);
return rtp_common_write(rtp_session, data, datalen, payload);
}
Modified: freeswitch/branches/james/w32/vsnet/GetLibs.vbs
==============================================================================
--- freeswitch/branches/james/w32/vsnet/GetLibs.vbs (original)
+++ freeswitch/branches/james/w32/vsnet/GetLibs.vbs Fri Apr 14 05:24:38 2006
@@ -178,6 +178,7 @@
If BuildModDingaling Then
BuildLibs_iksemel BuildDebug, BuildRelease
+ BuildLibs_libdingaling BuildDebug, BuildRelease
End If
If BuildModIaxChan Then
More information about the Freeswitch-svn
mailing list