[commit] r8881 - in freeswitch/trunk/src: . include mod/endpoints/mod_sofia
Author: anthm Date: Wed Jul 2 13:18:34 2008 New Revision: 8881 Modified: freeswitch/trunk/src/include/switch_cpp.h freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_reg.c freeswitch/trunk/src/switch_cpp.cpp freeswitch/trunk/src/switch_event.c Log: tweak ping behaviour Modified: freeswitch/trunk/src/include/switch_cpp.h ============================================================================== --- freeswitch/trunk/src/include/switch_cpp.h (original) +++ freeswitch/trunk/src/include/switch_cpp.h Wed Jul 2 13:18:34 2008 @@ -136,6 +136,16 @@ }; + class EventConsumer { + protected: + switch_event_types_t e_event_id; + switch_event_node_t *node; + char *e_callback; + char *e_subclass_name; + public: + SWITCH_DECLARE_CONSTRUCTOR EventConsumer(switch_event_types_t event_id, const char *subclass_name = "", const char *callback = "event_consumer"); + SWITCH_DECLARE_CONSTRUCTOR ~ EventConsumer(); + }; class CoreSession { protected: Modified: freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c ============================================================================== --- freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c (original) +++ freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c Wed Jul 2 13:18:34 2008 @@ -1532,7 +1532,7 @@ gateway->status = SOFIA_GATEWAY_DOWN; if (gateway->state == REG_STATE_REGED) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "unregister %s\n", gateway->name); - gateway->state = REG_STATE_UNREGISTER; + gateway->state = REG_STATE_FAILED; } } gateway->ping = switch_timestamp(NULL) + gateway->ping_freq; Modified: freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_reg.c ============================================================================== --- freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_reg.c (original) +++ freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_reg.c Wed Jul 2 13:18:34 2008 @@ -112,7 +112,7 @@ break; case REG_STATE_UNREGED: gateway_ptr->status = SOFIA_GATEWAY_DOWN; - sofia_reg_kill_reg(gateway_ptr, 1); + sofia_reg_kill_reg(gateway_ptr, 0); if ((gateway_ptr->nh = nua_handle(gateway_ptr->profile->nua, NULL, NUTAG_URL(gateway_ptr->register_proxy), Modified: freeswitch/trunk/src/switch_cpp.cpp ============================================================================== --- freeswitch/trunk/src/switch_cpp.cpp (original) +++ freeswitch/trunk/src/switch_cpp.cpp Wed Jul 2 13:18:34 2008 @@ -37,6 +37,40 @@ #pragma warning(disable:4127 4003) #endif +static void event_handler(switch_event_t *event) +{ +} + +SWITCH_DECLARE_CONSTRUCTOR EventConsumer::EventConsumer(switch_event_types_t event_id, const char *subclass_name, const char *callback) +{ + e_event_id = event_id; + + if (!switch_strlen_zero(subclass_name)) { + e_subclass_name = strdup(subclass_name); + } else { + e_subclass_name = ""; + } + + if (switch_strlen_zero(callback)) { + callback = "event_consumer"; + } + + e_callback = strdup(callback); + + + switch_event_bind_removable(__FILE__, e_event_id, subclass_name, event_handler, this, &node); +} + + +SWITCH_DECLARE_CONSTRUCTOR EventConsumer::~EventConsumer() +{ + switch_safe_free(e_subclass_name); + switch_safe_free(e_callback); + + if (node) { + switch_event_unbind(&node); + } +} SWITCH_DECLARE_CONSTRUCTOR IVRMenu::IVRMenu(IVRMenu *main, const char *name, Modified: freeswitch/trunk/src/switch_event.c ============================================================================== --- freeswitch/trunk/src/switch_event.c (original) +++ freeswitch/trunk/src/switch_event.c Wed Jul 2 13:18:34 2008 @@ -541,15 +541,7 @@ (*event)->event_id = event_id; if (subclass_name) { - switch_event_subclass_t *subclass; - - if (!(subclass = switch_core_hash_find(CUSTOM_HASH, subclass_name))) { - switch_event_reserve_subclass((char *) subclass_name); - subclass = switch_core_hash_find(CUSTOM_HASH, subclass_name); - } - (*event)->subclass_name = DUP(subclass_name); - switch_event_add_header_string(*event, SWITCH_STACK_BOTTOM, "Event-Subclass", subclass_name); }
participants (1)
-
Freeswitch SVN