Добавление кнопки звонка к полю, как в средствах связи, что бы можно было при звонке привязать в "Связи" запись раздела из которого был произведен звонок
![]()
Нравится
Добрый день! что касается добавления кнопки к полю, то подобное описано в данной статье. Что касается осуществление звонка, то Вам нужно подключить миксин CommunicationOptionsMixin в своем модуле откуда будете осуществлять звонок и привязать на кнопку метод обработчик, в результате выполнения которого будет вызываться один из методов миксина: callContact(number, contactId) или же callAccount: function(number, accountId)
Нигрескул Алексей,
Проблема в том что вызов нужно сделать из раздела "Обращения", в записи которого нет контакта (анонимное обращение, где телефонный номер человек отправляет из формы для связи). По этой причине поле номера телефона было созданно кастомное, но связки с контактом или контрагентом нет, а в миксине нужна привязка эта. Если контакт привязан, то при наведении на его миникарточку можно нажать на иконку звонка, и при таком звонке к нему будет привязано обращение из которого звонили, но если контакта нет то звонок из поля должен быть
Александр, эта функция в CommunicationOptionsMixin в конечном счёте посылает сообщение через «песочницу»:
this.sandbox.publish("CallCustomer", {
number: number,
customerId: customerId,
entitySchemaName: entitySchemaName,
callRelationFields: relationFields
});А обработчик — в CtiPanelModelUtilities:
/**
* Handler of call to the subscriber event.
* @param {Object} numberInfo Call parameters information.
* @param {String} numberInfo.number Subscribers phone number.
*/
onCallCustomer: function(numberInfo) {
if (!this.get("IsConnected")) {
this.sandbox.publish("SelectCommunicationPanelItem", {selectedItem: "CtiPanel"});
this.logInfo(this.getResourceString("NotConnectedMessage"));
return;
}
var phoneNumber = numberInfo.number;
if (numberInfo.customerId) {
this.set("AdvisedIdentifiedSubscriberInfo", numberInfo);
}
this.callByNumber(phoneNumber);
},То есть параметр «customerId» не является обязательным и можно попробовать вызвать с одним лишь номером. А о добавлении связей, нужно смотреть, в каком формате при нормальном звонке передаётся callRelationFields и заполнить аналогичным.
Зверев Александр,
CustomerId не обязательный, так как cti все равно определяет по номеру контакт , но если надо привязать ещё ссылку на запись раздела (в деталь связи) то обязательно как оказалось. Другими словами - что бы к звону привязать запись какого-то раздела, нужно что бы в системе обязательно существовал контакт которому звоните, так как если контакт не существует то и привязать к звонку нельзя не запись контакта не запись раздела из которого звоните. Ограничение зачем такое сделано не знаю, так как у меня рассмотрение анонимных обращений, и контакта нет, но звонки делают и привязать обращение к звонку надо, а нельзя
Если штатными API звонков не получится, можно вычислить Id нового звонка и создать записи или заполнить поля связей как обычные данные, заполнив поля по аналогии. Более подробно увидеть, что создаётся, можно, отловив уходящие к серверам HTTP или SQL-запросы.