[Devel] Structure of "487" and "200 Ok" reponses to CANCEL request without provisional response from second hop proxy

reticent tavis.lists at galaxytelecom.net
Thu Sep 15 22:27:19 CEST 2005


Recently a feature was added to OpenSER where it would work around most 
UACs lack of implementing section 9.1 of RFC3261 (which states "If no 
provisional response has been received, the CANCEL request MUST NOT be 
sent;) in that it would wait for the second hop entity to repond to the 
INVITE request before generating a CANCEL request and sending it on.

I'm working with a Cisco 7960 sw-ver7.5 and i'm experiencing some issues 
regarding the "487" and "200 ok" response to the CANCEL message sent 
before SER receives a provisional response from the second hop routing 
entity. 

SER sends the 487 and than the 200 ok but the cisco 7960 does not 
acknowlege the 200 ok with an ACK. 

Reading RFC3261 i found the section that describes the behaviour of the 
UAS (SER) in this situation and the recommended behaviour isn't followed 
by SER, which is (Section 9.2): 
"Regardless of the method of the original request, as long as the CANCEL 
matched an existing transaction, the UAS answers the CANCEL request 
itself with a 200 (OK) response. This response is constructed following 
the procedures described in Section 8.2.6 noting that the To tag of the 
response to the CANCEL and the To tag in the response to the original 
request SHOULD be the same. The response to CANCEL is passed to the 
server transaction for transmission."

In the response (487 and 200 ok) SER generates and adds a "tag=" 
argument to the "To:" header function where the response to the original 
request did not have that tag.

Now i don't know if this is an issue(as, in the spec, it is a SHOULD, 
not a MUST), but i am having a problem with the interaction and came 
across this in the specification so i thought i would mention it here.


tavis



More information about the Devel mailing list