[commit] r4087 - in freeswitch/trunk: libs/libdingaling/src src/mod/endpoints/mod_dingaling
Author: anthm Date: Mon Jan 29 17:22:29 2007 New Revision: 4087 Modified: freeswitch/trunk/libs/libdingaling/src/libdingaling.c freeswitch/trunk/libs/libdingaling/src/libdingaling.h freeswitch/trunk/src/mod/endpoints/mod_dingaling/mod_dingaling.c Log: fix dingaling reject Modified: freeswitch/trunk/libs/libdingaling/src/libdingaling.c ============================================================================== --- freeswitch/trunk/libs/libdingaling/src/libdingaling.c (original) +++ freeswitch/trunk/libs/libdingaling/src/libdingaling.c Mon Jan 29 17:22:29 2007 @@ -366,6 +366,8 @@ } } else if (!strcasecmp(type, "transport-accept")) { dl_signal = LDL_SIGNAL_TRANSPORT_ACCEPT; + } else if (!strcasecmp(type, "reject")) { + dl_signal = LDL_SIGNAL_REJECT; } else if (!strcasecmp(type, "transport-info")) { char *tid = iks_find_attrib(xml, "id"); dl_signal = LDL_SIGNAL_CANDIDATES; Modified: freeswitch/trunk/libs/libdingaling/src/libdingaling.h ============================================================================== --- freeswitch/trunk/libs/libdingaling/src/libdingaling.h (original) +++ freeswitch/trunk/libs/libdingaling/src/libdingaling.h Mon Jan 29 17:22:29 2007 @@ -142,7 +142,8 @@ LDL_SIGNAL_LOGIN_SUCCESS, LDL_SIGNAL_LOGIN_FAILURE, LDL_SIGNAL_CONNECTED, - LDL_SIGNAL_TRANSPORT_ACCEPT + LDL_SIGNAL_TRANSPORT_ACCEPT, + LDL_SIGNAL_REJECT } ldl_signal_t; typedef enum { Modified: freeswitch/trunk/src/mod/endpoints/mod_dingaling/mod_dingaling.c ============================================================================== --- freeswitch/trunk/src/mod/endpoints/mod_dingaling/mod_dingaling.c (original) +++ freeswitch/trunk/src/mod/endpoints/mod_dingaling/mod_dingaling.c Mon Jan 29 17:22:29 2007 @@ -1616,10 +1616,10 @@ switch_channel_set_flag(channel, CF_OUTBOUND); switch_set_flag_locked(tech_pvt, TFLAG_OUTBOUND); - + switch_stun_random_string(sess_id, 10, "0123456789"); - tech_pvt->us = switch_core_session_strdup(session, user); - tech_pvt->them = switch_core_session_strdup(session, full_id); + tech_pvt->us = switch_core_session_strdup(*new_session, user); + tech_pvt->them = switch_core_session_strdup(*new_session, full_id); ldl_session_create(&dlsession, mdl_profile->handle, sess_id, full_id, user, LDL_FLAG_OUTBOUND); tech_pvt->profile = mdl_profile; ldl_session_set_private(dlsession, *new_session); @@ -2685,11 +2685,18 @@ } } break; + case LDL_SIGNAL_REJECT: + if (channel) { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "reject %s\n", switch_channel_get_name(channel)); + terminate_session(&session, __LINE__, SWITCH_CAUSE_CALL_REJECTED); + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "End Call (Rejected)\n"); + goto done; + } + break; case LDL_SIGNAL_ERROR: case LDL_SIGNAL_TERMINATE: if (channel) { - switch_channel_state_t state = switch_channel_get_state(channel); - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "hungup %s %u %d\n", switch_channel_get_name(channel), state, CS_INIT); + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "hungup %s %u %d\n", switch_channel_get_name(channel)); terminate_session(&session, __LINE__, SWITCH_CAUSE_NORMAL_CLEARING); switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "End Call\n"); goto done;
participants (1)
-
Freeswitch SVN