CTI - fill additional fields (ticket creation)

How to get additional fields get filled by CTI integration automatically on a newly created ticket after answering a call?

E.g.: Call is answered by agent. A new ticket form is opened. I would like to fill an userdefined object (or add tags) with information the PBX could deliver or that could be fetched by a REST API?

My thoughts so far:

  • I don’t see that this can be done with CTI’s push api https://docs.zammad.org/en/latest/cti/api-push.html. Only predefined fields are possible (event, from, to, direction, callId, user, queue).

  • During ticket creation the ticket hasn’t got an ticket id so I can’t push any information to the ticket.

  • A user defined button placed into the ticket creation form could fetch the information but how to integrate this?

After some research I found the right place for adding additional fields for CTI ticket creation:

app/models/cti/driver/base.rb

Following line can be expanded with the field you want to add to a ticket created by CTI:
params: { customer_id: customer_id.to_s, title: 'Call', id: id },

e.g.:
params: { customer_id: customer_id.to_s, title: 'Call', id: id, <name-of-object>: @params[:<name-of-object>] },