Does the IPC protocol allow for double communication between two apps?

I’m building a project where, among other things, you have to send messages over MQTT. I clearly need to have multiple apps communicate with each other. I have a main app from which I have implemented the IPC protocol with another app. However, I would also like to do the other way around, that is to make an app be both client and server. From the secondary app I want to invoke the publish functions of the primary app and then call it again in the main app. When I do this I get the following error, which suggests that it cannot be done (I only put requires and bindings, if I remove them everything will work again):

Can you confirm that this thing cannot be done and that therefore I have to find another way? Because I can’t find anything about it in the Legato Reference Manual. Thank you all

You can see this, we can register a callback for a server to call client:

I understand…I think this post will be more helpful in other parts of my project, so thank you. But in this case I want only call a function from server app to client app.
In other way I have an helloWorld server app (I see how to build IPC on legato reference manual) and a client app that is mqtt. But I want to do another thing: in the server app I want to call the publish function of mqtt client app:
so in the requires and binding I gave mqtt.api. In mqttclient.c I do:
At the same time, mqttClientApp is the client app of helloWorld app component. I don’t know if I’ve made myself clear. Basically I wanted a way to build other functions and call the publish itself in them. I can compile the project, but I get the following error and everything stops:

Am I wrong? Is possible to implement this thing or am I simply doing something wrong?

Didn’t the sample code ipc_step4.rar already show you how to call a function in client by a server???

I am able to do it and without publish all works. The problem is that also in the server I call a function of the client and recall it in the server. I think I write well bindings, requires, provides, etc. Error UNKNOWN seems to be something not allowed… :frowning:
Anyway it’s not very important, I wanted to find a way to make the project more orderly. The worst case would be to have all functions in the same .c