mirror of
https://github.com/signalwire/freeswitch.git
synced 2026-10-24 04:04:16 +00:00
make moc happy
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@15105 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
1 parent
5baa04b88f
commit
aaeb69d613
8 files changed
+256
-53
No files matched your search
@@ -1533,7 +1533,7 @@ static switch_status_t xfer_on_dtmf(switch_core_session_t *session, void *input,
|
||||
switch_caller_extension_t *extension = NULL;
|
||||
const char *app = "three_way";
|
||||
const char *app_arg = switch_core_session_get_uuid(session);
|
||||
const char *holding = switch_channel_get_variable(channel, SWITCH_HOLDING_UUID_VARIABLE);
|
||||
const char *holding = switch_channel_get_variable(channel, SWITCH_SOFT_HOLDING_UUID_VARIABLE);
|
||||
switch_core_session_t *b_session;
|
||||
|
||||
if (holding && (b_session = switch_core_session_locate(holding))) {
|
||||
@@ -1603,8 +1603,8 @@ SWITCH_STANDARD_APP(att_xfer_function)
|
||||
bond = switch_core_session_strdup(session, bond);
|
||||
}
|
||||
|
||||
switch_channel_set_variable(channel, SWITCH_HOLDING_UUID_VARIABLE, bond);
|
||||
|
||||
switch_channel_set_variable(channel, SWITCH_SOFT_HOLDING_UUID_VARIABLE, bond);
|
||||
switch_channel_set_flag(channel, CF_XFER_ZOMBIE);
|
||||
|
||||
if ((var = switch_channel_get_variable(channel, SWITCH_CALL_TIMEOUT_VARIABLE))) {
|
||||
timelimit = atoi(var);
|
||||
@@ -1654,7 +1654,8 @@ SWITCH_STANDARD_APP(att_xfer_function)
|
||||
switch_core_session_rwunlock(peer_session);
|
||||
|
||||
end:
|
||||
switch_channel_set_variable(channel, SWITCH_HOLDING_UUID_VARIABLE, NULL);
|
||||
switch_channel_set_variable(channel, SWITCH_SOFT_HOLDING_UUID_VARIABLE, NULL);
|
||||
switch_channel_clear_flag(channel, CF_XFER_ZOMBIE);
|
||||
}
|
||||
|
||||
SWITCH_STANDARD_APP(read_function)
|
||||
@@ -1906,6 +1907,35 @@ SWITCH_STANDARD_APP(playback_function)
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
SWITCH_STANDARD_APP(endless_playback_function)
|
||||
{
|
||||
switch_channel_t *channel = switch_core_session_get_channel(session);
|
||||
switch_status_t status = SWITCH_STATUS_SUCCESS;
|
||||
const char *file = data;
|
||||
|
||||
while(switch_channel_ready(channel)) {
|
||||
if ((status = switch_ivr_play_file(session, NULL, file, NULL)) == SWITCH_STATUS_NOTFOUND) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
switch (status) {
|
||||
case SWITCH_STATUS_SUCCESS:
|
||||
case SWITCH_STATUS_BREAK:
|
||||
switch_channel_set_variable(channel, SWITCH_CURRENT_APPLICATION_RESPONSE_VARIABLE, "FILE PLAYED");
|
||||
break;
|
||||
case SWITCH_STATUS_NOTFOUND:
|
||||
switch_channel_set_variable(channel, SWITCH_CURRENT_APPLICATION_RESPONSE_VARIABLE, "FILE NOT FOUND");
|
||||
break;
|
||||
default:
|
||||
switch_channel_set_variable(channel, SWITCH_CURRENT_APPLICATION_RESPONSE_VARIABLE, "PLAYBACK ERROR");
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
SWITCH_STANDARD_APP(gentones_function)
|
||||
{
|
||||
char *tone_script = NULL;
|
||||
@@ -2791,6 +2821,8 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_dptools_load)
|
||||
SWITCH_ADD_APP(app_interface, "park_state", "Park State", "Park State", park_state_function, "", SAF_NONE);
|
||||
SWITCH_ADD_APP(app_interface, "gentones", "Generate Tones", "Generate tones to the channel", gentones_function, "<tgml_script>[|<loops>]", SAF_NONE);
|
||||
SWITCH_ADD_APP(app_interface, "playback", "Playback File", "Playback a file to the channel", playback_function, "<path>", SAF_NONE);
|
||||
SWITCH_ADD_APP(app_interface, "endless_playback", "Playback File Endlessly", "Endlessly Playback a file to the channel",
|
||||
endless_playback_function, "<path>", SAF_NONE);
|
||||
SWITCH_ADD_APP(app_interface, "att_xfer", "Attended Transfer", "Attended Transfer", att_xfer_function, "<channel_url>", SAF_NONE);
|
||||
SWITCH_ADD_APP(app_interface, "read", "Read Digits", "Read Digits", read_function, "<min> <max> <file> <var_name> <timeout> <terminators>", SAF_NONE);
|
||||
SWITCH_ADD_APP(app_interface, "play_and_get_digits", "Play and get Digits", "Play and get Digits",
|
||||
|
||||
@@ -89,7 +89,7 @@ static switch_status_t on_dtmf(switch_core_session_t *session, void *input, swit
|
||||
|
||||
const char *consumer_exit_key = switch_channel_get_variable(channel, "fifo_consumer_exit_key");
|
||||
|
||||
if (switch_channel_test_flag(switch_core_session_get_channel(session), CF_ORIGINATOR)) {
|
||||
if (switch_channel_test_flag(switch_core_session_get_channel(session), CF_BRIDGE_ORIGINATOR)) {
|
||||
if ( consumer_exit_key && dtmf->digit == *consumer_exit_key ) {
|
||||
switch_channel_hangup(bchan, SWITCH_CAUSE_NORMAL_CLEARING);
|
||||
return SWITCH_STATUS_BREAK;
|
||||
|
||||
@@ -4117,8 +4117,46 @@ void sofia_handle_sip_i_refer(nua_t *nua, sofia_profile_t *profile, nua_handle_t
|
||||
|
||||
br_a = switch_channel_get_variable(channel_a, SWITCH_SIGNAL_BOND_VARIABLE);
|
||||
br_b = switch_channel_get_variable(channel_b, SWITCH_SIGNAL_BOND_VARIABLE);
|
||||
|
||||
if (switch_channel_test_flag(channel_b, CF_ORIGINATOR)) {
|
||||
switch_core_session_t *a_session;
|
||||
|
||||
if (br_a && br_b) {
|
||||
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_NOTICE,
|
||||
"Attended Transfer on originating session %s\n", switch_core_session_get_uuid(b_session));
|
||||
|
||||
|
||||
|
||||
switch_channel_set_variable(channel_b, SWITCH_ENDPOINT_DISPOSITION_VARIABLE, "ATTENDED_TRANSFER");
|
||||
|
||||
|
||||
sofia_clear_flag_locked(b_tech_pvt, TFLAG_SIP_HOLD);
|
||||
sofia_clear_flag_locked(tech_pvt, TFLAG_HOLD_LOCK);
|
||||
|
||||
switch_channel_set_variable(channel_b, SWITCH_HOLDING_UUID_VARIABLE, br_a);
|
||||
switch_channel_set_flag(channel_b, CF_XFER_ZOMBIE);
|
||||
|
||||
if ((a_session = switch_core_session_locate(br_a))) {
|
||||
const char *moh = profile->hold_music;
|
||||
switch_channel_t *a_channel = switch_core_session_get_channel(a_session);
|
||||
const char *tmp;
|
||||
|
||||
if ((tmp = switch_channel_get_variable(a_channel, SWITCH_HOLD_MUSIC_VARIABLE))) {
|
||||
moh = tmp;
|
||||
}
|
||||
//switch_channel_set_variable(a_channel, SWITCH_PARK_AFTER_BRIDGE_VARIABLE, "true");
|
||||
switch_channel_set_variable_printf(a_channel, SWITCH_TRANSFER_AFTER_BRIDGE_VARIABLE, "'endless_playback:%s':inline", moh);
|
||||
//switch_channel_set_variable_printf(a_channel, "park_command", "moh");
|
||||
switch_core_session_rwunlock(a_session);
|
||||
}
|
||||
|
||||
nua_notify(tech_pvt->nh, NUTAG_NEWSUB(1), SIPTAG_CONTENT_TYPE_STR("message/sipfrag"),
|
||||
NUTAG_SUBSTATE(nua_substate_terminated), SIPTAG_PAYLOAD_STR("SIP/2.0 200 OK"), SIPTAG_EVENT_STR(etmp), TAG_END());
|
||||
|
||||
//switch_channel_set_variable(channel_b, "park_timeout", "2");
|
||||
//switch_channel_set_state(channel_b, CS_PARK);
|
||||
|
||||
|
||||
} else if (br_a && br_b) {
|
||||
switch_core_session_t *new_b_session = NULL, *a_session = NULL, *tmp = NULL;
|
||||
|
||||
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_NOTICE, "Attended Transfer [%s][%s]\n",
|
||||
@@ -4138,8 +4176,9 @@ void sofia_handle_sip_i_refer(nua_t *nua, sofia_profile_t *profile, nua_handle_t
|
||||
|
||||
sofia_clear_flag_locked(b_tech_pvt, TFLAG_SIP_HOLD);
|
||||
sofia_clear_flag_locked(tech_pvt, TFLAG_HOLD_LOCK);
|
||||
switch_channel_set_variable(switch_core_session_get_channel(b_session), "park_timeout", "2");
|
||||
switch_channel_set_state(switch_core_session_get_channel(b_session), CS_PARK);
|
||||
switch_channel_set_variable(channel_b, "park_timeout", "2");
|
||||
switch_channel_set_state(channel_b, CS_PARK);
|
||||
|
||||
|
||||
new_b_session = switch_core_session_locate(br_b);
|
||||
a_session = switch_core_session_locate(br_a);
|
||||
|
||||
Reference in new issue
Block a user