When my application tries to hold a sip call, it sends a ReINVITE containing a=sendonly attribute in SDP message. But Asterisk does not answer a a=recvonly to indicate hold is accepted. Asterisk replies with a=sendrecv , so that call is not hold, and it continues the conversation.
I have tested my application with different PBX, and works perfect. Also I have tested the extension 600 (which is used by my application) with a third-party softphone and Asterisk works perfect in above scenario and answeres a=recvonly.
Here is the log file from Asterisk: 709 (softphone) calls 600 (my application) and 600 tries to hold the call.
I’m sure there is a problem in my SIP/SDP packet, but I can not find the problem.