Добавление кнопки звонка к полю

Добавление кнопки звонка к полю, как в средствах связи, что бы можно было при звонке привязать в "Связи" запись раздела из которого был произведен звонок

Нравится

5 комментариев

Добрый день! что касается добавления кнопки к полю, то подобное описано в данной статье. Что касается осуществление звонка, то Вам нужно подключить миксин 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-запросы.

Показать все комментарии