]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-10009: mod_fail2ban - Added logging of network_ip for abandoned calls
authorSergey Safarov <s.safarov@gmail.com>
Mon, 6 Feb 2017 00:01:09 +0000 (19:01 -0500)
committerSergey Safarov <s.safarov@gmail.com>
Fri, 10 Feb 2017 18:17:45 +0000 (13:17 -0500)
src/mod/endpoints/mod_sofia/mod_sofia.c
src/mod/endpoints/mod_sofia/mod_sofia.h
src/mod/endpoints/mod_sofia/sofia.c
src/mod/event_handlers/mod_fail2ban/mod_fail2ban.c

index 1c5d0e48a11153bcda311469e78c8df8bf8efd35..c70de50762b48b1f0ed69ce485f3e989210494bd 100644 (file)
@@ -611,6 +611,7 @@ switch_status_t sofia_on_hangup(switch_core_session_t *session)
        if (cause == SWITCH_CAUSE_WRONG_CALL_STATE) {
                switch_event_t *s_event;
                if (switch_event_create_subclass(&s_event, SWITCH_EVENT_CUSTOM, MY_EVENT_WRONG_CALL_STATE) == SWITCH_STATUS_SUCCESS) {
+                       switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "from_user", tech_pvt->from_user);
                        switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "network_ip", tech_pvt->mparams.remote_ip);
                        switch_event_add_header(s_event, SWITCH_STACK_BOTTOM, "network_port", "%d", tech_pvt->mparams.remote_port);
                        switch_event_fire(&s_event);
index a66fc92420a9a451fd6994d17597413fad9dc3a2..40266c899693d0a8b5c9983c82ba37f0d03c164d 100644 (file)
@@ -796,6 +796,7 @@ struct private_object {
        sofia_profile_t *profile;
        char *reply_contact;
        char *from_uri;
+       char *from_user;
        char *to_uri;
        char *callid;
        char *contact_url;
index 27750e25ba8a7306ab093f392c6eb584f72d2223..4524c0aff8b89baaf57e8990ee8035897958de93 100644 (file)
@@ -10214,6 +10214,7 @@ void sofia_handle_sip_i_invite(switch_core_session_t *session, nua_t *nua, sofia
        }
 
 
+       tech_pvt->from_user = switch_core_session_strdup(session, sip->sip_from->a_url->url_user);
        tech_pvt->mparams.remote_ip = switch_core_session_strdup(session, network_ip);
        tech_pvt->mparams.remote_port = network_port;
 
index 6ea6deadd07ee2af768d34823c1736ac906603c5..f35c0ddacec3d3a36b32fb00adf1baed4d31d6a9 100644 (file)
@@ -84,6 +84,8 @@ static void fail2ban_event_handler(switch_event_t *event)
                        fail2ban_logger("A registration was attempted", switch_event_get_header(event, "to-user"), switch_event_get_header(event, "network-ip"));
                } else if (strncmp(event->subclass_name, "sofia::register_failure",23) == 0) {
                        fail2ban_logger("A registration failed", switch_event_get_header(event, "to-user"), switch_event_get_header(event, "network-ip"));
+               } else if (strncmp(event->subclass_name, "sofia::wrong_call_state",23) == 0) {
+                       fail2ban_logger("Abandoned call from ", switch_event_get_header(event, "from_user"), switch_event_get_header(event, "network_ip"));
                }
        }
 }