mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-02-08 08:51:50 +00:00
sense att xfer in valet
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@15126 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
parent
1cbd982a37
commit
421a609066
@ -97,6 +97,7 @@ SWITCH_STANDARD_APP(valet_parking_function)
|
|||||||
switch_status_t status;
|
switch_status_t status;
|
||||||
switch_input_args_t args = { 0 };
|
switch_input_args_t args = { 0 };
|
||||||
char dbuf[10];
|
char dbuf[10];
|
||||||
|
char *dest;
|
||||||
|
|
||||||
lot = valet_find_lot(lot_name);
|
lot = valet_find_lot(lot_name);
|
||||||
switch_assert(lot);
|
switch_assert(lot);
|
||||||
@ -152,7 +153,12 @@ SWITCH_STANDARD_APP(valet_parking_function)
|
|||||||
switch_mutex_unlock(lot->mutex);
|
switch_mutex_unlock(lot->mutex);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
dest = switch_core_session_sprintf(session, "valet_park:%s %s", lot_name, ext);
|
||||||
|
switch_channel_set_variable(channel, "inline_destination", dest);
|
||||||
|
|
||||||
|
|
||||||
if (!(tmp = switch_channel_get_variable(channel, "valet_hold_music"))) {
|
if (!(tmp = switch_channel_get_variable(channel, "valet_hold_music"))) {
|
||||||
tmp = switch_channel_get_variable(channel, "hold_music");
|
tmp = switch_channel_get_variable(channel, "hold_music");
|
||||||
}
|
}
|
||||||
|
@ -4374,6 +4374,7 @@ void sofia_handle_sip_i_refer(nua_t *nua, sofia_profile_t *profile, nua_handle_t
|
|||||||
|
|
||||||
if (t_session) {
|
if (t_session) {
|
||||||
switch_channel_t *t_channel = switch_core_session_get_channel(t_session);
|
switch_channel_t *t_channel = switch_core_session_get_channel(t_session);
|
||||||
|
const char *idest = switch_channel_get_variable(hup_channel, "inline_destination");
|
||||||
ext = switch_channel_get_variable(hup_channel, "destination_number");
|
ext = switch_channel_get_variable(hup_channel, "destination_number");
|
||||||
|
|
||||||
if (!switch_strlen_zero(full_ref_by)) {
|
if (!switch_strlen_zero(full_ref_by)) {
|
||||||
@ -4383,8 +4384,13 @@ void sofia_handle_sip_i_refer(nua_t *nua, sofia_profile_t *profile, nua_handle_t
|
|||||||
if (!switch_strlen_zero(full_ref_to)) {
|
if (!switch_strlen_zero(full_ref_to)) {
|
||||||
switch_channel_set_variable(t_channel, SOFIA_REFER_TO_VARIABLE, full_ref_to);
|
switch_channel_set_variable(t_channel, SOFIA_REFER_TO_VARIABLE, full_ref_to);
|
||||||
}
|
}
|
||||||
|
|
||||||
switch_ivr_session_transfer(t_session, ext, NULL, NULL);
|
if (idest) {
|
||||||
|
switch_ivr_session_transfer(t_session, idest, "inline", NULL);
|
||||||
|
} else {
|
||||||
|
switch_ivr_session_transfer(t_session, ext, NULL, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
nua_notify(tech_pvt->nh,
|
nua_notify(tech_pvt->nh,
|
||||||
NUTAG_NEWSUB(1),
|
NUTAG_NEWSUB(1),
|
||||||
SIPTAG_CONTENT_TYPE_STR("message/sipfrag"),
|
SIPTAG_CONTENT_TYPE_STR("message/sipfrag"),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user