Hi all. I recently ran into a situation with the SEMS SBC app and a Cisco 
gateway in which the gateway returned a 481 in response to the PRACK. It turned 
out SEMS was sending the PRACK on to the gateway without a To tag, in spite of 
the gateway having returned a To tag with its 18x response.

I looked through AmSipDialog and found SEMS only sets the remote_tag on a 2xx 
INVITE response, but RFC 3261 8.2.6.2 allows the UAS to set the To tag in a 1xx 
response. The patch against git master below sets the dialog's remote_tag on a 
1xx response if the UAS includes a To tag. With this patch in place, SEMS SBC 
interacts with the Cisco gateway correctly.

Best,
andrew

--

diff --git a/core/AmSipDialog.cpp b/core/AmSipDialog.cpp
index 49ac842..6b124cb 100644
--- a/core/AmSipDialog.cpp
+++ b/core/AmSipDialog.cpp
@@ -618,6 +618,10 @@ void AmSipDialog::onRxReply(const AmSipReply& reply)
         status = Proceeding;
       else {
         status = Early;
+
+         // per rfc3261 8.2.6.2, the UAS may include
+         // the To tag in the 1xx responses.
+         remote_tag = reply.to_tag;
       }
      }
      else if(reply.code < 300){
_______________________________________________
Semsdev mailing list
[email protected]
http://lists.iptel.org/mailman/listinfo/semsdev

Reply via email to