]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-5737 --resolve
authorAnthony Minessale <anthm@freeswitch.org>
Thu, 29 Aug 2013 16:03:01 +0000 (21:03 +0500)
committerAnthony Minessale <anthm@freeswitch.org>
Thu, 29 Aug 2013 16:03:01 +0000 (21:03 +0500)
libs/esl/src/esl_event.c
libs/esl/src/include/esl_event.h
src/include/switch_types.h
src/mod/endpoints/mod_sofia/sofia_presence.c
src/switch_event.c

index 159c5bed4367b98bacf4c06dbf9401b1e7d01660..b5a6be4d58f7feafd4a49eecb72c2e3bb28a2d08 100644 (file)
@@ -98,8 +98,6 @@ static const char *EVENT_NAMES[] = {
        "MESSAGE",
        "PRESENCE_IN",
        "NOTIFY_IN",
-       "PHONE_FEATURE",
-       "PHONE_FEATURE_SUBSCRIBE",
        "PRESENCE_OUT",
        "PRESENCE_PROBE",
        "MESSAGE_WAITING",
index 0bf9259a3755111cac3e444db74bf4b397278946..44cfd184dc77f28c84a4637c23ba4f133e4a612d 100644 (file)
@@ -106,6 +106,8 @@ typedef enum {
        ESL_EVENT_RE_SCHEDULE,
        ESL_EVENT_RELOADXML,
        ESL_EVENT_NOTIFY,
+       ESL_EVENT_PHONE_FEATURE,
+       ESL_EVENT_PHONE_FEATURE_SUBSCRIBE,
        ESL_EVENT_SEND_MESSAGE,
        ESL_EVENT_RECV_MESSAGE,
        ESL_EVENT_REQUEST_PARAMS,
@@ -117,6 +119,7 @@ typedef enum {
        ESL_EVENT_SERVER_DISCONNECTED,
        ESL_EVENT_SEND_INFO,
        ESL_EVENT_RECV_INFO,
+       ESL_EVENT_RECV_RTCP_MESSAGE,
        ESL_EVENT_CALL_SECURE,
        ESL_EVENT_NAT,
        ESL_EVENT_RECORD_START,
index 006050bdc89bbd9cad37863225989a3896c15e1d..f90f1e190e22a3dd5f676060f1c86b3b9dbdb369 100644 (file)
@@ -1630,63 +1630,94 @@ typedef uint32_t switch_io_flag_t;
 
 <pre>
     SWITCH_EVENT_CUSTOM                                - A custom event
+    SWITCH_EVENT_CLONE                         - A cloned event
     SWITCH_EVENT_CHANNEL_CREATE                - A channel has been created
     SWITCH_EVENT_CHANNEL_DESTROY       - A channel has been destroyed
     SWITCH_EVENT_CHANNEL_STATE         - A channel has changed state
+    SWITCH_EVENT_CHANNEL_CALLSTATE     - A channel has changed call state
     SWITCH_EVENT_CHANNEL_ANSWER                - A channel has been answered
     SWITCH_EVENT_CHANNEL_HANGUP                - A channel has been hungup
+    SWITCH_EVENT_CHANNEL_HANGUP_COMPLETE       - A channel has completed the hangup
     SWITCH_EVENT_CHANNEL_EXECUTE       - A channel has executed a module's application
     SWITCH_EVENT_CHANNEL_EXECUTE_COMPLETE      - A channel has finshed executing a module's application
-       SWITCH_EVENT_CHANNEL_BRIDGE     - A channel has bridged to another channel
-       SWITCH_EVENT_CHANNEL_UNBRIDGE   - A channel has unbridged from another channel
+    SWITCH_EVENT_CHANNEL_HOLD          - A channel has been put on hold
+    SWITCH_EVENT_CHANNEL_UNHOLD                - A channel has been unheld
+    SWITCH_EVENT_CHANNEL_BRIDGE     - A channel has bridged to another channel
+    SWITCH_EVENT_CHANNEL_UNBRIDGE   - A channel has unbridged from another channel
     SWITCH_EVENT_CHANNEL_PROGRESS      - A channel has started ringing
     SWITCH_EVENT_CHANNEL_PROGRESS_MEDIA        - A channel has started early media
     SWITCH_EVENT_CHANNEL_OUTGOING      - A channel has been unparked
-       SWITCH_EVENT_CHANNEL_PARK               - A channel has been parked
-       SWITCH_EVENT_CHANNEL_UNPARK     - A channel has been unparked
-       SWITCH_EVENT_CHANNEL_APPLICATION- A channel has called and event from an application
-       SWITCH_EVENT_CHANNEL_ORIGINATE  - A channel has been originated
-       SWITCH_EVENT_CHANNEL_UUID       - A channel has changed uuid
+    SWITCH_EVENT_CHANNEL_PARK          - A channel has been parked
+    SWITCH_EVENT_CHANNEL_UNPARK        - A channel has been unparked
+    SWITCH_EVENT_CHANNEL_APPLICATION- A channel has called and event from an application
+    SWITCH_EVENT_CHANNEL_ORIGINATE  - A channel has been originated
+    SWITCH_EVENT_CHANNEL_UUID       - A channel has changed uuid
     SWITCH_EVENT_API                           - An API call has been executed
     SWITCH_EVENT_LOG                           - A LOG event has been triggered
     SWITCH_EVENT_INBOUND_CHAN          - A new inbound channel has been created
     SWITCH_EVENT_OUTBOUND_CHAN         - A new outbound channel has been created
     SWITCH_EVENT_STARTUP                       - The system has been started
     SWITCH_EVENT_SHUTDOWN                      - The system has been shutdown
-       SWITCH_EVENT_PUBLISH                    - Publish
-       SWITCH_EVENT_UNPUBLISH                  - UnPublish
-       SWITCH_EVENT_TALK                               - Talking Detected
-       SWITCH_EVENT_NOTALK                             - Not Talking Detected
-       SWITCH_EVENT_SESSION_CRASH              - Session Crashed
-       SWITCH_EVENT_MODULE_LOAD                - Module was loaded
-       SWITCH_EVENT_MODULE_UNLOAD              - Module was unloaded
-       SWITCH_EVENT_DTMF                               - DTMF was sent
-       SWITCH_EVENT_MESSAGE                    - A Basic Message
-       SWITCH_EVENT_PRESENCE_IN                - Presence in
-       SWITCH_EVENT_NOTIFY_IN                  - Received incoming NOTIFY from gateway subscription
-       SWITCH_EVENT_PRESENCE_OUT               - Presence out
-       SWITCH_EVENT_PRESENCE_PROBE             - Presence probe
-       SWITCH_EVENT_MESSAGE_WAITING    - A message is waiting
-       SWITCH_EVENT_MESSAGE_QUERY              - A query for MESSAGE_WAITING events
-       SWITCH_EVENT_CODEC                              - Codec Change
-       SWITCH_EVENT_BACKGROUND_JOB             - Background Job
-       SWITCH_EVENT_DETECTED_SPEECH    - Detected Speech
-       SWITCH_EVENT_DETECTED_TONE      - Detected Tone
-       SWITCH_EVENT_PRIVATE_COMMAND    - A private command event 
-       SWITCH_EVENT_HEARTBEAT                  - Machine is alive
-       SWITCH_EVENT_TRAP                               - Error Trap
-       SWITCH_EVENT_ADD_SCHEDULE               - Something has been scheduled
-       SWITCH_EVENT_DEL_SCHEDULE               - Something has been unscheduled
-       SWITCH_EVENT_EXE_SCHEDULE               - Something scheduled has been executed
-       SWITCH_EVENT_RE_SCHEDULE                - Something scheduled has been rescheduled
-       SWITCH_EVENT_RELOADXML                  - XML registry has been reloaded
-       SWITCH_EVENT_NOTIFY                             - Notification
-       SWITCH_EVENT_PHONE_FEATURE                      - Notification (DND/CFWD/etc)
-       SWITCH_EVENT_PHONE_FEATURE_SUBSCRIBE - Phone feature subscription
-       SWITCH_EVENT_SEND_MESSAGE               - Message
-       SWITCH_EVENT_RECV_MESSAGE               - Message
-       SWITCH_EVENT_NAT            - NAT Management (new/del/status)
-       SWITCH_EVENT_FAILURE            - A failure occurred which might impact the normal functioning of the switch
+    SWITCH_EVENT_PUBLISH                       - Publish
+    SWITCH_EVENT_UNPUBLISH                     - UnPublish
+    SWITCH_EVENT_TALK                          - Talking Detected
+    SWITCH_EVENT_NOTALK                                - Not Talking Detected
+    SWITCH_EVENT_SESSION_CRASH         - Session Crashed
+    SWITCH_EVENT_MODULE_LOAD           - Module was loaded
+    SWITCH_EVENT_MODULE_UNLOAD         - Module was unloaded
+    SWITCH_EVENT_DTMF                          - DTMF was sent
+    SWITCH_EVENT_MESSAGE                       - A Basic Message
+    SWITCH_EVENT_PRESENCE_IN           - Presence in
+    SWITCH_EVENT_NOTIFY_IN                     - Received incoming NOTIFY from gateway subscription
+    SWITCH_EVENT_PRESENCE_OUT          - Presence out
+    SWITCH_EVENT_PRESENCE_PROBE                - Presence probe
+    SWITCH_EVENT_MESSAGE_WAITING       - A message is waiting
+    SWITCH_EVENT_MESSAGE_QUERY         - A query for MESSAGE_WAITING events
+    SWITCH_EVENT_ROSTER                                - ?
+    SWITCH_EVENT_CODEC                         - Codec Change
+    SWITCH_EVENT_BACKGROUND_JOB                - Background Job
+    SWITCH_EVENT_DETECTED_SPEECH       - Detected Speech
+    SWITCH_EVENT_DETECTED_TONE      - Detected Tone
+    SWITCH_EVENT_PRIVATE_COMMAND       - A private command event 
+    SWITCH_EVENT_HEARTBEAT                     - Machine is alive
+    SWITCH_EVENT_TRAP                          - Error Trap
+    SWITCH_EVENT_ADD_SCHEDULE          - Something has been scheduled
+    SWITCH_EVENT_DEL_SCHEDULE          - Something has been unscheduled
+    SWITCH_EVENT_EXE_SCHEDULE          - Something scheduled has been executed
+    SWITCH_EVENT_RE_SCHEDULE           - Something scheduled has been rescheduled
+    SWITCH_EVENT_RELOADXML                     - XML registry has been reloaded
+    SWITCH_EVENT_NOTIFY                                - Notification
+    SWITCH_EVENT_PHONE_FEATURE         - Notification (DND/CFWD/etc)
+    SWITCH_EVENT_PHONE_FEATURE_SUBSCRIBE - Phone feature subscription
+    SWITCH_EVENT_SEND_MESSAGE          - Message
+    SWITCH_EVENT_RECV_MESSAGE          - Message
+    SWITCH_EVENT_REQUEST_PARAMS
+    SWITCH_EVENT_CHANNEL_DATA
+    SWITCH_EVENT_GENERAL
+    SWITCH_EVENT_COMMAND
+    SWITCH_EVENT_SESSION_HEARTBEAT
+    SWITCH_EVENT_CLIENT_DISCONNECTED
+    SWITCH_EVENT_SERVER_DISCONNECTED
+    SWITCH_EVENT_SEND_INFO
+    SWITCH_EVENT_RECV_INFO
+    SWITCH_EVENT_RECV_RTCP_MESSAGE
+    SWITCH_EVENT_CALL_SECURE
+    SWITCH_EVENT_NAT                   - NAT Management (new/del/status)
+    SWITCH_EVENT_RECORD_START
+    SWITCH_EVENT_RECORD_STOP
+    SWITCH_EVENT_PLAYBACK_START
+    SWITCH_EVENT_PLAYBACK_STOP
+    SWITCH_EVENT_CALL_UPDATE
+    SWITCH_EVENT_FAILURE            - A failure occurred which might impact the normal functioning of the switch
+    SWITCH_EVENT_SOCKET_DATA
+    SWITCH_EVENT_MEDIA_BUG_START
+    SWITCH_EVENT_MEDIA_BUG_STOP
+    SWITCH_EVENT_CONFERENCE_DATA_QUERY
+    SWITCH_EVENT_CONFERENCE_DATA
+    SWITCH_EVENT_CALL_SETUP_REQ
+    SWITCH_EVENT_CALL_SETUP_RESULT
+    SWITCH_EVENT_CALL_DETAIL
+    SWITCH_EVENT_DEVICE_STATE
     SWITCH_EVENT_ALL                           - All events at once
 </pre>
 
index 465455568be199db59273480ff31703303b16e78..17a85a94c803daf3ff7cf1b2a7ac288b0dfe83f1 100644 (file)
@@ -1346,18 +1346,18 @@ static switch_event_t *actual_sofia_presence_event_handler(switch_event_t *event
                                                                                 "((sip_from_user='%q' and sip_from_host='%q') or presence_id='%q@%q') order by rcd desc", 
                                                                                 uuid, mod_sofia_globals.hostname, profile->name, euser, host, euser, host);
                                }
-                               
+
+                               sofia_glue_execute_sql_callback(profile, profile->dbh_mutex, sql, sofia_presence_dialog_callback, &dh);
+                                                               
                                if (mod_sofia_globals.debug_presence > 0) {
                                        switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "CHECK SQL: %s@%s [%s]\nhits: %d\n", euser, host, sql, dh.hits);
                                }
 
-                               sofia_glue_execute_sql_callback(profile, profile->dbh_mutex, sql, sofia_presence_dialog_callback, &dh);
-                               
-
                                switch_safe_free(sql);
-#if 0
+
                                if (hup && dh.hits > 0) {
                                        /* sigh, mangle this packet to simulate a call that is up instead of hungup */
+                                       hup = 0;
                                        event->flags |= EF_UNIQ_HEADERS;
 
                                        if (!strcasecmp(dh.state, "early")) {
@@ -1386,7 +1386,7 @@ static switch_event_t *actual_sofia_presence_event_handler(switch_event_t *event
                                                switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "answer-state", "confirmed"); 
                                        }
                                }
-#endif
+
                                
 
                                if (zstr(call_id) && (dh.hits && presence_source && (!strcasecmp(presence_source, "register") || switch_stristr("register", status)))) {
@@ -2553,7 +2553,8 @@ static int sofia_presence_sub_callback(void *pArg, int argc, char **argv, char *
        char *open_closed = NULL;
        char *dialog_status = NULL;
        char *dialog_rpid = NULL;
-       char *default_dialog = "partial";
+       //char *default_dialog = "partial";
+       char *default_dialog = "full";
        const char *ct = "no/idea";
 
        char *to = NULL;
@@ -2731,9 +2732,9 @@ static int sofia_presence_sub_callback(void *pArg, int argc, char **argv, char *
                }
 
 
-               if (user_agent && switch_stristr("snom", user_agent) && uuid) {
-                       default_dialog = "full" ;
-               }
+               //if (user_agent && switch_stristr("snom", user_agent) && uuid) {
+               //      default_dialog = "full" ;
+               //}
                
                if (call_state && !strcasecmp(call_state, "cs_hangup")) {
                        astate = "hangup";
index 938bb2ff87995e3b0d16dd30015236467dd29701..bdb9bad9a7c5a6d25413c3773f871288fabfce68 100644 (file)
@@ -154,8 +154,6 @@ static char *EVENT_NAMES[] = {
        "MESSAGE",
        "PRESENCE_IN",
        "NOTIFY_IN",
-       "PHONE_FEATURE",
-       "PHONE_FEATURE_SUBSCRIBE",
        "PRESENCE_OUT",
        "PRESENCE_PROBE",
        "MESSAGE_WAITING",