You can solve your problem very easily, using either 3 or 4 trunks or one trunk with 3 or 4 different numbers. In your GSM phonebook you assign names to numbers like German:, French:, Italian: or English:.
Before that you need either different inbound numbers to reach German, French, Italian or English queue or IVR, where customer selects preferred language to be serviced in.
Queues forward the call to your GSM, using different trunks for each of them.
If your provider supports 'Originator Caller ID', you will be able to see original caller ID, but you will not know in which language to answer the call.