In our company we have integrated OTRS and Redmine via emails. Of course such integration cannot be called complete, but we have solved our task: OTRS users and Redmine users can talk each over via their own systems. Someone in Redmine can create an issue and the issue may be forwarded to OTRS.
Some details.
OTRS has ticket ID in e-mail subject like this: [Ticket#2015032394000015] and Redmine - like this: [#123] (i.e. completely different). Small patch for Redmine resolves where is alien ticket ID (OTRS's) and where is own (Redmine's).
Both systems can send and receive e-mails.
Also we use Redmine helpdesk plugin to not spamming OTRS by developer's discussions, status updates etc. For tickets from OTRS "owner-email" field filled by OTRS's emission e-mail address. Subject of the tickets in Redmine should contain OTRS's ticket number. So should be done in OTRS. So the proposed workflow if the tickets initially created in the OTRS will be:
User -> OTRS: problem description
OTRS -> User: auto-response
(... conversation between the user and the support...)
OTRS -> Redmine: claim to developers
Redmine -> OTRS: auto-response with Redmine ticket number. OTRS should update ticket subject using Redmine's ticket ID.
(... conversation between the support and the developer...)
etc.
The crucial thing is to update OTRS ticket's subject in 5-th point.