]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-6665 #resolve #comment This should fix it
authorAnthony Minessale <anthm@freeswitch.org>
Fri, 18 Jul 2014 17:05:07 +0000 (22:05 +0500)
committerAnthony Minessale <anthm@freeswitch.org>
Fri, 18 Jul 2014 17:05:15 +0000 (22:05 +0500)
html5/verto/demo/js/verto-min.js
html5/verto/demo/verto.js
html5/verto/js/src/jquery.verto.js
src/mod/endpoints/mod_verto/mod_verto.c
src/switch_core_media.c

index d56d60da55699f2e153d089392286a460dd68b0c..d17c6097c5b63da194f44c1dff3cbf3f9d2c4a1c 100644 (file)
@@ -210,7 +210,8 @@ if(dialog.state.val>$.verto.enum.state.new.val&&dialog.state.val<$.verto.enum.st
 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?" &lt;":" <")+dialog.params.remote_caller_id_number+(enc?"&gt;":">");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;}
index af9392bbfaf3714ae86d2df291053433cc48d961..0f72f28f9a6ce28124fde0136ce2f082be0bb848 100644 (file)
@@ -111,7 +111,9 @@ var callbacks = {
 
             $("#ansbtn").click(function() {
                 cur_call.answer({
-                   useStereo: $("#use_stereo").is(':checked')
+                   useStereo: $("#use_stereo").is(':checked'),
+                   callee_id_name: $("#name").val(),
+                   callee_id_number: $("#cid").val(),
                });
                 $('#dialog-incoming-call').dialog('close');
             });
index 029afc32a1caab493216f6fb1ae75eff289e985a..d29cb7584b8f72ee524660b1aac5744f961619c5 100644 (file)
                 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;
index 1b3d48f2dd2d6c3fed09305831e4cdd1bd992a15..335e3e0c06b6db5f3728a3936a3f1789aa65fd0c 100644 (file)
@@ -934,7 +934,7 @@ static void set_call_params(cJSON *params, verto_pvt_t *tech_pvt) {
                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";
        }
@@ -1924,7 +1924,8 @@ static switch_bool_t verto__answer_func(const char *method, cJSON *params, jsock
        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"))) {
@@ -1942,6 +1943,9 @@ static switch_bool_t verto__answer_func(const char *method, cJSON *params, jsock
                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);
@@ -1968,6 +1972,12 @@ static switch_bool_t verto__answer_func(const char *method, cJSON *params, jsock
                }
                
                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);
                }
 
@@ -3855,7 +3865,7 @@ static switch_call_cause_t verto_outgoing_channel(switch_core_session_t *session
        if (!zstr(outbound_profile->destination_number)) {
                dest = strdup(outbound_profile->destination_number);
        }
-       
+
        if (zstr(dest)) {
                goto end;
        }
@@ -3863,6 +3873,15 @@ static switch_call_cause_t verto_outgoing_channel(switch_core_session_t *session
        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) {
@@ -3885,6 +3904,21 @@ static switch_call_cause_t verto_outgoing_channel(switch_core_session_t *session
                }
 
                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",
index a6a846dad52deb410d23078727599d589c2fa7d5..ab98003c111f80c2f5f722390b9a4bd7d4fd5703 100644 (file)
@@ -3502,7 +3502,7 @@ SWITCH_DECLARE(uint8_t) switch_core_media_negotiate_sdp(switch_core_session_t *s
                                                        switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG,
                                                                                          "Bah HUMBUG! Sticking with %s@%uh@%ui\n",
                                                                                          imp->iananame, imp->samples_per_second, imp->microseconds_per_packet / 1000);
-                                               } else if ((ptime && codec_ms && codec_ms * 1000 != imp->microseconds_per_packet) || remote_codec_rate != codec_rate || map_channels != imp->number_of_channels) {
+                                               } else if ((ptime && codec_ms && codec_ms * 1000 != imp->microseconds_per_packet) || remote_codec_rate != codec_rate) {
                                                        /* ptime does not match */
                                                        match = 0;