Agrawal, Vishal wrote: > Hello Paul, > > Why does SIP not recommend a single way to put the UAS on hold? Has > there ever been any discussion to provide the hold indication in a > separate SIP header in the re-INVITE?
In general IETF doesn't define services, which is what HOLD is. SIP defines mechanisms that can be used to realize services. Also, the harder you look at HOLD the more elusive the concept gets. I think it would be hard to get agreement on a single definition of HOLD. > So far I've not seen two SIP endpoints (different vendors) which offer > or accept the hold and MOH the same way (some expect c=0.0.0.0 (old > way), some respond back with (a=recvonly in response to re-INVITE with > a=sendonly), some respond back with (a=sendrecv), some respond back with > (a=inactive), some can't handle the second re-INVITE with (a=sendonly, > c=MOH server) to connect them to the MOH server. There is no reason why they must all use the same way, as long as they interoperate. The use of c=0 vs the use of sendonly/inactive/etc. it an unfortunate consequence of evolution of the mechanisms. The use of c=0 was deprecated because it has a number of negative consequences, but it is hard to get rid of all the old uses. > Also, the hold is not bidirectional right? If A puts B on hold, A sends > a=sendonly in re-INVITE and B should send a=sendrecv in the response, > right? Wrong. O/A requires that if you are offered sendonly then the only answers you may give are recvonly or inactive. My philosophy is that each side watches out for its own interests, and tries to get as much of that as it can while honoring the O/A rules. So if A offers sendonly, and B doesn't want to be on hold, the B would like sendrecv but answers recvonly because that is the most it is allowed to answer. If B is then on hold that way, and also wants to put A on hold, it would offer sendonly. Then A, who wants sendonly, has to answer INACTIVE because that is all that is consistent with both what it and B want. > If true, then B can send a re-INVITE to A with a=sendonly, what > should the response from A now? How should they take the call off-hold? As long as each side takes care of its own desires, and follows the rules, it works fine. Continue the above example. A wants to go off hold. So it offers sendrecv. But B still wants A to be on hold, so B answers sendonly. Later, B decides to take A off hold, so it offers sendrecv. A also doesn't want any hold, so it answers sendrecv, and they can talk. This works with any sequence of transitions. It also works if one of the parties chooses to use INACTIVE when placing the other party on hold. (Because it doesn't intend to use MoH or otherwise transmit media.) Note that none of this requires either side to know that the reason for the other side's actions have anything to do with HOLD. HOLD is only a local feature that affects the local device's desires regarding use of media. Paul > -Vishal > > > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On Behalf Of Paul > Kyzivat > Sent: Tuesday, October 17, 2006 8:09 AM > To: Retesh > Cc: sip-implementors@cs.columbia.edu; gaurav > Subject: Re: [Sip-implementors] Query: Call Hold Implementation in > SIP/SDP > > Just to restate the point that I an others are trying to make: > > THE ANSWERER CANNOT TELL WHETHER THE OFFERER INTENDED HOLD OR ONE WAY > MEDIA. > > You must construct your device so that it doesn't care. If you attempt > to distinguish the two you will no doubt encounter interoperability > problems. > > Paul > > Retesh wrote: >> Hi Varun >> If I get your point, you are trying to differentiate call on hold with >> one way audio. >> >> Music on hold implemented is using one way audio (sendonly(in offer) >> and recvonly(in answer)). >> >> Practically, hold (without music) is done by exchanging sdp with >> attribute as inactive. Also, in case it is done with a=sendonly(in >> offer) and a=recvonly(in answer), the UAC may chose not to send any >> RTP data at all. >> >> Also INVITE (sendonly) and reINVITE (sendonly) can be treated as 1 way >> audio and call hold respectively. >> >> Hope this helps. >> > _______________________________________________ > Sip-implementors mailing list > Sip-implementors@cs.columbia.edu > https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors > _______________________________________________ Sip-implementors mailing list Sip-implementors@cs.columbia.edu https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors