¿Puedo hacer una teleconferencia?

Para modificar la funcionalidad de transferencia de la "Campaña Simple" a la funcionalidad de Conferencia, la modificación debe ser la siguiente:

 

1. Asegúrate de que tienes activada la personalización y el scripting:

http://soporte.dialgoo.com/img_conocimiento/trabajando-con-dialfire-organizar-una-campa%c3%b1a-otros/TboUWd1P_NU9895ek81QtmFKuE-qAD0d4Q.png

 

2. Una vez que haya hecho esto, puede proceder a modificar los antiguos campos de la función de transferencia para que coincidan con las nuevas definiciones de la función de conferencia.

n1tnEZQBg0Beyq8ct8UDeMHJEemrVi6pHg.png?1590748798

 - Cambie el nombre del botón "Transferir al cliente" por "Conectar las partes":

4Gj2pEIISPWPaoIZHYYlQa4C-ZOov7wXCw.png?1590753690

- En el menú desplegable "Número de transferencia" añada los campos con el nombre y el número de teléfono de la persona/departamento que desea incluir en su conferencia.

L8g04l5mAcMEUK1vJ5YuGQAs1RaEvMMaBw.png?1590748926

 

3. Inicie una nueva sección sobre el campo "Número de transferencia" y dele un nombre significativo:

saUr-wOW0bZsEGAQ0oJbGZzjoW0OvA8jKw.png?1590753774

A continuación, proceda a crear los campos adicionales necesarios para poder utilizar la función de conferencia:

4. Añada un campo de número de teléfono que tendrá el nombre interno "dial_A".

jzuzAl-xUAqK2ngYktdLOm2nl6wgUurAww.png?1590749057

 

5. Cree tres nuevos botones con los nombres siguientes (el nombre interno debe ser el indicado):

Llamar al colega -----> xfer

Recuperar cliente -----> unpark

Conferencia -----> conference

8meHxdvyDJ6r4ifevmYKHCYqox6isAp_zQ.png?1590749147

 

6. (Opcional) El último campo que debe agregar es un campo HTML con la siguiente información, edítelo haciendo clic en el lápiz:

<div class="alert alert-info" style="float:right; width: 50%" text-align="left"><b>Transfer-status:</b> {{temp.transfer_msg}}</div><div class="alert alert-info" text-align="left"><b>Transfer-status:</b> {{temp.transfer_msg}}</div><div class="alert alert-info" text-align="left"><b>Transfer-status:</b> {{temp.transfer_msg}}</div><div class="alert alert-info" text-align="left"><b>Transfer-status:</b> {{temp.transfer_msg}}</div>
HTML

 

PJLCIaVW58-rwmcO6xIIZj2I8jJ0wdwNMA.png?1590749198

8. Por último, una vez hechas todas estas modificaciones, puede reemplazar completamente el código del Script por el de la caja siguiente:

if (form.abrir_url) {
  form.abrir_url.onclick = function() {
    if (data.url && data.url.substr(0, 7) !== "http://" && data.url.substr(0, 8) !== "https://") {
      data.url = "http://" + data.url;
    }
    window.open(data.url);
  };

  form.abrir_url.hidden = function() {
    return data.url === "";
  };
}
/*
// WEITERLEITUNG
if (form.transferir) {
  form.transferir.onclick = function() {
    var transfer_type = transfer_conf.type ? transfer_conf.type : "";
    var transfer_to = data.numero_transfer ? data.numero_transfer.toString() : "";
    var transfer_from = transfer_conf.from ? transfer_conf.from.toString() : "";
    var transfer_stoprec = transfer_conf.stoprecording ? transfer_conf.stoprecording : true;

    if (transfer_to && transfer_to.substr(0, 1) !== "+") transfer_to = "+" + transfer_to;
    if (transfer_from && transfer_from.substr(0, 1) !== "+") transfer_from = "+" + transfer_from;

    if ((transfer_type !== "pstn" && transfer_type !== "sip") || !transfer_to || transfer_to.substr(0, 1) !== "+") {
      //console.log("---------TRANSFER CONFIG ERROR---------",transfer_conf);
      return;
    }

    actions.transfer(transfer_type + ":" + transfer_to, {
      "from": transfer_from,
      "stopRecordings": transfer_stoprec
    });
    //console.log("---------TRANSFER SUCCESS---------",transfer_type,transfer_to,transfer_from,transfer_stoprec);
  };
}

var transfer_conf = {};
var transfer_list = [];
var conf_error = 0;

function initXferConf(catalogFile) {
  $http.get(permissions.actions.campaign + "/resources/" + catalogFile)
    .success(function(listdata) {
      transfer_conf = temp.compileYaml(listdata);
      var transfer_array = transfer_conf ? transfer_conf.to : [];
      for (var x in transfer_array) {
        var o = {};
        o.title = x;
        o.value = transfer_array[x];
        transfer_list.push(o);
      }
      form.numero_transfer.setOptions(transfer_list);
      //console.log("---------TRANSFER CONFIG OBJECT---------",transfer_conf);
      onUpdate();
    })
    .error(function(error) {
      conf_error = 1;
    });
}
*/

/**** transfer button ***/
form.xfer.onclick = function () {
  var number = formatPhoneNumber(data.numero_transfer);
  if (!number) return;
  parkId = parkId || createParkId();
  var protocol = "pstn:"; // pstn: or sip:
  actions.dial(protocol + formatPhoneNumber(data.numero_transfer), {
    "parkId": parkId
  });
  temp.transfer_msg = "Cliente en espera, llamando un tercero al:" + data.dial_A;
  data.numero_transfer = "";
};

/*** this is the additional transfer logic for 'hot' transfer buttons ***/
function createParkId() {
  var id = "";
  var charlist = "23456789ABCDEFGHJKLMNPQRSTUVWXYZ";
  for (var i = 0; i < 16; i++) {
    id += charlist.charAt(Math.floor(Math.random() * 32));
  }
  return id;
}

var parkId = "";
form.transferir.onclick = function () {
  actions.transfer("park:" + parkId);
  parkId = "";
  temp.transfer_msg = "Las partes están conectadas ahora";
};


form.conference.onclick = function () {
  actions.transfer("conference:", {
    "from": "",
    "stopRecordings": false
  });
  temp.transfer_msg = "La Conferencia se ha iniciado";
};

form.conference.hidden = function () {
  return !parkId;
};

form.transferir.hidden = function () {
  return !parkId;
};

form.unpark.onclick = function () {
  actions.dial("park:" + parkId, {});
  parkId = "";
  temp.transfer_msg = "El cliente ha sido recuperado";
};

form.unpark.hidden = function () {
  return !parkId;
};

form.xfer.hidden = function () {
  return parkId;
};

/*** end of hot transfer logic ***/


var formatPhoneNumber = function (s_nr) {
  return (s_nr || "").replace(/^\+/, "00").replace(/\D/g, "").replace(/^00/, "+");
};


form.dial_A.hidden = function () {
  return true;
};

form.numero_transfer.onchange = function () {
  data.dial_A = data.numero_transfer;
};



temp.guideline_template = "";

function initGuidelineTemplate(catalogFile) {
  $http.get(permissions.actions.campaign + "/resources/" + catalogFile).
  success(function(listdata) {
    temp.guideline_template = listdata;
    //console.log("---------GUIDELINE TEMPLATE---------",temp.guideline_template);
    onUpdate();
  });
}

function generateGuideline() {
  if (!temp.guideline_template) return;
  temp.guideline = temp.guideline_template;
  var placeholder = temp.guideline.match(/\{\w*\}/g);

  for (var p = 0; p < (placeholder || []).length; p++) {
    var feld = placeholder[p].replace(/\{|\}/g, "");
    temp.guideline = temp.guideline.replace(placeholder[p], data[feld]);
    //console.log("---------GUIDELINE---------",placeholder[p],data[feld]);
  }
}

function checkEMail(value) {
  if (value === "") return true;
  var regex = new RegExp(/^(\w|\.|\-|\_){0,}(\w){1,}@(\w|\-|\_|\.){1,}\.(\w){2,11}$/);
  return regex.test(value);
}

if (form["Conversation_guideline"]) {
  form["Conversation_guideline"].hidden = function() {
    return !temp.guideline;
  };
}
/*
if (form.transferir) {
  form.transferir.hidden = function() {
    return !data.numero_transfer;
  };
}

form.numero_transfer.hidden = function() {
  return conf_error;
};
*/
function onLoad() {

//  initXferConf("transfer_config.yaml");
  initGuidelineTemplate("guideline.md");
}

function onUpdate() {
  generateGuideline();
}

function onSave() {
  if (!checkEMail(data.email)) {
    return "Incorrect email adress";
  }
}