Hey, I got some trouble with tls support for opensips, I&#39;m using two blink softphones, and i can&#39;t get them to communicate. <br>The communication between the client and the server is established, but when i make calls, i got the a not found error: <br>
<br>here&#39;s my configuration&#39;s file : <br><br>-------------------------------------------------------------------------------------------------------------------<br><br><br>debug=6<br>log_stderror=no<br>log_facility=LOG_LOCAL0<br>
<br>children=4<br><br>fork=yes<br>check_via=no<br>dns=no<br>rev_dns=no<br><br>disable_tls = no<br>listen = tls:<a href="http://157.159.50.158:5061">157.159.50.158:5061</a><br>listen = tcp:<a href="http://157.159.50.158:5062">157.159.50.158:5062</a><br>
listen = udp:<a href="http://157.159.50.158:5060">157.159.50.158:5060</a><br>alias = 157.159.50.158<br>tls_verify_server = 0<br>tls_verify_client = 0<br>tls_require_client_certificate = 0<br>tls_method = TLSv1<br>tls_certificate = &quot;//etc/opensips/tls/user/user-cert.pem&quot;<br>
tls_private_key = &quot;//etc/opensips/tls/user/user-privkey.pem&quot;<br>tls_ca_list = &quot;//etc/opensips/tls/user/user-calist.pem&quot;<br><br><br>####### Modules Section ########<br><br>#set module path<br>mpath=&quot;//lib/opensips/modules/&quot;<br>
<br>/* uncomment next line for MySQL DB support */<br>#loadmodule &quot;db_mysql.so&quot;<br>loadmodule &quot;signaling.so&quot;<br>loadmodule &quot;sl.so&quot;<br>loadmodule &quot;tm.so&quot;<br>loadmodule &quot;rr.so&quot;<br>
loadmodule &quot;maxfwd.so&quot;<br>loadmodule &quot;usrloc.so&quot;<br>loadmodule &quot;registrar.so&quot;<br>loadmodule &quot;textops.so&quot;<br>loadmodule &quot;mi_fifo.so&quot;<br>loadmodule &quot;uri.so&quot;<br>loadmodule &quot;acc.so&quot;<br>
<br><br># ----------------- setting module-specific parameters ---------------<br><br><br># ----- mi_fifo params -----<br>modparam(&quot;mi_fifo&quot;, &quot;fifo_name&quot;, &quot;/tmp/opensips_fifo&quot;)<br><br><br># ----- rr params -----<br>
# add value to ;lr param to cope with most of the UAs<br>modparam(&quot;rr&quot;, &quot;enable_full_lr&quot;, 1)<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># ----- uri params -----<br>modparam(&quot;uri&quot;, &quot;use_uri_table&quot;, 0)<br><br><br># ----- acc params -----<br>/* what sepcial events should be accounted ? */<br>modparam(&quot;acc&quot;, &quot;early_media&quot;, 1)<br>
modparam(&quot;acc&quot;, &quot;report_ack&quot;, 1)<br>modparam(&quot;acc&quot;, &quot;report_cancels&quot;, 1)<br>/* by default ww 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>/* account triggers (flags) */<br>modparam(&quot;acc&quot;, &quot;failed_transaction_flag&quot;, 3)<br>modparam(&quot;acc&quot;, &quot;log_flag&quot;, 1)<br>
modparam(&quot;acc&quot;, &quot;log_missed_flag&quot;, 2)<br>/* uncomment the following lines to enable DB accounting also */<br>modparam(&quot;acc&quot;, &quot;db_flag&quot;, 1)<br>modparam(&quot;acc&quot;, &quot;db_missed_flag&quot;, 2)<br>
<br><br>####### Routing Logic ########<br><br><br># main request routing logic<br><br>route{<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>            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>            # route it out to whatever destination was set by loose_route()<br>
            # in $du (destination URI).<br>            route(1);<br>        } else {<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>    #initial requests<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><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>        setflag(1); # do accounting<br>
    }<br>    if (!uri==myself)<br>    {<br>        append_hf(&quot;P-hint: outbound\r\n&quot;); <br>        route(1);<br>    }<br><br><br>    if (is_method(&quot;PUBLISH&quot;))<br>    {<br>        sl_send_reply(&quot;503&quot;, &quot;Service Unavailable&quot;);<br>
        exit;<br>    }<br>    <br><br>    if (is_method(&quot;REGISTER&quot;))<br>    {<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>    # apply DB based aliases (uncomment to enable)<br>    ##alias_db_lookup(&quot;dbaliases&quot;);<br>
<br>    # do lookup with method filtering<br>    if (!lookup(&quot;location&quot;,&quot;m&quot;)) {<br>        switch ($retcode) {<br>            case -1:<br>            case -3:<br>                t_newtran();<br>                t_reply(&quot;404&quot;, &quot;Not Found&quot;);<br>
                exit;<br>            case -2:<br>                sl_send_reply(&quot;405&quot;, &quot;Method Not Allowed&quot;);<br>                exit;<br>        }<br>    }<br><br>    # when routing via usrloc, log the missed calls also<br>
    setflag(2);<br><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>        t_on_branch(&quot;2&quot;);<br>        t_on_reply(&quot;2&quot;);<br>
        t_on_failure(&quot;1&quot;);<br>    }<br><br>    if (!t_relay()) {<br>        sl_reply_error();<br>    };<br>    exit;<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>    xlog(&quot;incoming reply\n&quot;);<br>}<br><br><br>failure_route[1] {<br>    if (t_was_cancelled()) {<br>        exit;<br>    }<br><br>}<br><br>-------------------------------------------------------------------------------------------------------------<br>
<br>I gave to the client, the certificate :<br><br>//etc/opensips/tls/user/user-cert.pem<br>