Hi,<br><br>I&#39;m trying to get a simple scenario working to generate CDRs in bulk and am using a basic configuration (generated with osipconfig) with the sipp UAC. However, I continue to get a 404 Not Found response to the INVITE. My config and UAC file are below. <br>
<br>Any thoughts?<br><br>Thanks much!<br><br>Steve<br><br>#<br># $Id: opensips_residential.m4 9042 2012-05-17 13:57:10Z vladut-paiu $<br>#<br># OpenSIPS residential configuration script<br>#     by OpenSIPS Solutions &lt;<a href="mailto:team@opensips-solutions.com">team@opensips-solutions.com</a>&gt;<br>
#<br># This script was generated via &quot;make menuconfig&quot;, from<br>#   the &quot;Residential&quot; scenario.<br># You can enable / disable more features / functionalities by<br>#   re-generating the scenario with different options.#<br>
#<br># Please refer to the Core CookBook at:<br>#      <a href="http://www.opensips.org/Resources/DocsCookbooks">http://www.opensips.org/Resources/DocsCookbooks</a><br># for a explanation of possible statements, functions and parameters.<br>
#<br><br><br>####### Global Parameters #########<br><br>debug=6<br>fork=no<br>log_stderror=yes<br>log_facility=LOG_LOCAL1<br><br>#fork=yes<br>#children=4<br><br>/* uncomment the following lines to enable debugging */<br>#debug=6<br>
#fork=no<br>#log_stderror=yes<br><br>/* uncomment the next line to enable the auto temporary blacklisting of <br>   not available destinations (default disabled) */<br>#disable_dns_blacklist=no<br><br>/* uncomment the next line to enable IPv6 lookup after IPv4 dns <br>
   lookup failures (default disabled) */<br>#dns_try_ipv6=yes<br><br>/* comment the next line to enable the auto discovery of local aliases<br>   based on revers DNS on IPs */<br>auto_aliases=no<br><br><br>listen=udp:<a href="http://10.145.185.49:5060">10.145.185.49:5060</a>   # CUSTOMIZE ME<br>
<br>disable_tcp=no<br>listen=tcp:<a href="http://10.145.185.49:5060">10.145.185.49:5060</a>   # CUSTOMIZE ME <br><br>disable_tls=yes<br><br><br>####### Modules Section ########<br><br>#set module path<br>mpath=&quot;/usr/local/opensips_proxy/lib64/opensips/modules/&quot;<br>
<br>#### SIGNALING module<br>loadmodule &quot;signaling.so&quot;<br><br>#### StateLess module<br>loadmodule &quot;sl.so&quot;<br><br>#### Transaction Module<br>loadmodule &quot;tm.so&quot;<br>modparam(&quot;tm&quot;, &quot;fr_timer&quot;, 5)<br>
modparam(&quot;tm&quot;, &quot;fr_inv_timer&quot;, 30)<br>modparam(&quot;tm&quot;, &quot;restart_fr_on_each_reply&quot;, 0)<br>modparam(&quot;tm&quot;, &quot;onreply_avp_mode&quot;, 1)<br><br>#### Record Route Module<br>loadmodule &quot;rr.so&quot;<br>
/* do not append from tag to the RR (no need for this script) */<br>modparam(&quot;rr&quot;, &quot;append_fromtag&quot;, 0)<br><br>#### MAX ForWarD module<br>loadmodule &quot;maxfwd.so&quot;<br><br>#### SIP MSG OPerationS module<br>
loadmodule &quot;sipmsgops.so&quot;<br><br>#### FIFO Management Interface<br>loadmodule &quot;mi_fifo.so&quot;<br>modparam(&quot;mi_fifo&quot;, &quot;fifo_name&quot;, &quot;/tmp/opensips_fifo&quot;)<br>modparam(&quot;mi_fifo&quot;, &quot;fifo_mode&quot;, 0666)<br>
<br><br>#### URI module<br>loadmodule &quot;uri.so&quot;<br>modparam(&quot;uri&quot;, &quot;use_uri_table&quot;, 0)<br><br><br><br><br>#### MYSQL module<br>loadmodule &quot;db_mysql.so&quot;<br><br>#### USeR LOCation module<br>
loadmodule &quot;usrloc.so&quot;<br>modparam(&quot;usrloc&quot;, &quot;nat_bflag&quot;, 10)<br>modparam(&quot;usrloc&quot;, &quot;db_mode&quot;,   2)<br>modparam(&quot;usrloc&quot;, &quot;db_url&quot;,<br>    &quot;mysql://opensips:opensipsrw@localhost/opensips&quot;) # CUSTOMIZE ME<br>
<br><br>#### REGISTRAR module<br>loadmodule &quot;registrar.so&quot;<br>modparam(&quot;registrar&quot;, &quot;tcp_persistent_flag&quot;, 7)<br><br>/* uncomment the next line not to allow more than 10 contacts per AOR */<br>
#modparam(&quot;registrar&quot;, &quot;max_contacts&quot;, 10)<br><br>#### ACCounting module<br>loadmodule &quot;acc.so&quot;<br>/* what special events should be accounted ? */<br>modparam(&quot;acc&quot;, &quot;early_media&quot;, 0)<br>
modparam(&quot;acc&quot;, &quot;report_cancels&quot;, 0)<br>/* by default we do not adjust the direct of the sequential requests.<br>   if you enable this parameter, be sure the enable &quot;append_fromtag&quot;<br>   in &quot;rr&quot; module */<br>
modparam(&quot;acc&quot;, &quot;detect_direction&quot;, 0)<br>modparam(&quot;acc&quot;, &quot;failed_transaction_flag&quot;, 3)<br>/* account triggers (flags) */<br>modparam(&quot;acc&quot;, &quot;db_flag&quot;, 1)<br>modparam(&quot;acc&quot;, &quot;db_missed_flag&quot;, 2)<br>
modparam(&quot;acc&quot;, &quot;db_url&quot;,<br>    &quot;mysql://opensips:opensipsrw@localhost/opensips&quot;) # CUSTOMIZE ME<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>####### Routing Logic ########<br>
<br># main request routing logic<br><br>route{<br>    <br><br>    if (!mf_process_maxfwd_header(&quot;10&quot;)) {<br>        sl_send_reply(&quot;483&quot;,&quot;Too Many Hops&quot;);<br>        exit;<br>    }<br><br>    if (has_totag()) {<br>
        # sequential request withing a dialog should<br>        # take the path determined by record-routing<br>        if (loose_route()) {<br>            <br>            if (is_method(&quot;BYE&quot;)) {<br>                setflag(1); # do accounting ...<br>
                setflag(3); # ... even if the transaction fails<br>            } else if (is_method(&quot;INVITE&quot;)) {<br>                # even if in most of the cases is useless, do RR for<br>                # re-INVITEs alos, as some buggy clients do change route set<br>
                # during the dialog.<br>                record_route();<br>            }<br><br>            <br><br>            # route it out to whatever destination was set by loose_route()<br>            # in $du (destination URI).<br>
            route(1);<br>        } else {<br>            <br>            if ( is_method(&quot;ACK&quot;) ) {<br>                if ( t_check_trans() ) {<br>                    # non loose-route, but stateful ACK; must be an ACK after <br>
                    # a 487 or e.g. 404 from upstream server<br>                    t_relay();<br>                    exit;<br>                } else {<br>                    # ACK without matching transaction -&gt;<br>                    # ignore and discard<br>
                    exit;<br>                }<br>            }<br>            sl_send_reply(&quot;404&quot;,&quot;Not here&quot;);<br>        }<br>        exit;<br>    }<br><br>    # CANCEL processing<br>    if (is_method(&quot;CANCEL&quot;))<br>
    {<br>        if (t_check_trans())<br>            t_relay();<br>        exit;<br>    }<br><br>    t_check_trans();<br><br>    if ( !(is_method(&quot;REGISTER&quot;)  ) ) {<br>        <br>        if (from_uri==myself)<br>
        <br>        {<br>            <br>        } else {<br>            # if caller is not local, then called number must be local<br>            <br>            if (!uri==myself) {<br>                send_reply(&quot;403&quot;,&quot;Rely forbidden&quot;);<br>
                exit;<br>            }<br>        }<br><br>    }<br><br>    # preloaded route checking<br>    if (loose_route()) {<br>        xlog(&quot;L_ERR&quot;,<br>        &quot;Attempt to route with preloaded Route&#39;s [$fu/$tu/$ru/$ci]&quot;);<br>
        if (!is_method(&quot;ACK&quot;))<br>            sl_send_reply(&quot;403&quot;,&quot;Preload Route denied&quot;);<br>        exit;<br>    }<br><br>    # record routing<br>    if (!is_method(&quot;REGISTER|MESSAGE&quot;))<br>
        record_route();<br><br>    # account only INVITEs<br>    if (is_method(&quot;INVITE&quot;)) {<br>        <br>        setflag(1); # do accounting<br>    }<br><br>    <br>    if (!uri==myself) {<br>        append_hf(&quot;P-hint: outbound\r\n&quot;); <br>
        <br>        route(1);<br>    }<br><br>    # requests for my domain<br>    <br>    if (is_method(&quot;PUBLISH|SUBSCRIBE&quot;))<br>    {<br>        sl_send_reply(&quot;503&quot;, &quot;Service Unavailable&quot;);<br>
        exit;<br>    }<br><br>    if (is_method(&quot;REGISTER&quot;))<br>    {<br>        <br><br>        if ( proto==TCP ||  0 ) setflag(7);<br><br>        if (!save(&quot;location&quot;))<br>            sl_reply_error();<br>
<br>        exit;<br>    }<br><br>    if ($rU==NULL) {<br>        # request with no Username in RURI<br>        sl_send_reply(&quot;484&quot;,&quot;Address Incomplete&quot;);<br>        exit;<br>    }<br><br>    <br><br>    <br>
<br>     <br><br>    # do lookup with method filtering<br>    if (!lookup(&quot;location&quot;,&quot;m&quot;)) {<br>        <br>        <br>        t_newtran();<br>        t_reply(&quot;404&quot;, &quot;Not Found&quot;);<br>
        exit;<br>    } <br><br>    <br><br>    # when routing via usrloc, log the missed calls also<br>    setflag(2);<br>    route(1);<br>}<br><br><br>route[1] {<br>    # for INVITEs enable some additional helper routes<br>
    if (is_method(&quot;INVITE&quot;)) {<br>        <br>        <br><br>        t_on_branch(&quot;2&quot;);<br>        t_on_reply(&quot;2&quot;);<br>        t_on_failure(&quot;1&quot;);<br>    }<br><br>    <br><br>    if (!t_relay()) {<br>
        send_reply(&quot;500&quot;,&quot;Internal Error&quot;);<br>    };<br>    exit;<br>}<br><br><br><br><br>branch_route[2] {<br>    xlog(&quot;new branch at $ru\n&quot;);<br>}<br><br><br>onreply_route[2] {<br>    <br>
    xlog(&quot;incoming reply\n&quot;);<br>}<br><br><br>failure_route[1] {<br>    if (t_was_cancelled()) {<br>        exit;<br>    }<br><br>    # uncomment the following lines if you want to block client <br>    # redirect based on 3xx replies.<br>
    ##if (t_check_status(&quot;3[0-9][0-9]&quot;)) {<br>    ##t_reply(&quot;404&quot;,&quot;Not found&quot;);<br>    ##    exit;<br>    ##}<br><br>    <br>}<br><br><br><br><br><br>&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot; ?&gt;<br>
&lt;!DOCTYPE scenario SYSTEM &quot;sipp.dtd&quot;&gt;<br><br>&lt;!-- This program is free software; you can redistribute it and/or      --&gt;<br>&lt;!-- modify it under the terms of the GNU General Public License as     --&gt;<br>
&lt;!-- published by the Free Software Foundation; either version 2 of the --&gt;<br>&lt;!-- License, or (at your option) any later version.                    --&gt;<br>&lt;!--                                                                    --&gt;<br>
&lt;!-- This program is distributed in the hope that it will be useful,    --&gt;<br>&lt;!-- but WITHOUT ANY WARRANTY; without even the implied warranty of     --&gt;<br>&lt;!-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the      --&gt;<br>
&lt;!-- GNU General Public License for more details.                       --&gt;<br>&lt;!--                                                                    --&gt;<br>&lt;!-- You should have received a copy of the GNU General Public License  --&gt;<br>
&lt;!-- along with this program; if not, write to the                      --&gt;<br>&lt;!-- Free Software Foundation, Inc.,                                    --&gt;<br>&lt;!-- 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA             --&gt;<br>
&lt;!--                                                                    --&gt;<br>&lt;!--                 Sipp default &#39;uac&#39; scenario.                       --&gt;<br>&lt;!--                                                                    --&gt;<br>
<br>&lt;scenario name=&quot;Basic Sipstone UAC&quot;&gt;<br>  &lt;!-- In client mode (sipp placing calls), the Call-ID MUST be         --&gt;<br>  &lt;!-- generated by sipp. To do so, use [call_id] keyword.                --&gt;<br>
  &lt;send retrans=&quot;1000&quot;&gt;<br>    &lt;![CDATA[<br><br>      INVITE sip:[service]@[remote_ip]:[remote_port] SIP/2.0<br>      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]<br>      From: sipp &lt;sip:sipp@[local_ip]:[local_port]&gt;;tag=[call_number]<br>
      To: sut &lt;sip:[service]@[remote_ip]:[remote_port]&gt;<br>      Call-ID: [call_id]<br>      CSeq: 1 INVITE<br>      Contact: sip:sipp@[local_ip]:[local_port]<br>      Max-Forwards: 70<br>      Subject: Performance Test<br>
      Content-Type: application/sdp<br>      Content-Length: [len]<br><br>      v=0<br>      o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip]<br>      s=-<br>      c=IN IP[media_ip_type] [media_ip]<br>      t=0 0<br>
      m=audio [media_port] RTP/AVP 0<br>      a=rtpmap:0 PCMU/8000<br><br>    ]]&gt;<br>  &lt;/send&gt;<br><br>  &lt;recv response=&quot;100&quot;<br>        optional=&quot;true&quot;&gt;<br>  &lt;/recv&gt;<br><br>  &lt;recv response=&quot;180&quot; optional=&quot;true&quot;&gt;<br>
  &lt;/recv&gt;<br><br>  &lt;!-- By adding rrs=&quot;true&quot; (Record Route Sets), the route sets         --&gt;<br>  &lt;!-- are saved and used for following messages sent. Useful to test   --&gt;<br>  &lt;!-- against stateful SIP proxies/B2BUAs.                             --&gt;<br>
  &lt;recv response=&quot;200&quot; rtd=&quot;true&quot; rrs=&quot;true&quot;&gt;<br>  &lt;/recv&gt;<br><br>  &lt;!-- Packet lost can be simulated in any send/recv message by         --&gt;<br>  &lt;!-- by adding the &#39;lost = &quot;10&quot;&#39;. Value can be [1-100] percent.       --&gt;<br>
  &lt;send&gt;<br>    &lt;![CDATA[<br><br>      ACK [next_url] SIP/2.0<br>      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]<br>      From: sipp &lt;sip:sipp@[local_ip]:[local_port]&gt;;tag=[call_number]<br>
      To: sut &lt;sip:[service]@[remote_ip]:[remote_port]&gt;[peer_tag_param]<br>      [routes]<br>      Call-ID: [call_id]<br>      CSeq: 1 ACK<br>      Contact: sip:sipp@[local_ip]:[local_port]<br>      Max-Forwards: 70<br>
      Subject: Performance Test<br>      Content-Length: 0<br><br>    ]]&gt;<br>  &lt;/send&gt;<br><br>  &lt;!-- This delay can be customized by the -d command-line option       --&gt;<br>  &lt;!-- or by adding a &#39;milliseconds = &quot;value&quot;&#39; option here.             --&gt;<br>
  &lt;pause milliseconds=&quot;10000&quot;/&gt;<br><br><br>  &lt;!-- The &#39;crlf&#39; option inserts a blank line in the statistics report. --&gt;<br>  &lt;send retrans=&quot;1000&quot;&gt;<br>    &lt;![CDATA[<br><br>      BYE [next_url] SIP/2.0<br>
      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]<br>      From: sipp &lt;sip:sipp@[local_ip]:[local_port]&gt;;tag=[call_number]<br>      To: sut &lt;sip:[service]@[remote_ip]:[remote_port]&gt;[peer_tag_param]<br>
      [routes]<br>      Call-ID: [call_id]<br>      CSeq: 2 BYE<br>      Contact: sip:sipp@[local_ip]:[local_port]<br>      Max-Forwards: 70<br>      Subject: Performance Test<br>      Content-Length: 0<br><br>    ]]&gt;<br>
  &lt;/send&gt;<br><br>  &lt;recv response=&quot;200&quot; crlf=&quot;true&quot;&gt;<br>  &lt;/recv&gt;<br><br>  &lt;!-- definition of the response time repartition table (unit is ms)   --&gt;<br>  &lt;ResponseTimeRepartition value=&quot;500, 1000, 1500, 2000&quot;/&gt;<br>
<br>  &lt;!-- definition of the call length repartition table (unit is ms)     --&gt;<br>  &lt;CallLengthRepartition value=&quot;500&quot;/&gt;<br><br>&lt;/scenario&gt;<br>