<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 2.0cm 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="DE" link="#0563C1" vlink="#954F72" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal">Hello,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span lang="EN-US">I have tested following scenario:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Alice "calls" Bob. Call is established.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">At the end of the call, Bob disconnects (hangs up) first and generates a BYE message.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">If there is a syntax error in FROM Header of BYE message, a  400 “Bad From header” is responded by the Proxy.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">If there is a syntax error in TO Header of BYE message, the message is discarded.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">According RFC 3261 this is not correct.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Is it okay, to implement the same logic for TO Header as done for FROM Header?<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">RFC 3261:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">16.2 Stateful Proxy<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">……….<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">For all new requests, including any with unknown methods, an element  intending to proxy the request MUST:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">      1. Validate the request (Section 16.3)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">      2. Preprocess routing information (Section 16.4)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">      3. Determine target(s) for the request (Section 16.5)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">            +--------------------+<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">            |                    | +---+<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">            |                    | | C |<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">            |                    | | T |<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">            |                    | +---+<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">      +---+ |       Proxy        | +---+   CT = Client Transaction<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">      | S | |  "Higher" Layer    | | C |<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">      | T | |                    | | T |   ST = Server Transaction<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">      +---+ |                    | +---+<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">            |                    | +---+<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">            |                    | | C |<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">            |                    | | T |<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">            |                    | +---+<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">            +--------------------+<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">               Figure 3: Stateful Proxy Model<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">      4. <b>Forward the request to each target (Section 16.6)</b><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">      </span>5. Process all responses (Section 16.7)<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span lang="EN-US">16.3 Request Validation<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">   Before an element can proxy a request, it MUST verify the message’s  validity. 
<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">   A valid message must pass the following checks:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">      <b>1. Reasonable Syntax<o:p></o:p></b></span></p>
<p class="MsoNormal"><span lang="EN-US">      2. URI scheme<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">      3. Max-Forwards<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">      4. (Optional) Loop Detection<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">      5. Proxy-Require<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">      6. Proxy-Authorization<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">   <b>If any of these checks fail, the element MUST behave as a user agent server (see Section 8.2) and respond with an error code.<o:p></o:p></b></span></p>
<p class="MsoNormal"><b><span lang="EN-US"><o:p> </o:p></span></b></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">LOGs:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">BYE with syntax error in  FROM header:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Sep 21 16:44:51 vict2-ims3 /usr/sbin/kamailio[12723]: [logSDID@20306 resource="core"] ERROR: <core> [core/parser/parse_addr_spec.c:555]: parse_to_param(): unexpected end of header, status 20: [;transport=UDP;tag=b3af-8e5a-1e36-79340f18;#015]
 .<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Sep 21 16:44:51 vict2-ims3 /usr/sbin/kamailio[12723]: [logSDID@20306 resource="core"] ERROR: <core> [core/parser/parse_addr_spec.c:881]: parse_addr_spec(): invalid To -  unexpected end of header in state 11<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Sep 21 16:44:51 vict2-ims3 /usr/sbin/kamailio[12723]: [logSDID@20306 resource="core"] ERROR: <core> [core/parser/parse_from.c:75]: parse_from_header(): bad From header [<a href="sip:catt180@vict-ims.net;transport=UDP;tag=b3af-8e5a-1e36-79340f18;">sip:catt180@vict-ims.net;transport=UDP;tag=b3af-8e5a-1e36-79340f18;</a>]<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Sep 21 16:44:51 vict2-ims3 /usr/sbin/kamailio[12723]: [logSDID@20306 resource="pv"] ERROR: pv [pv_core.c:468]: pv_get_from_attr(): cannot parse From header<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Sep 21 16:44:51 vict2-ims3 /usr/sbin/kamailio[12723]: [logSDID@20306 resource="xlog"] INFO: <script>: route BYE (<null> (193.154.113.40:5065) to
<a href="sip:catt181@vict-ims.net">sip:catt181@vict-ims.net</a>, 1632235417904catt180, )<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Sep 21 16:44:51 vict2-ims3 /usr/sbin/kamailio[12723]: [logSDID@20306 resource="xlog"] INFO: <script>: BYE (BYE
<a href="sip:catt181@193.154.113.40:5065;transport=UDP;rinstance=317-catt181">sip:catt181@193.154.113.40:5065;transport=UDP;rinstance=317-catt181</a> SIP/2.0#015#012From:
<a href="sip:catt180@vict-ims.net;transport=UDP;tag=b3af-8e5a-1e36-79340f18;#015#012To">
sip:catt180@vict-ims.net;transport=UDP;tag=b3af-8e5a-1e36-79340f18;#015#012To</a>:
<a href="sip:catt181@vict-ims.net;transport=UDP;tag=9d7b-d1c6-c06b-7a1dbec7#015#012Call-ID">
sip:catt181@vict-ims.net;transport=UDP;tag=9d7b-d1c6-c06b-7a1dbec7#015#012Call-ID</a>: 1632235417904catt180#015#012CSeq: 2 BYE#015#012Contact:
<a href="sip:catt180@193.154.113.40:5065;transport=UDP;rinstance=317-catt180">sip:catt180@193.154.113.40:5065;transport=UDP;rinstance=317-catt180</a>#015#012Content-Length: 0#015#012Max-Forwards: 70#015#012Route:
<a href="sip:mo@172.29.21.60;r2=on;lr;ftag=b3af-8e5a-1e36-79340f18;rm=8;did=8ed.6e12">
sip:mo@172.29.21.60;r2=on;lr;ftag=b3af-8e5a-1e36-79340f18;rm=8;did=8ed.6e12</a>#015#012Route:
<a href="sip:mo@pcscf-1.vict-ims.net:5060;r2=on;lr;ftag=b3af-8e5a-1e36-79340f18;rm=8;did=8ed.6e12">
sip:mo@pcscf-1.vict-ims.net:5060;r2=on;lr;ftag=b3af-8e5a-1e36-79340f18;rm=8;did=8ed.6e12</a>#015#012Route:
<a href="sip:mo@vict-ims.net;lr;ftag=b3af-8e5a-1e36-79340f18;did=8ed.e7b1">sip:mo@vict-ims.net;lr;ftag=b3af-8e5a-1e36-79340f18;did=8ed.e7b1</a>#015#012Route:
<a href="sip:mt@vict-ims.net;lr;ftag=b3af-8e5a-1e36-79340f18;did=8ed.e7b1">sip:mt@vict-ims.net;lr;ftag=b3af-8e5a-1e36-79340f18;did=8ed.e7b1</a>#015#012Route:
<a href="sip:mt@pcscf-1.vict-ims.net;r2=on;lr;ftag=b3af-8e5a-1e36-79340f18;rm=7;did=8ed.7e12">
sip:mt@pcscf-1.vict-ims.net;r2=on;lr;ftag=b3af-8e5a-1e36-79340f18;rm=7;did=8ed.7e12</a>#015#012Route:
<a href="sip:mt@172.29.21.60:5060;r2=on;lr;ftag=b3af-8e5a-1e36-79340f18;rm=7;did=8ed.7e12">
sip:mt@172.29.21.60:5060;r2=on;lr;ftag=b3af-8e5a-1e36-79340f18;rm=7;did=8ed.7e12</a>#015#012Via: SIP/2.0/UDP 193.154.113.40:5065;branch=z9hG4bKf7057b36-0#015#012#015#012)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Sep 21 16:44:51 vict2-ims3 /usr/sbin/kamailio[12723]: [logSDID@20306 resource="core"] ERROR: <core> [core/parser/parse_addr_spec.c:555]: parse_to_param(): unexpected end of header, status 20: [;transport=UDP;tag=b3af-8e5a-1e36-79340f18;#015]
 .<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Sep 21 16:44:51 vict2-ims3 /usr/sbin/kamailio[12723]: [logSDID@20306 resource="core"] ERROR: <core> [core/parser/parse_addr_spec.c:881]: parse_addr_spec(): invalid To -  unexpected end of header in state 11<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Sep 21 16:44:51 vict2-ims3 /usr/sbin/kamailio[12723]: [logSDID@20306 resource="sanity"] WARNING: sanity [sanity.c:776]: check_parse_uris(): failed to parse From header [<a href="sip:catt180@vict-ims.net;transport=UDP;tag=b3af-8e5a-1e36-79340f18;">sip:catt180@vict-ims.net;transport=UDP;tag=b3af-8e5a-1e36-79340f18;</a>]<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Sep 21 16:44:51 vict2-ims3 /usr/sbin/kamailio[12723]: [logSDID@20306 resource="xlog"] INFO: <script>: t_relay_send_reply_sl - BYE (SIP/2.0
<b>400 Bad From header</b>#015#012From: <a href="sip:catt180@vict-ims.net;transport=UDP;tag=b3af-8e5a-1e36-79340f18;#015#012To">
sip:catt180@vict-ims.net;transport=UDP;tag=b3af-8e5a-1e36-79340f18;#015#012To</a>:
<a href="sip:catt181@vict-ims.net;transport=UDP;tag=9d7b-d1c6-c06b-7a1dbec7#015#012Call-ID">
sip:catt181@vict-ims.net;transport=UDP;tag=9d7b-d1c6-c06b-7a1dbec7#015#012Call-ID</a>: 1632235417904catt180#015#012CSeq: 2 BYE#015#012Via: SIP/2.0/UDP 193.154.113.40:5065;branch=z9hG4bKf7057b36-0#015#012Server: Kamailio P-CSCF#015#012Content-Length: 0#015#012#015#012)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">BYE with syntax error in TO header:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Sep 21 16:41:07 vict2-ims3 /usr/sbin/kamailio[12733]: [logSDID@20306 resource="core"] ERROR: <core> [core/parser/parse_addr_spec.c:555]: parse_to_param(): unexpected end of header, status 20: [;transport=UDP;tag=1ba4-ff0c-82af-415174d1;#015#012]
 .<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Sep 21 16:41:07 vict2-ims3 /usr/sbin/kamailio[12733]: [logSDID@20306 resource="core"] ERROR: <core> [core/parser/parse_addr_spec.c:881]: parse_addr_spec(): invalid To -  unexpected end of header in state 13<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Sep 21 16:41:07 vict2-ims3 /usr/sbin/kamailio[12733]: [logSDID@20306 resource="core"] ERROR: <core> [core/parser/msg_parser.c:167]: get_hdr_field(): bad to header<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Sep 21 16:41:07 vict2-ims3 /usr/sbin/kamailio[12733]: [logSDID@20306 resource="core"] ERROR: <core> [core/parser/msg_parser.c:337]: parse_headers(): bad header field [To:
<a href="sip:catt181@vict">sip:catt181@vict</a>]<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Sep 21 16:41:07 vict2-ims3 /usr/sbin/kamailio[12733]: [logSDID@20306 resource="core"] ERROR: <core> [core/parser/msg_parser.c:687]: parse_msg(): ERROR: parse_msg: message=<BYE
<a href="sip:catt181@193.154.113.40:5065;transport=UDP;rinstance=317-catt181">sip:catt181@193.154.113.40:5065;transport=UDP;rinstance=317-catt181</a> SIP/2.0#015#012From:
<a href="sip:catt180@vict-ims.net;transport=UDP;tag=b7fb-dd8f-30fd-2a93fc86#015#012To">
sip:catt180@vict-ims.net;transport=UDP;tag=b7fb-dd8f-30fd-2a93fc86#015#012To</a>:
<a href="sip:catt181@vict-ims.net;transport=UDP;tag=1ba4-ff0c-82af-415174d1;#015#012Call-ID">
sip:catt181@vict-ims.net;transport=UDP;tag=1ba4-ff0c-82af-415174d1;#015#012Call-ID</a>: 1632235194213catt180#015#012CSeq: 2 BYE#015#012Contact:
<a href="sip:catt180@193.154.113.40:5065;transport=UDP;rinstance=317-catt180">sip:catt180@193.154.113.40:5065;transport=UDP;rinstance=317-catt180</a>#015#012Content-Length: 0#015#012Max-Forwards: 70#015#012Route:
<a href="sip:mo@172.29.21.60;r2=on;lr;ftag=b7fb-dd8f-30fd-2a93fc86;rm=8;did=281.c9a1">
sip:mo@172.29.21.60;r2=on;lr;ftag=b7fb-dd8f-30fd-2a93fc86;rm=8;did=281.c9a1</a>#015#012Route:
<a href="sip:mo@pcscf-1.vict-ims.net:5060;r2=on;lr;ftag=b7fb-dd8f-30fd-2a93fc86;rm=8;did=281.c9a1">
sip:mo@pcscf-1.vict-ims.net:5060;r2=on;lr;ftag=b7fb-dd8f-30fd-2a93fc86;rm=8;did=281.c9a1</a>#015#012Route:
<a href="sip:mo@vict-ims.net;lr;ftag=b7fb-dd8f-30fd-2a93fc86;did=281.b871">sip:mo@vict-ims.net;lr;ftag=b7fb-dd8f-30fd-2a93fc86;did=281.b871</a>#015#012Route:
<a href="sip:mt@vict-ims.net;lr;ftag=b7fb-dd8f-30fd-2a93fc86;did=281.b871">sip:mt@vict-ims.net;lr;ftag=b7fb-dd8f-30fd-2a93fc86;did=281.b871</a>#015#012Route:
<a href="sip:mt@pcscf-1.vict-ims.net;r2=on;lr;ftag=b7fb-dd8f-30fd-2a93fc86;rm=7;did=281.d9a1">
sip:mt@pcscf-1.vict-ims.net;r2=on;lr;ftag=b7fb-dd8f-30fd-2a93fc86;rm=7;did=281.d9a1</a>#015#012Route:
<a href="sip:mt@172.29.21.60:5060;r2=on;lr;ftag=b7fb-dd8f-30fd-2a93fc86;rm=7;did=281.d9a1">
sip:mt@172.29.21.60:5060;r2=on;lr;ftag=b7fb-dd8f-30fd-2a93fc86;rm=7;did=281.d9a1</a>#015#012Via: SIP/2.0/UDP 193.154.113.40:5065;branch=z9hG4bK0850615e-0#015#012#015#012><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Sep 21 16:41:07 vict2-ims3 /usr/sbin/kamailio[12733]: [logSDID@20306 resource="core"] ERROR: <core> [core/receive.c:199]: receive_msg(): core parsing of SIP message failed (193.154.113.40:5065/1)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">BR<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Theo<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
</div>
</body>
</html>