dialog.rtc.useVideo(dialog.videoStream);};$.verto.dialog.prototype.useStereo=function(on){var dialog=this;dialog.params.useStereo=on;dialog.rtc.useStereo(on);};$.verto.dialog.prototype.dtmf=function(digits){var dialog=this;if(digits){dialog.sendMethod("verto.info",{dtmf:digits});}};$.verto.dialog.prototype.transfer=function(dest,params){var dialog=this;if(dest){cur_call.sendMethod("verto.modify",{action:"transfer",destination:dest,params:params});}};$.verto.dialog.prototype.hold=function(params){var dialog=this;cur_call.sendMethod("verto.modify",{action:"hold",params:params});};$.verto.dialog.prototype.unhold=function(params){var dialog=this;cur_call.sendMethod("verto.modify",{action:"unhold",params:params});};$.verto.dialog.prototype.toggleHold=function(params){var dialog=this;cur_call.sendMethod("verto.modify",{action:"toggleHold",params:params});};$.verto.dialog.prototype.message=function(msg){var dialog=this;var err=0;if(!msg.to){console.error("Missing To");err++;}
if(!msg.body){console.error("Missing Body");err++;}
if(err){return false;}
-dialog.sendMethod("verto.info",{msg:msg});return true;};$.verto.dialog.prototype.answer=function(params){var dialog=this;if(!dialog.answered){if(params){if(params.useVideo){dialog.useVideo(true);}}
+dialog.sendMethod("verto.info",{msg:msg});return true;};$.verto.dialog.prototype.answer=function(params){var dialog=this;if(!dialog.answered){if(params){if(params.useVideo){dialog.useVideo(true);}
+dialog.params.callee_id_name=params.callee_id_name;dialog.params.callee_id_number=params.callee_id_number;}
dialog.rtc.createAnswer(dialog.params.sdp);dialog.answered=true;}};$.verto.dialog.prototype.handleAnswer=function(params){var dialog=this;if(dialog.state.val>=$.verto.enum.state.active.val){return;}
if(dialog.state.val>=$.verto.enum.state.early.val){dialog.setState($.verto.enum.state.active);}else{dialog.rtc.answer(params.sdp,function(){dialog.setState($.verto.enum.state.active);},function(e){console.error(e);dialog.hangup();});console.log("ANSWER SDP",params.sdp);}};$.verto.dialog.prototype.cidString=function(enc){var dialog=this;var party=dialog.params.remote_caller_id_name+(enc?" <":" <")+dialog.params.remote_caller_id_number+(enc?">":">");return party;};$.verto.dialog.prototype.sendMessage=function(msg,params){var dialog=this;if(dialog.callbacks.onMessage){dialog.callbacks.onMessage(dialog.verto,dialog,msg,params);}};$.verto.dialog.prototype.handleInfo=function(params){var dialog=this;dialog.sendMessage($.verto.enum.message.info,params.msg);};$.verto.dialog.prototype.handleDisplay=function(params){var dialog=this;if(params.display_name){dialog.params.remote_caller_id_name=params.display_name;}
if(params.display_number){dialog.params.remote_caller_id_number=params.display_number;}
caller_id_name = switch_channel_get_variable(tech_pvt->channel, "callee_id_name");
caller_id_number = switch_channel_get_variable(tech_pvt->channel, "callee_id_number");
}
-
+
if (zstr(caller_id_name)) {
caller_id_name = "Outbound Call";
}
cJSON *dialog = NULL;
const char *call_id = NULL, *sdp = NULL;
int err = 0;
-
+ const char *callee_id_name = NULL, *callee_id_number = NULL;
+
*response = obj;
if (!(dialog = cJSON_GetObjectItem(params, "dialogParams"))) {
err = 1; goto cleanup;
}
+ callee_id_name = cJSON_GetObjectCstr(dialog, "callee_id_name");
+ callee_id_number = cJSON_GetObjectCstr(dialog, "callee_id_number");
+
if ((session = switch_core_session_locate(call_id))) {
verto_pvt_t *tech_pvt = switch_core_session_get_private_class(session, SWITCH_PVT_SECONDARY);
}
if (!err) {
+ if (callee_id_name) {
+ switch_channel_set_profile_var(tech_pvt->channel, "callee_id_name", callee_id_name);
+ }
+ if (callee_id_number) {
+ switch_channel_set_profile_var(tech_pvt->channel, "callee_id_number", callee_id_number);
+ }
switch_channel_mark_answered(tech_pvt->channel);
}
if (!zstr(outbound_profile->destination_number)) {
dest = strdup(outbound_profile->destination_number);
}
-
+
if (zstr(dest)) {
goto end;
}
if (!switch_stristr("u:", dest)) {
char *dial_str = verto_get_dial_string(dest, NULL);
+ switch_event_add_header_string(var_event, SWITCH_STACK_BOTTOM, "verto_orig_dest", dest);
+ if (zstr(switch_event_get_header(var_event, "origination_callee_id_number"))) {
+ char *trimmed_dest = strdup(dest);
+ char *p = strchr(trimmed_dest, '@');
+ if (p) *p = '\0';
+ switch_event_add_header_string(var_event, SWITCH_STACK_BOTTOM, "origination_callee_id_number", trimmed_dest);
+ free(trimmed_dest);
+ }
+
cause = SWITCH_CAUSE_USER_NOT_REGISTERED;
if (dial_str) {
}
return cause;
+ } else {
+ const char *dialed_user = switch_event_get_header(var_event, "dialed_user");
+ const char *dialed_domain = switch_event_get_header(var_event, "dialed_domain");
+
+ if (dialed_user) {
+ if (dialed_domain) {
+ switch_event_add_header(var_event, SWITCH_STACK_BOTTOM, "verto_orig_dest", "%s@%s", dialed_user, dialed_domain);
+ } else {
+ switch_event_add_header_string(var_event, SWITCH_STACK_BOTTOM, "verto_orig_dest", dialed_user);
+ }
+ if (zstr(switch_event_get_header(var_event, "origination_callee_id_number"))) {
+ switch_event_add_header_string(var_event, SWITCH_STACK_BOTTOM, "origination_callee_id_number", dialed_user);
+ outbound_profile->callee_id_number = switch_sanitize_number(switch_core_strdup(outbound_profile->pool, dialed_user));
+ }
+ }
}
if ((cause = switch_core_session_outgoing_channel(session, var_event, "rtc",