Hi Steve,<div><br></div><div>The request-uri in your invite is to "service". In your opensips script, it does a lookup on user and I don't think you have the user "service" registered.</div><div><br>
</div><div>Either have sipp to register first, or in your opensips.cfg, put a condition for calls from sipp to go to route one directly with no lookup.</div><div><br></div><div>Hope this is clear enough.</div><div><br></div>
<div>Regards,</div><div>Ali Pey</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Nov 8, 2012 at 8:05 PM, Steve Mitchell <span dir="ltr"><<a href="mailto:swmitchell@gmail.com" target="_blank">swmitchell@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br><br>I'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 <<a href="mailto:team@opensips-solutions.com" target="_blank">team@opensips-solutions.com</a>><br>
#<br># This script was generated via "make menuconfig", from<br># the "Residential" 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" target="_blank">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" target="_blank">10.145.185.49:5060</a> # CUSTOMIZE ME<br>
<br>disable_tcp=no<br>listen=tcp:<a href="http://10.145.185.49:5060" target="_blank">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="/usr/local/opensips_proxy/lib64/opensips/modules/"<br>
<br>#### SIGNALING module<br>loadmodule "signaling.so"<br><br>#### StateLess module<br>loadmodule "sl.so"<br><br>#### Transaction Module<br>loadmodule "tm.so"<br>modparam("tm", "fr_timer", 5)<br>
modparam("tm", "fr_inv_timer", 30)<br>modparam("tm", "restart_fr_on_each_reply", 0)<br>modparam("tm", "onreply_avp_mode", 1)<br><br>#### Record Route Module<br>
loadmodule "rr.so"<br>
/* do not append from tag to the RR (no need for this script) */<br>modparam("rr", "append_fromtag", 0)<br><br>#### MAX ForWarD module<br>loadmodule "maxfwd.so"<br><br>#### SIP MSG OPerationS module<br>
loadmodule "sipmsgops.so"<br><br>#### FIFO Management Interface<br>loadmodule "mi_fifo.so"<br>modparam("mi_fifo", "fifo_name", "/tmp/opensips_fifo")<br>modparam("mi_fifo", "fifo_mode", 0666)<br>
<br><br>#### URI module<br>loadmodule "uri.so"<br>modparam("uri", "use_uri_table", 0)<br><br><br><br><br>#### MYSQL module<br>loadmodule "db_mysql.so"<br><br>#### USeR LOCation module<br>
loadmodule "usrloc.so"<br>modparam("usrloc", "nat_bflag", 10)<br>modparam("usrloc", "db_mode", 2)<br>modparam("usrloc", "db_url",<br> "mysql://opensips:opensipsrw@localhost/opensips") # CUSTOMIZE ME<br>
<br><br>#### REGISTRAR module<br>loadmodule "registrar.so"<br>modparam("registrar", "tcp_persistent_flag", 7)<br><br>/* uncomment the next line not to allow more than 10 contacts per AOR */<br>
#modparam("registrar", "max_contacts", 10)<br><br>#### ACCounting module<br>loadmodule "acc.so"<br>/* what special events should be accounted ? */<br>modparam("acc", "early_media", 0)<br>
modparam("acc", "report_cancels", 0)<br>/* by default we do not adjust the direct of the sequential requests.<br> if you enable this parameter, be sure the enable "append_fromtag"<br> in "rr" module */<br>
modparam("acc", "detect_direction", 0)<br>modparam("acc", "failed_transaction_flag", 3)<br>/* account triggers (flags) */<br>modparam("acc", "db_flag", 1)<br>modparam("acc", "db_missed_flag", 2)<br>
modparam("acc", "db_url",<br> "mysql://opensips:opensipsrw@localhost/opensips") # 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("10")) {<br> sl_send_reply("483","Too Many Hops");<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("BYE")) {<br> setflag(1); # do accounting ...<br>
setflag(3); # ... even if the transaction fails<br> } else if (is_method("INVITE")) {<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("ACK") ) {<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 -><br> # ignore and discard<br>
exit;<br> }<br> }<br> sl_send_reply("404","Not here");<br> }<br> exit;<br> }<br><br> # CANCEL processing<br> if (is_method("CANCEL"))<br>
{<br> if (t_check_trans())<br> t_relay();<br> exit;<br> }<br><br> t_check_trans();<br><br> if ( !(is_method("REGISTER") ) ) {<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("403","Rely forbidden");<br>
exit;<br> }<br> }<br><br> }<br><br> # preloaded route checking<br> if (loose_route()) {<br> xlog("L_ERR",<br> "Attempt to route with preloaded Route's [$fu/$tu/$ru/$ci]");<br>
if (!is_method("ACK"))<br> sl_send_reply("403","Preload Route denied");<br> exit;<br> }<br><br> # record routing<br> if (!is_method("REGISTER|MESSAGE"))<br>
record_route();<br><br> # account only INVITEs<br> if (is_method("INVITE")) {<br> <br> setflag(1); # do accounting<br> }<br><br> <br> if (!uri==myself) {<br> append_hf("P-hint: outbound\r\n"); <br>
<br> route(1);<br> }<br><br> # requests for my domain<br> <br> if (is_method("PUBLISH|SUBSCRIBE"))<br> {<br> sl_send_reply("503", "Service Unavailable");<br>
exit;<br> }<br><br> if (is_method("REGISTER"))<br> {<br> <br><br> if ( proto==TCP || 0 ) setflag(7);<br><br> if (!save("location"))<br> sl_reply_error();<br>
<br> exit;<br> }<br><br> if ($rU==NULL) {<br> # request with no Username in RURI<br> sl_send_reply("484","Address Incomplete");<br> exit;<br> }<br><br> <br><br>
<br>
<br> <br><br> # do lookup with method filtering<br> if (!lookup("location","m")) {<br> <br> <br> t_newtran();<br> t_reply("404", "Not Found");<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("INVITE")) {<br> <br> <br><br> t_on_branch("2");<br> t_on_reply("2");<br> t_on_failure("1");<br> }<br><br> <br><br> if (!t_relay()) {<br>
send_reply("500","Internal Error");<br> };<br> exit;<br>}<br><br><br><br><br>branch_route[2] {<br> xlog("new branch at $ru\n");<br>}<br><br><br>onreply_route[2] {<br> <br>
xlog("incoming reply\n");<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("3[0-9][0-9]")) {<br> ##t_reply("404","Not found");<br> ## exit;<br> ##}<br><br> <br>}<br><br><br><br><br><br><?xml version="1.0" encoding="ISO-8859-1" ?><br>
<!DOCTYPE scenario SYSTEM "sipp.dtd"><br><br><!-- This program is free software; you can redistribute it and/or --><br><!-- modify it under the terms of the GNU General Public License as --><br>
<!-- published by the Free Software Foundation; either version 2 of the --><br><!-- License, or (at your option) any later version. --><br><!-- --><br>
<!-- This program is distributed in the hope that it will be useful, --><br><!-- but WITHOUT ANY WARRANTY; without even the implied warranty of --><br><!-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --><br>
<!-- GNU General Public License for more details. --><br><!-- --><br><!-- You should have received a copy of the GNU General Public License --><br>
<!-- along with this program; if not, write to the --><br><!-- Free Software Foundation, Inc., --><br><!-- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA --><br>
<!-- --><br><!-- Sipp default 'uac' scenario. --><br><!-- --><br>
<br><scenario name="Basic Sipstone UAC"><br> <!-- In client mode (sipp placing calls), the Call-ID MUST be --><br> <!-- generated by sipp. To do so, use [call_id] keyword. --><br>
<send retrans="1000"><br> <![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 <sip:sipp@[local_ip]:[local_port]>;tag=[call_number]<br>
To: sut <sip:[service]@[remote_ip]:[remote_port]><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> ]]><br> </send><br><br> <recv response="100"<br> optional="true"><br> </recv><br><br> <recv response="180" optional="true"><br>
</recv><br><br> <!-- By adding rrs="true" (Record Route Sets), the route sets --><br> <!-- are saved and used for following messages sent. Useful to test --><br> <!-- against stateful SIP proxies/B2BUAs. --><br>
<recv response="200" rtd="true" rrs="true"><br> </recv><br><br> <!-- Packet lost can be simulated in any send/recv message by --><br> <!-- by adding the 'lost = "10"'. Value can be [1-100] percent. --><br>
<send><br> <![CDATA[<br><br> ACK [next_url] SIP/2.0<br> Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]<br> From: sipp <sip:sipp@[local_ip]:[local_port]>;tag=[call_number]<br>
To: sut <sip:[service]@[remote_ip]:[remote_port]>[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> ]]><br> </send><br><br> <!-- This delay can be customized by the -d command-line option --><br> <!-- or by adding a 'milliseconds = "value"' option here. --><br>
<pause milliseconds="10000"/><br><br><br> <!-- The 'crlf' option inserts a blank line in the statistics report. --><br> <send retrans="1000"><br> <![CDATA[<br><br> BYE [next_url] SIP/2.0<br>
Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]<br> From: sipp <sip:sipp@[local_ip]:[local_port]>;tag=[call_number]<br> To: sut <sip:[service]@[remote_ip]:[remote_port]>[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> ]]><br>
</send><br><br> <recv response="200" crlf="true"><br> </recv><br><br> <!-- definition of the response time repartition table (unit is ms) --><br> <ResponseTimeRepartition value="500, 1000, 1500, 2000"/><br>
<br> <!-- definition of the call length repartition table (unit is ms) --><br> <CallLengthRepartition value="500"/><br><br></scenario><br>
<br>_______________________________________________<br>
Users mailing list<br>
<a href="mailto:Users@lists.opensips.org">Users@lists.opensips.org</a><br>
<a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users" target="_blank">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a><br>
<br></blockquote></div><br></div>