From 183b51dd5c95910d0fffe4d1d375710c965d72bc Mon Sep 17 00:00:00 2001 From: Luis Azedo Date: Thu, 30 Jul 2015 16:17:09 +0100 Subject: [PATCH] FS-7918 small fixes in mod_kazoo --- src/mod/event_handlers/mod_kazoo/kazoo_utils.c | 11 ++++++++--- src/mod/event_handlers/mod_kazoo/mod_kazoo.c | 6 +++++- src/mod/event_handlers/mod_kazoo/mod_kazoo.h | 6 ++++-- 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/mod/event_handlers/mod_kazoo/kazoo_utils.c b/src/mod/event_handlers/mod_kazoo/kazoo_utils.c index 83295234ec..f23182ff44 100644 --- a/src/mod/event_handlers/mod_kazoo/kazoo_utils.c +++ b/src/mod/event_handlers/mod_kazoo/kazoo_utils.c @@ -139,11 +139,11 @@ void close_socketfd(int *sockfd) { } } -switch_socket_t *create_socket(switch_memory_pool_t *pool) { +switch_socket_t *create_socket_with_port(switch_memory_pool_t *pool, switch_port_t port) { switch_sockaddr_t *sa; switch_socket_t *socket; - if(switch_sockaddr_info_get(&sa, globals.ip, SWITCH_UNSPEC, 0, 0, pool)) { + if(switch_sockaddr_info_get(&sa, globals.ip, SWITCH_UNSPEC, port, 0, pool)) { return NULL; } @@ -170,6 +170,11 @@ switch_socket_t *create_socket(switch_memory_pool_t *pool) { return socket; } +switch_socket_t *create_socket(switch_memory_pool_t *pool) { + return create_socket_with_port(pool, 0); + +} + switch_status_t create_ei_cnode(const char *ip_addr, const char *name, struct ei_cnode_s *ei_cnode) { struct hostent *nodehost; char hostname[EI_MAXHOSTNAMELEN + 1] = ""; @@ -503,7 +508,7 @@ switch_hash_t *create_default_filter() { switch_core_hash_insert(filter, "Hangup-Cause", "1"); switch_core_hash_insert(filter, "Unique-ID", "1"); switch_core_hash_insert(filter, "variable_switch_r_sdp", "1"); - switch_core_hash_insert(filter, "variable_sip_local_sdp_str", "1"); + switch_core_hash_insert(filter, "variable_rtp_local_sdp_str", "1"); switch_core_hash_insert(filter, "variable_sip_to_uri", "1"); switch_core_hash_insert(filter, "variable_sip_from_uri", "1"); switch_core_hash_insert(filter, "variable_sip_user_agent", "1"); diff --git a/src/mod/event_handlers/mod_kazoo/mod_kazoo.c b/src/mod/event_handlers/mod_kazoo/mod_kazoo.c index 1e3403d1a1..ebf3af3f8c 100644 --- a/src/mod/event_handlers/mod_kazoo/mod_kazoo.c +++ b/src/mod/event_handlers/mod_kazoo/mod_kazoo.c @@ -347,6 +347,7 @@ static switch_status_t config(void) { globals.event_stream_preallocate = 4000; globals.send_msg_batch = 10; globals.event_stream_framing = 2; + globals.port = 0; if (!(xml = switch_xml_open_cfg(cf, &cfg, NULL))) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Failed to open configuration file %s\n", cf); @@ -360,6 +361,9 @@ static switch_status_t config(void) { if (!strcmp(var, "listen-ip")) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "Set bind ip address: %s\n", val); set_pref_ip(val); + } else if (!strcmp(var, "listen-port")) { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "Set bind port: %s\n", val); + globals.port = atoi(val); } else if (!strcmp(var, "cookie")) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "Set cookie: %s\n", val); set_pref_ei_cookie(val); @@ -515,7 +519,7 @@ static switch_status_t create_acceptor() { ei_set_compat_rel(globals.ei_compat_rel); } - if (!(globals.acceptor = create_socket(globals.pool))) { + if (!(globals.acceptor = create_socket_with_port(globals.pool, globals.port))) { return SWITCH_STATUS_SOCKERR; } diff --git a/src/mod/event_handlers/mod_kazoo/mod_kazoo.h b/src/mod/event_handlers/mod_kazoo/mod_kazoo.h index 855f239c33..da27ed9dc4 100644 --- a/src/mod/event_handlers/mod_kazoo/mod_kazoo.h +++ b/src/mod/event_handlers/mod_kazoo/mod_kazoo.h @@ -48,9 +48,9 @@ struct ei_event_stream_s { switch_socket_t *socket; switch_mutex_t *socket_mutex; switch_bool_t connected; - char remote_ip[25]; + char remote_ip[48]; uint16_t remote_port; - char local_ip[25]; + char local_ip[48]; uint16_t local_port; erlang_pid pid; uint32_t flags; @@ -111,6 +111,7 @@ struct globals_s { int event_stream_preallocate; int send_msg_batch; short event_stream_framing; + switch_port_t port; }; typedef struct globals_s globals_t; extern globals_t globals; @@ -140,6 +141,7 @@ switch_status_t handle_api_command_streams(ei_node_t *ei_node, switch_stream_han /* kazoo_utils.c */ void close_socket(switch_socket_t **sock); void close_socketfd(int *sockfd); +switch_socket_t *create_socket_with_port(switch_memory_pool_t *pool, switch_port_t port); switch_socket_t *create_socket(switch_memory_pool_t *pool); switch_status_t create_ei_cnode(const char *ip_addr, const char *name, struct ei_cnode_s *ei_cnode); switch_status_t ei_compare_pids(const erlang_pid *pid1, const erlang_pid *pid2);