"New Ticket"-Button in Callerlog

If you plan to develop it for your self then I can try to give you some advice. The current frontend is basically also MVC. You have a template, controller and model.

To get knowledge about code it makes sense to search a lot. Often for JavaScript there are some CSS classes used like js-phoneMenuItem or js-newTicket. If you search for this you will find the code in the controller of the CTI. E.g.

https://github.com/zammad/zammad/blob/a91131f84c142e7c8f02d6f1bfb76aa0c94acf29/app/assets/javascripts/app/controllers/cti.coffee#L49-L55

So there is some kind of global event which is executed while rendering the sidebar and it will assign some click events for the ticket creation.

If you add code to the caller_log.jst.eco it might make sense to search for the spot where the template for the main content is rendered. Usually it’s something like App.view('cti/caller_log'). Here it is also in the same file a bit below:

https://github.com/zammad/zammad/blob/a91131f84c142e7c8f02d6f1bfb76aa0c94acf29/app/assets/javascripts/app/controllers/cti.coffee#L178

You would need to code some events after rendering in there to support the click event there as well.

If you want to keep your changes maintainable in your system as a package, I recommend you to read my tutorials.