<html 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="Title" content="">
<meta name="Keywords" content="">
<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;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.msoIns
        {mso-style-type:export-only;
        mso-style-name:"";
        text-decoration:underline;
        color:teal;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:595.0pt 842.0pt;
        margin:70.85pt 70.85pt 70.85pt 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style>
</head>
<body bgcolor="white" lang="EN-GB" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt">Hi,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">I am having issues with siprec and rtpproxy.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">Running the latest 2.4 dev version.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">The issue I am having is that when an 200 OK is received, the siprec is sending an incorrect SDP block to the recording provider. As a result of this they are unable to process the recording properly.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">For an example the SDP element c= is missing completely and the o= element are sending the incorrect IP. I am thinking there is some issue between rtpproxy and opensips that causes this.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">I have attached below some relevant configurations, please note that “my.externalip.com” is a pseudo for my external IP. The server only has an interface with an external address.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">------------------ /etc/default/rtpproxy -------------------<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">USER="opensips"<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">GROUP="opensips"<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">PIDFILE="/var/run/rtpproxy.pid"<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">LISTEN_ADDR= my.externalip.com<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"># The control socket.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">CONTROL_SOCK="unix:/var/run/rtpproxy.sock"<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"># To listen on an UDP socket, uncomment this line:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">#CONTROL_SOCK=udp:127.0.0.1:7722<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"># Additional options that are passed to the daemon.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">EXTRA_OPTS="-s udp:127.0.0.1:7722 -l my.externalip.com -d DBUG:LOG_LOCAL0 -u opensips"<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">DAEMON_OPTS="-s \$CONTROL_SOCK -u \$USER:\$GROUP -p \$PIDFILE \$EXTRA_OPTS"<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">------------ end ---------------<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">------------------ /etc/opensips/opensips.cfg -------------------<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">####### Global Parameters #########<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">log_level=3<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">log_stderror=no<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">log_facility=LOG_LOCAL0<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">children=4<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">debug_mode=no<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="SV" style="font-size:11.0pt">listen=udp:my.externalip.com:5060<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">advertised_address="my.externalip.com "<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">advertised_port=5060<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">auto_aliases=no<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="SV" style="font-size:11.0pt">alias=udp:my.externalip.com:5060<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="SV" style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="SV" style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">####### Modules Section ########<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">mpath="/usr/local//lib64/opensips/modules/"<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">loadmodule "signaling.so"<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">loadmodule "sl.so"<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">loadmodule "tm.so"<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">loadmodule "rr.so"<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">loadmodule "maxfwd.so"<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">loadmodule "sipmsgops.so"<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">loadmodule "mi_fifo.so"<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">loadmodule "uri.so"<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">loadmodule "proto_udp.so"<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">loadmodule "dispatcher.so"<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">loadmodule "db_mysql.so"<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">loadmodule "textops.so"<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"># SIPREC Begin<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">loadmodule "acc.so"<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">loadmodule "dialog.so"<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">loadmodule "b2b_entities.so"<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">loadmodule "siprec.so"<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">loadmodule "rtpproxy.so"<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">modparam("rtpproxy", "rtpproxy_sock", "udp:localhost:7722")<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"># SIPREC End<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">modparam("db_mysql", "exec_query_threshold", 60000)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">modparam("db_mysql", "timeout_interval", 2)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">modparam("dispatcher", "dst_avp", "$avp(dstdst)")<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">modparam("dispatcher", "attrs_avp", "$avp(dsattrs)")<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">modparam("dispatcher", "grp_avp", "$avp(dsgrp)")<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">modparam("dispatcher", "cnt_avp", "$avp(dscnt)")<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">modparam("dispatcher", "db_url", "mysql://opensips:dbpassword@localhost/opensips")<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">modparam("tm", "fr_timeout", 5)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">modparam("tm", "fr_inv_timeout", 30)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">modparam("tm", "restart_fr_on_each_reply", 0)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">modparam("tm", "onreply_avp_mode", 1)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">modparam("rr", "append_fromtag", 0)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">modparam("mi_fifo", "fifo_name", "/tmp/opensips_fifo")<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">modparam("mi_fifo", "fifo_mode", 0666)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">modparam("uri", "use_uri_table", 0)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">####### Routing Logic ########<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"># main request routing logic<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">route{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">        if (!mf_process_maxfwd_header("10")) {<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                sl_send_reply("483","Too Many Hops");<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                exit;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">        }<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">        if (has_totag()) {<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                # handle hop-by-hop ACK (no routing required)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                if ( is_method("ACK") && t_check_trans() ) {<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                        t_relay();<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                        exit;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                }<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                # sequential request within a dialog should<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                # take the path determined by record-routing<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                if ( !loose_route() ) {<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                        # we do record-routing for all our traffic, so we should not<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                        # receive any sequential requests without Route hdr.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                        sl_send_reply("404","Not here");<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                        exit;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                }<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                if (is_method("BYE")) {<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                        # do accounting even if the transaction fails<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                }<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                # route it out to whatever destination was set by loose_route()<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                # in $du (destination URI).<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                route(relay);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                exit;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">        }<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">        xlog("L_INFO","==> Incomming request $rm $ru from $si\n");<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">        # INVITE processing<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">        if (is_method("INVITE"))<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">        {<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                        xlog("L_INFO", "Outgoing call from $si");<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                        if(ds_is_in_list("$si", "$sp"))<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                        {<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                                xlog("L_INFO", "Dispatcher $si:$sp found, sending to $ru");<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                                xlog("L_INFO", "Dispatcher $si:$sp valid, starting siprec");<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                                do_accounting("log");<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                                create_dialog();<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                                rtpproxy_engage();<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                                siprec_start_recording("sip:recordingprovider.com:5060");<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                                xlog("L_INFO", "Originator: $fu calling destination: $ru");<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                                ds_select_dst("1100", "4");<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                                record_route();<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                                route(relay);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                                exit;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                        }<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                        sl_send_reply("403" ,"Forbidden - Dispatcher not found");<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                        exit;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                }<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                sl_send_reply("403", "Forbidden - Calls from this originator is not allowed");<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                exit;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">        }<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">        # OPTION processing<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">        if (is_method("OPTIONS"))<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">        {<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                xlog("L_INFO", "Replying 200 for method OPTIONS, I am alive");<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                sl_send_reply("200" ,"OK");<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                exit;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">        }<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">        # CANCEL processing<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">        if (is_method("CANCEL"))<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">        {<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                if (t_check_trans())<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                        t_relay();<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                exit;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">        }<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">        t_check_trans();<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">        # preloaded route checking<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">        if (loose_route()) {<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                xlog("L_ERR",<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                "Attempt to route with preloaded Route's [$fu/$tu/$ru/$ci]");<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                if (!is_method("ACK"))<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                        sl_send_reply("403","Preload Route denied");<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                exit;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">        }<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">        sl_send_reply("403", "Forbidden");<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">        exit;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">route[relay] {<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">        if (is_method("INVITE")) {<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                if(!t_relay()) {<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                        # Transaction failed, send stateless reply<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                        xlog("L_INFO", "   --> Transaction failed.  Sending error response. \n");<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                        sl_reply_error();<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                }<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                exit;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">        }<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                if (is_method("OK")) {<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                               
</span><span lang="SV" style="font-size:11.0pt">xlog("L_INFO", "200 OK Ye");<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="SV" style="font-size:11.0pt">                </span>
<span style="font-size:11.0pt">}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">        if (!t_relay()) {<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">                send_reply("500","Internal Error");<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">        };<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">        exit;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">branch_route[per_branch_ops] {<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">        xlog("new branch at $ru\n");<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">------------ end -------------<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">This is the outgoing siprec INVITE SDP block<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">--OSS-unique-boundary-42.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">Content-Type: application/sdp.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">v=0.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">o=- 1516694269 0 IN IP4 0.0.0.0.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">s=-.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">m=audio 35001 RTP/AVP 0 8 3 101.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">a=rtpmap:0 PCMU/8000.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">a=rtpmap:8 PCMA/8000.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">a=rtpmap:3 GSM/8000.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">a=rtpmap:101 telephone-event/8000.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">a=fmtp:101 0-16.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">a=maxptime:150.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">a=label:1.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">a=sendonly.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">m=audio 35002 RTP/AVP 3 0 8 101.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">a=rtpmap:3 GSM/8000.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">a=rtpmap:0 PCMU/8000.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">a=rtpmap:8 PCMA/8000.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">a=rtpmap:101 telephone-event/8000.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">a=fmtp:101 0-16.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">a=ptime:20.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">a=label:2.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">a=sendonly.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">--OSS-unique-boundary-42.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">Content-Type: application/rs-metadata+xml.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">Content-Disposition: recording-session.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><?xml version="1.0" encoding="UTF-8"?>.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><recording xmlns='urn:ietf:params:xml:ns:recording:1'>.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">.<datamode>complete</datamode>.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">.<session session_id="jwRdMT4vTxSflXrv0ivZLg==">.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">..<sipSessionID>731e5c203339d5253be6a44048978cc8@customerpbx.pbx.com</sipSessionID>.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">.</session>.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">.<participant participant_id="fJEttOQnROa8czaSnrcoHQ==">.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">..<nameID aor="sip:jane.miller@customerpbx.pbx.com"/>.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">.</participant>.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">.<participant participant_id="FsU9x4pNTs+TV3uMG1wH7w==">.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">..<nameID aor="sip:john.doe@sip.provider.com"/>.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">.</participant>.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">.<stream stream_id="0CxCuLF7RG2tB13mlCV2ng==" session_id="jwRdMT4vTxSflXrv0ivZLg==">.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">..<label>1</label>.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">.</stream>.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">.<stream stream_id="HmSit+HiRly7wAH4D8unAg==" session_id="jwRdMT4vTxSflXrv0ivZLg==">.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">..<label>2</label>.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">.</stream>.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"></recording>.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">--OSS-unique-boundary-42--.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">------------ end -------------<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">Thank you<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
</div>
</body>
</html>