<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=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><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;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
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="EN-US" link="#0563C1" vlink="#954F72" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal">I’m not sure if this is by design or not.  I have things I want to log to a SQL DB, but it’s not nearly as important as call handling, so the sql_query_async() function looked ideal, but in testing, if the DB is not responsive, the call
 processing gets blocked.  In the example below, I’m using just a short hostname which isn’t resolvable, but if I have an IP address there that isn’t really assigned (for example if the DB server is down), the same blocking behavior is exhibited, but the error
 is slightly different (can’t connect instead of unknown host).  <o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Here’s my config.  This specific simple config was tested on Kamailio 5.5, but I observe similar behavior (in a more complicated config) in the dev branch as well.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">- - - - <o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">#!KAMAILIO<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">async_workers=2<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">loadmodule "db_mysql"<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">loadmodule "sqlops"<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">loadmodule "sl"<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">loadmodule "xlog"<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">loadmodule "pv"<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">force_rport=yes<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">## Host sql does not resolve.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">modparam("sqlops","sqlcon","cb=>mysql://kamailio:kamailiorw@sql/kamailio")<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">## But start anyways.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">modparam("sqlops", "connect_mode", 1)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">request_route {<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">    sl_send_reply("100", "Trying"); ## Prevent re-transmissions from the UAC<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">    xlog("L_NOTICE", "Time before sql_query_async(): [$TV(Sn)]\n");<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">    sql_query_async("cb", "INSERT INTO table1 (col) VALUES ('val')");<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">    xlog("L_NOTICE", "Time before sl_send_reply(): [$TV(Sn)]\n");<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">    sl_send_reply("404", "Not found");<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">}<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Here’s the log if I send a simple INVITE with SIPp. Note the timestamps<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">9(16) NOTICE: <script>: Time before sql_query_async(): [1645574694.546165]<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">9(16) ERROR: db_mysql [km_my_con.c:163]: db_mysql_new_connection(): driver error: Unknown MySQL server host 'sql' (-3)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">9(16) ERROR: <core> [db.c:319]: db_do_init2(): could not add connection to the pool<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">9(16) ERROR: sqlops [sql_api.c:190]: sql_reconnect(): failed to connect to the database [cb]<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">9(16) ERROR: sqlops [sqlops.c:232]: sql_check_connection(): failed to connect to database<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">9(16) ERROR: sqlops [sqlops.c:264]: sql_query_async(): invalid connection to database 9(16) NOTICE: <script>: Time before sl_send_reply(): [1645574699.552440]</span><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><b>Ben Kaufman<o:p></o:p></b></p>
<p class="MsoNormal"><i>Sr. VoIP Engineer - BCM One<o:p></o:p></i></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">+1.612.735.9309<o:p></o:p></p>
<p class="MsoNormal"><a href="mailto:bkaufman@bcmone.com"><span style="color:blue">bkaufman@bcmone.com</span></a><o:p></o:p></p>
<p class="MsoNormal">24 hour client support: +1.855.639.6300<o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:10.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><a href="https://www.bcmone.com/"><span style="color:blue;text-decoration:none"><img border="0" width="168" height="37" style="width:1.75in;height:.3833in" id="_x0000_i1028" src="https://www.bcmone.com/files/bcmone-logo.png"></span></a><span style="color:black">   </span><a href="https://www.facebook.com/bcmonenyc/"><span style="color:blue;text-decoration:none"><img border="0" width="32" height="32" style="width:.3333in;height:.3333in" id="_x0000_i1027" src="https://www.bcmone.com/files/twitter-icon-circle.png"></span></a><span style="color:black">  </span><a href="https://twitter.com/bcm_one/"><span style="color:blue;text-decoration:none"><img border="0" width="32" height="32" style="width:.3333in;height:.3333in" id="_x0000_i1026" src="https://www.bcmone.com/files/twitter-icon-circle.png"></span></a><span style="color:black">  </span><a href="https://www.linkedin.com/company/business-communications-management/"><span style="color:blue;text-decoration:none"><img border="0" width="32" height="32" style="width:.3333in;height:.3333in" id="_x0000_i1025" src="https://www.bcmone.com/files/linkedin-icon-circle.png"></span></a><o:p></o:p></p>
<p class="MsoNormal"><i><span style="font-size:9.0pt;font-family:Consolas"><o:p> </o:p></span></i></p>
<p class="MsoNormal"><i><span style="font-size:9.0pt;font-family:Consolas">NOTE: This e-mail and any attachments are from BCM One, Inc. and are intended
<o:p></o:p></span></i></p>
<p class="MsoNormal"><i><span style="font-size:9.0pt;font-family:Consolas">solely for the use and review of the individual(s) to whom it is addressed.
<o:p></o:p></span></i></p>
<p class="MsoNormal"><i><span style="font-size:9.0pt;font-family:Consolas">If you believe you received this e-mail in error, please notify the sender
<o:p></o:p></span></i></p>
<p class="MsoNormal"><i><span style="font-size:9.0pt;font-family:Consolas">immediately, delete the e-mail (and any attachments) from your computer and do
<o:p></o:p></span></i></p>
<p class="MsoNormal"><i><span style="font-size:9.0pt;font-family:Consolas">not copy or disclose it to anyone else.<o:p></o:p></span></i></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>