I have an issue with a vendor where a call placed from a phone that negotiates G.729 (ISP supports both G.729 & G.711) 200 OK with SDP: t=0 0 m=audio 9000 RTP/AVP 8 0 18 101 a=rtpmap:18 G729/8000 a=fmtp:18 annexb=no a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-15
When I place the call on-hold, I send an invite without SDP, this appears OK according to RFC 3261. My issue is that when placing the call on-hold the PBX (server) has no compression resources and so cannot support G.729. This should, I believe negotiate G.711 but is not. The 200 OK I get back from the ISP offers both options: t=0 0 m=audio 16460 RTP/AVP 18 101 a=rtpmap:18 G729a/8000 a=fmtp:18 annexb=no a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-15 a=ptime:20 a=sendrecv The PBX actually waits for an internal timer to expire before finally accepting the offered G.729 codec. ACK sip:0386023724@192.168.175.132:5060;url-cookie=SBCCW-fr7ft3pl6t5d9;transport=udp SIP/2.0 Via: SIP/2.0/UDP 192.168.8.80:5060;branch=z9hG4bK174147504-93234099 Max-Forwards: 70 From: "D.80" <sip:396241...@as.staging.ipvs.net>;tag=0_158177504-93234094 To: <sip:0386023...@as.staging.ipvs.net>;tag=1839278173-1304385963032 Call-ID: 158177504-93234092@192.168.8.80 CSeq: 4 ACK Contact: "D.80" <sip:396241080@192.168.8.80:5060;transport=udp> Content-Type: application/sdp Content-Length: 200 v=0 o=- 2475 2476 IN IP4 192.168.8.80 s=- c=IN IP4 192.168.8.80 t=0 0 m=audio 9000 RTP/AVP 18 101 a=rtpmap:18 G729/8000 a=fmtp:18 annexb=no a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-15 I have raised this as a fault, however the vendor has stated that this complies with RFC3261, and to be honest, I cannot find anything specific to contradict them. The best I can see is below, but this only states should. Is this acceptable operation, according to the RFC's, or is there an RFC I'm overlooking? A UAS providing an offer in a 2xx (because the INVITE did not contain an offer) SHOULD construct the offer as if the UAS were making a brand new call, subject to the constraints of sending an offer that updates an existing session, as described in [13<http://tools.ietf.org/html/rfc3261#ref-13>] in the case of SDP. Specifically, this means that it SHOULD include as many media formats and media types that the UA is willing to support. The UAS MUST ensure that the session description overlaps with its previous session description in media formats, transports, or other parameters that require support from the peer. This is to avoid the need for the peer to reject the session description. If, however, it is unacceptable to the UAC, the UAC SHOULD generate an answer with a valid session description, and then send a BYE to terminate the session. Michael Johnson _______________________________________________ Sip-implementors mailing list Sip-implementors@lists.cs.columbia.edu https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors