Resources.B2bConfigExample History

Hide minor edits - Show changes to output

April 24, 2013, at 06:42 PM by 109.99.235.212 -
Changed lines 1-5 from:
[[Resources.B2buaTutorial | <-Back]]
----
[[http://www.opensips.org/uploads/Resources/opensips_b2b.cfg | Download]]

<pre><span style="color: #800;"># $Id: opensips-b2b.cfg $</span><span style="color: #000;"><br><br></span><span style="color: #800;"># Debugging mode:</span><span style="color: #000;"><br>debug</span><span style="color: #660;">=</span><span style="color: #066;">3</span><span style="color: #000;"><br>memlog</span><span style="color: #660;">=</span><span style="color: #000;"> </span><span style="color: #066;">6</span><span style="color: #000;"><br>fork</span><span style="color: #660;">=</span><span style="color: #000;">yes<br>auto_aliases</span><span style="color: #660;">=</span><span style="color: #008;">no</span><span style="color: #000;"><br>log_stderror</span><span style="color: #660;">=</span><span style="color: #000;">yes<br><br>disable_dns_blacklist</span><span style="color: #660;">=</span><span style="color: #000;">yes<br><br>listen</span><span style="color: #660;">=</span><span style="color: #066;">10.10.10.10</span><span style="color: #660;">:</span><span style="color: #066;">5060</span><span style="color: #000;"><br></span><span style="color: #800;"># alias=OSIPS_REALM</span><span style="color: #000;"><br></span><span style="color: #800;">#port=OSIPS_PORT</span><span style="color: #000;"><br><br><br>sip_warning</span><span style="color: #660;">=</span><span style="color: #066;">0</span><span style="color: #000;"><br></span><span style="color: #800;">#server_header="SRV_SIGNATURE"</span><span style="color: #000;"><br></span><span style="color: #800;">#user_agent_header="PP_USER_AGENT"</span><span style="color: #000;"><br><br></span><span style="color: #800;">#mhomed=yes</span><span style="color: #000;"><br></span><span style="color: #800;">#memlog=2</span><span style="color: #000;"><br>check_via</span><span style="color: #660;">=</span><span style="color: #008;">no</span><span style="color: #000;"><br>dns</span><span style="color: #660;">=</span><span style="color: #000;">off<br>rev_dns</span><span style="color: #660;">=</span><span style="color: #000;">off<br>children</span><span style="color: #660;">=</span><span style="color: #066;">8</span><span style="color: #000;"><br>disable_tcp</span><span style="color: #660;">=</span><span style="color: #000;">yes<br>log_facility</span><span style="color: #660;">=</span><span style="color: #000;">LOG_LOCAL7<br></span><span style="color: #800;"># for more info: opensips -h</span><span style="color: #000;"><br><br></span><span style="color: #800;"># ------------------ module loading ----------------------------------</span><span style="color: #000;"><br><br>mpath</span><span style="color: #660;">=</span><span style="color: #080;">"/usr/local/lib/opensips/modules/"</span><span style="color: #000;"><br><br>loadmodule </span><span style="color: #080;">"db_mysql.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"xlog.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"textops.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"maxfwd.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"rr.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"sl.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"tm.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"signaling.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"b2b_entities.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"b2b_logic.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"usrloc.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"registrar.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"mi_fifo.so"</span><span style="color: #000;"><br><br><br></span><span style="color: #800;"># ----------------- setting module-specific parameters ---------------</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"mi_fifo"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"fifo_name"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/tmp/opensips_fifo"</span><span style="color: #660;">)</span><span style="color: #000;"><br><br><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"usrloc|b2b_entities|b2b_logic"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"db_url"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"mysql://opensips:opensipsrw@localhost/opensips"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"usrloc"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"db_mode"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #066;">2</span><span style="color: #660;">)</span><span style="color: #000;"><br><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"tm"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"pass_provisional_replies"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #066;">1</span><span style="color: #660;">)</span><br><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_logic"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"script_scenario"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/usr/local/etc/opensips/scenario_script.xml"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_logic"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"extern_scenario"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/usr/local/etc/opensips/scenario_extern.xml"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_entities"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"script_req_route"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"b2b_request"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_entities"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"script_reply_route"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"b2b_reply"</span><span style="color: #660;">)</span><span style="color: #000;"><br><br>route</span><span style="color: #660;">[</span><span style="color: #000;">b2b_request</span><span style="color: #660;">]</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; xlog</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_request ($ci)\n"</span><span style="color: #660;">);</span><span style="color: #000;"><br></span><span style="color: #660;">}</span><span style="color: #000;"><br><br><br>route</span><span style="color: #660;">[</span><span style="color: #000;">b2b_reply</span><span style="color: #660;">]</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; xlog</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_reply ($ci)\n"</span><span style="color: #660;">);</span><span style="color: #000;"><br></span><span style="color: #660;">}</span><span style="color: #000;"><br><br><br>route </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">mf_process_maxfwd_header</span><span style="color: #660;">(</span><span style="color: #080;">"10"</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"483"</span><span style="color: #660;">,</span><span style="color: #080;">"Too Many Hops"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">msg</span><span style="color: #660;">:</span><span style="color: #000;">len </span><span style="color: #660;">&gt;=</span><span style="color: #000;"> </span><span style="color: #066;">2380</span><span style="color: #000;"> </span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"513"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"Message too big"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">method</span><span style="color: #660;">==</span><span style="color: #080;">"REGISTER"</span><span style="color: #660;">)</span><span style="color: #000;"><br>&nbsp; &nbsp; record_route</span><span style="color: #660;">();</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #800;"># subsequent messages withing a dialog should take the</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># path determined by record-routing</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">loose_route</span><span style="color: #660;">())</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: rr-enforced\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; &nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #660;">(</span><span style="color: #000;">is_method</span><span style="color: #660;">(</span><span style="color: #080;">"INVITE"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">$fU</span><span style="color: #660;">==</span><span style="color: #080;">"bob"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> &nbsp; </span><span style="color: #800;">/* only for Invite messages from bob*/</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #660;">!(</span><span style="color: #000;">src_ip </span><span style="color: #660;">==</span><span style="color: #000;"> </span><span style="color: #080;">"10.10.10.10"</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> src_port </span><span style="color: #660;">==</span><span style="color: #066;">5060</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #800;">/* skip Invite messages generated by the B2BUA*/</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #800;"># DO NOT call t_newtran() on this request -&gt; it will result in the transaction never being deleted</span><span style="color: #000;"><br>&nbsp; &nbsp; b2b_init_request</span><span style="color: #660;">(</span><span style="color: #080;">"prepaid"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"sip:320@opensips.org:5070"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"sip:321@opensips.org:5070"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"> </span><span style="color: #800;"># do not forward this request, another one will be generated</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">uri</span><span style="color: #660;">==</span><span style="color: #000;">myself</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: outbound\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; &nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">uri</span><span style="color: #660;">==</span><span style="color: #000;">myself</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br><br>&nbsp; &nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">method</span><span style="color: #660;">==</span><span style="color: #080;">"REGISTER"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; save</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; &nbsp; </span><span style="color: #800;"># native SIP destinations are handled using our USRLOC DB</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">lookup</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"404"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"Not Found"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: usrloc applied\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br></span><span style="color: #660;">}</span><span style="color: #000;"><br><br><br>route</span><span style="color: #660;">[</span><span style="color: #066;">1</span><span style="color: #660;">]</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># send it out now; use stateful forwarding as it works reliably</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># even for UDP2TCP</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">t_relay</span><span style="color: #660;">())</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_reply_error</span><span style="color: #660;">();</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br></span><span style="color: #660;">}</span></pre>
to:
(:redirect Documentation/Tutorials-B2BUAConfigExample quiet=1:)
April 07, 2011, at 05:19 PM by anca_vamanu -
Changed line 5 from:
<pre><span style="color: #800;"># $Id: opensips-b2b.cfg $</span><span style="color: #000;"><br><br></span><span style="color: #800;"># Debugging mode:</span><span style="color: #000;"><br>debug</span><span style="color: #660;">=</span><span style="color: #066;">3</span><span style="color: #000;"><br>memlog</span><span style="color: #660;">=</span><span style="color: #000;"> </span><span style="color: #066;">6</span><span style="color: #000;"><br>fork</span><span style="color: #660;">=</span><span style="color: #000;">yes<br>auto_aliases</span><span style="color: #660;">=</span><span style="color: #008;">no</span><span style="color: #000;"><br>log_stderror</span><span style="color: #660;">=</span><span style="color: #000;">yes<br><br>disable_dns_blacklist</span><span style="color: #660;">=</span><span style="color: #000;">yes<br><br>listen</span><span style="color: #660;">=</span><span style="color: #066;">10.10.10.10</span><span style="color: #660;">:</span><span style="color: #066;">5060</span><span style="color: #000;"><br></span><span style="color: #800;"># alias=OSIPS_REALM</span><span style="color: #000;"><br></span><span style="color: #800;">#port=OSIPS_PORT</span><span style="color: #000;"><br><br><br>sip_warning</span><span style="color: #660;">=</span><span style="color: #066;">0</span><span style="color: #000;"><br></span><span style="color: #800;">#server_header="SRV_SIGNATURE"</span><span style="color: #000;"><br></span><span style="color: #800;">#user_agent_header="PP_USER_AGENT"</span><span style="color: #000;"><br><br></span><span style="color: #800;">#mhomed=yes</span><span style="color: #000;"><br></span><span style="color: #800;">#memlog=2</span><span style="color: #000;"><br>check_via</span><span style="color: #660;">=</span><span style="color: #008;">no</span><span style="color: #000;"><br>dns</span><span style="color: #660;">=</span><span style="color: #000;">off<br>rev_dns</span><span style="color: #660;">=</span><span style="color: #000;">off<br>children</span><span style="color: #660;">=</span><span style="color: #066;">8</span><span style="color: #000;"><br>disable_tcp</span><span style="color: #660;">=</span><span style="color: #000;">yes<br>log_facility</span><span style="color: #660;">=</span><span style="color: #000;">LOG_LOCAL7<br></span><span style="color: #800;"># for more info: opensips -h</span><span style="color: #000;"><br><br></span><span style="color: #800;"># ------------------ module loading ----------------------------------</span><span style="color: #000;"><br><br>mpath</span><span style="color: #660;">=</span><span style="color: #080;">"/usr/local/lib/opensips/modules/"</span><span style="color: #000;"><br><br>loadmodule </span><span style="color: #080;">"db_mysql.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"xlog.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"textops.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"maxfwd.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"rr.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"sl.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"tm.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"signaling.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"b2b_entities.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"b2b_logic.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"usrloc.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"registrar.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"mi_fifo.so"</span><span style="color: #000;"><br><br><br></span><span style="color: #800;"># ----------------- setting module-specific parameters ---------------</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"mi_fifo"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"fifo_name"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/tmp/opensips_fifo"</span><span style="color: #660;">)</span><span style="color: #000;"><br><br><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"usrloc|b2b_entities|b2b_logic"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"db_url"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"mysql://opensips:opensipsrw@localhost/opensips"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"usrloc"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"db_mode"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #066;">2</span><span style="color: #660;">)</span><span style="color: #000;"><br><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"tm"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"pass_provisional_replies"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #066;">1</span><span style="color: #660;">)</span><span style="color: #000;"><br><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_entities"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"server_address"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"sip:sa@10.10.10.10:5060"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_logic"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"script_scenario"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/usr/local/etc/opensips/scenario_script.xml"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_logic"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"extern_scenario"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/usr/local/etc/opensips/scenario_extern.xml"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_entities"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"script_req_route"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"b2b_request"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_entities"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"script_reply_route"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"b2b_reply"</span><span style="color: #660;">)</span><span style="color: #000;"><br><br>route</span><span style="color: #660;">[</span><span style="color: #000;">b2b_request</span><span style="color: #660;">]</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; xlog</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_request ($ci)\n"</span><span style="color: #660;">);</span><span style="color: #000;"><br></span><span style="color: #660;">}</span><span style="color: #000;"><br><br><br>route</span><span style="color: #660;">[</span><span style="color: #000;">b2b_reply</span><span style="color: #660;">]</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; xlog</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_reply ($ci)\n"</span><span style="color: #660;">);</span><span style="color: #000;"><br></span><span style="color: #660;">}</span><span style="color: #000;"><br><br><br>route </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">mf_process_maxfwd_header</span><span style="color: #660;">(</span><span style="color: #080;">"10"</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"483"</span><span style="color: #660;">,</span><span style="color: #080;">"Too Many Hops"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">msg</span><span style="color: #660;">:</span><span style="color: #000;">len </span><span style="color: #660;">&gt;=</span><span style="color: #000;"> </span><span style="color: #066;">2380</span><span style="color: #000;"> </span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"513"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"Message too big"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">method</span><span style="color: #660;">==</span><span style="color: #080;">"REGISTER"</span><span style="color: #660;">)</span><span style="color: #000;"><br>&nbsp; &nbsp; record_route</span><span style="color: #660;">();</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #800;"># subsequent messages withing a dialog should take the</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># path determined by record-routing</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">loose_route</span><span style="color: #660;">())</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: rr-enforced\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; &nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #660;">(</span><span style="color: #000;">is_method</span><span style="color: #660;">(</span><span style="color: #080;">"INVITE"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">$fU</span><span style="color: #660;">==</span><span style="color: #080;">"bob"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> &nbsp; </span><span style="color: #800;">/* only for Invite messages from bob*/</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #660;">!(</span><span style="color: #000;">src_ip </span><span style="color: #660;">==</span><span style="color: #000;"> </span><span style="color: #080;">"10.10.10.10"</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> src_port </span><span style="color: #660;">==</span><span style="color: #066;">5060</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #800;">/* skip Invite messages generated by the B2BUA*/</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #800;"># DO NOT call t_newtran() on this request -&gt; it will result in the transaction never being deleted</span><span style="color: #000;"><br>&nbsp; &nbsp; b2b_init_request</span><span style="color: #660;">(</span><span style="color: #080;">"prepaid"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"sip:320@opensips.org:5070"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"sip:321@opensips.org:5070"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"> </span><span style="color: #800;"># do not forward this request, another one will be generated</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">uri</span><span style="color: #660;">==</span><span style="color: #000;">myself</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: outbound\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; &nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">uri</span><span style="color: #660;">==</span><span style="color: #000;">myself</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br><br>&nbsp; &nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">method</span><span style="color: #660;">==</span><span style="color: #080;">"REGISTER"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; save</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; &nbsp; </span><span style="color: #800;"># native SIP destinations are handled using our USRLOC DB</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">lookup</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"404"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"Not Found"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: usrloc applied\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br></span><span style="color: #660;">}</span><span style="color: #000;"><br><br><br>route</span><span style="color: #660;">[</span><span style="color: #066;">1</span><span style="color: #660;">]</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># send it out now; use stateful forwarding as it works reliably</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># even for UDP2TCP</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">t_relay</span><span style="color: #660;">())</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_reply_error</span><span style="color: #660;">();</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br></span><span style="color: #660;">}</span></pre>
to:
<pre><span style="color: #800;"># $Id: opensips-b2b.cfg $</span><span style="color: #000;"><br><br></span><span style="color: #800;"># Debugging mode:</span><span style="color: #000;"><br>debug</span><span style="color: #660;">=</span><span style="color: #066;">3</span><span style="color: #000;"><br>memlog</span><span style="color: #660;">=</span><span style="color: #000;"> </span><span style="color: #066;">6</span><span style="color: #000;"><br>fork</span><span style="color: #660;">=</span><span style="color: #000;">yes<br>auto_aliases</span><span style="color: #660;">=</span><span style="color: #008;">no</span><span style="color: #000;"><br>log_stderror</span><span style="color: #660;">=</span><span style="color: #000;">yes<br><br>disable_dns_blacklist</span><span style="color: #660;">=</span><span style="color: #000;">yes<br><br>listen</span><span style="color: #660;">=</span><span style="color: #066;">10.10.10.10</span><span style="color: #660;">:</span><span style="color: #066;">5060</span><span style="color: #000;"><br></span><span style="color: #800;"># alias=OSIPS_REALM</span><span style="color: #000;"><br></span><span style="color: #800;">#port=OSIPS_PORT</span><span style="color: #000;"><br><br><br>sip_warning</span><span style="color: #660;">=</span><span style="color: #066;">0</span><span style="color: #000;"><br></span><span style="color: #800;">#server_header="SRV_SIGNATURE"</span><span style="color: #000;"><br></span><span style="color: #800;">#user_agent_header="PP_USER_AGENT"</span><span style="color: #000;"><br><br></span><span style="color: #800;">#mhomed=yes</span><span style="color: #000;"><br></span><span style="color: #800;">#memlog=2</span><span style="color: #000;"><br>check_via</span><span style="color: #660;">=</span><span style="color: #008;">no</span><span style="color: #000;"><br>dns</span><span style="color: #660;">=</span><span style="color: #000;">off<br>rev_dns</span><span style="color: #660;">=</span><span style="color: #000;">off<br>children</span><span style="color: #660;">=</span><span style="color: #066;">8</span><span style="color: #000;"><br>disable_tcp</span><span style="color: #660;">=</span><span style="color: #000;">yes<br>log_facility</span><span style="color: #660;">=</span><span style="color: #000;">LOG_LOCAL7<br></span><span style="color: #800;"># for more info: opensips -h</span><span style="color: #000;"><br><br></span><span style="color: #800;"># ------------------ module loading ----------------------------------</span><span style="color: #000;"><br><br>mpath</span><span style="color: #660;">=</span><span style="color: #080;">"/usr/local/lib/opensips/modules/"</span><span style="color: #000;"><br><br>loadmodule </span><span style="color: #080;">"db_mysql.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"xlog.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"textops.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"maxfwd.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"rr.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"sl.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"tm.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"signaling.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"b2b_entities.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"b2b_logic.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"usrloc.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"registrar.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"mi_fifo.so"</span><span style="color: #000;"><br><br><br></span><span style="color: #800;"># ----------------- setting module-specific parameters ---------------</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"mi_fifo"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"fifo_name"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/tmp/opensips_fifo"</span><span style="color: #660;">)</span><span style="color: #000;"><br><br><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"usrloc|b2b_entities|b2b_logic"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"db_url"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"mysql://opensips:opensipsrw@localhost/opensips"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"usrloc"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"db_mode"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #066;">2</span><span style="color: #660;">)</span><span style="color: #000;"><br><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"tm"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"pass_provisional_replies"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #066;">1</span><span style="color: #660;">)</span><br><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_logic"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"script_scenario"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/usr/local/etc/opensips/scenario_script.xml"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_logic"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"extern_scenario"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/usr/local/etc/opensips/scenario_extern.xml"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_entities"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"script_req_route"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"b2b_request"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_entities"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"script_reply_route"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"b2b_reply"</span><span style="color: #660;">)</span><span style="color: #000;"><br><br>route</span><span style="color: #660;">[</span><span style="color: #000;">b2b_request</span><span style="color: #660;">]</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; xlog</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_request ($ci)\n"</span><span style="color: #660;">);</span><span style="color: #000;"><br></span><span style="color: #660;">}</span><span style="color: #000;"><br><br><br>route</span><span style="color: #660;">[</span><span style="color: #000;">b2b_reply</span><span style="color: #660;">]</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; xlog</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_reply ($ci)\n"</span><span style="color: #660;">);</span><span style="color: #000;"><br></span><span style="color: #660;">}</span><span style="color: #000;"><br><br><br>route </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">mf_process_maxfwd_header</span><span style="color: #660;">(</span><span style="color: #080;">"10"</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"483"</span><span style="color: #660;">,</span><span style="color: #080;">"Too Many Hops"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">msg</span><span style="color: #660;">:</span><span style="color: #000;">len </span><span style="color: #660;">&gt;=</span><span style="color: #000;"> </span><span style="color: #066;">2380</span><span style="color: #000;"> </span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"513"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"Message too big"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">method</span><span style="color: #660;">==</span><span style="color: #080;">"REGISTER"</span><span style="color: #660;">)</span><span style="color: #000;"><br>&nbsp; &nbsp; record_route</span><span style="color: #660;">();</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #800;"># subsequent messages withing a dialog should take the</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># path determined by record-routing</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">loose_route</span><span style="color: #660;">())</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: rr-enforced\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; &nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #660;">(</span><span style="color: #000;">is_method</span><span style="color: #660;">(</span><span style="color: #080;">"INVITE"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">$fU</span><span style="color: #660;">==</span><span style="color: #080;">"bob"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> &nbsp; </span><span style="color: #800;">/* only for Invite messages from bob*/</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #660;">!(</span><span style="color: #000;">src_ip </span><span style="color: #660;">==</span><span style="color: #000;"> </span><span style="color: #080;">"10.10.10.10"</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> src_port </span><span style="color: #660;">==</span><span style="color: #066;">5060</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #800;">/* skip Invite messages generated by the B2BUA*/</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #800;"># DO NOT call t_newtran() on this request -&gt; it will result in the transaction never being deleted</span><span style="color: #000;"><br>&nbsp; &nbsp; b2b_init_request</span><span style="color: #660;">(</span><span style="color: #080;">"prepaid"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"sip:320@opensips.org:5070"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"sip:321@opensips.org:5070"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"> </span><span style="color: #800;"># do not forward this request, another one will be generated</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">uri</span><span style="color: #660;">==</span><span style="color: #000;">myself</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: outbound\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; &nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">uri</span><span style="color: #660;">==</span><span style="color: #000;">myself</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br><br>&nbsp; &nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">method</span><span style="color: #660;">==</span><span style="color: #080;">"REGISTER"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; save</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; &nbsp; </span><span style="color: #800;"># native SIP destinations are handled using our USRLOC DB</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">lookup</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"404"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"Not Found"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: usrloc applied\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br></span><span style="color: #660;">}</span><span style="color: #000;"><br><br><br>route</span><span style="color: #660;">[</span><span style="color: #066;">1</span><span style="color: #660;">]</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># send it out now; use stateful forwarding as it works reliably</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># even for UDP2TCP</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">t_relay</span><span style="color: #660;">())</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_reply_error</span><span style="color: #660;">();</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br></span><span style="color: #660;">}</span></pre>
April 07, 2011, at 05:15 PM by anca_vamanu -
April 07, 2011, at 05:15 PM by anca_vamanu -
Changed line 5 from:
<pre><span style="color: #800;"># $Id: opensips-b2b.cfg $</span><span style="color: #000;"><br><br></span><span style="color: #800;"># Debugging mode:</span><span style="color: #000;"><br>debug</span><span style="color: #660;">=</span><span style="color: #066;">3</span><span style="color: #000;"><br>memlog</span><span style="color: #660;">=</span><span style="color: #000;"> </span><span style="color: #066;">6</span><span style="color: #000;"><br>fork</span><span style="color: #660;">=</span><span style="color: #000;">yes<br>auto_aliases</span><span style="color: #660;">=</span><span style="color: #008;">no</span><span style="color: #000;"><br>log_stderror</span><span style="color: #660;">=</span><span style="color: #000;">yes<br><br>disable_dns_blacklist</span><span style="color: #660;">=</span><span style="color: #000;">yes<br><br>listen</span><span style="color: #660;">=</span><span style="color: #066;">10.10.10.10</span><span style="color: #660;">:</span><span style="color: #066;">5060</span><span style="color: #000;"><br></span><span style="color: #800;"># alias=OSIPS_REALM</span><span style="color: #000;"><br></span><span style="color: #800;">#port=OSIPS_PORT</span><span style="color: #000;"><br><br><br>sip_warning</span><span style="color: #660;">=</span><span style="color: #066;">0</span><span style="color: #000;"><br></span><span style="color: #800;">#server_header="SRV_SIGNATURE"</span><span style="color: #000;"><br></span><span style="color: #800;">#user_agent_header="PP_USER_AGENT"</span><span style="color: #000;"><br><br></span><span style="color: #800;">#mhomed=yes</span><span style="color: #000;"><br></span><span style="color: #800;">#memlog=2</span><span style="color: #000;"><br>check_via</span><span style="color: #660;">=</span><span style="color: #008;">no</span><span style="color: #000;"><br>dns</span><span style="color: #660;">=</span><span style="color: #000;">off<br>rev_dns</span><span style="color: #660;">=</span><span style="color: #000;">off<br>children</span><span style="color: #660;">=</span><span style="color: #066;">8</span><span style="color: #000;"><br>disable_tcp</span><span style="color: #660;">=</span><span style="color: #000;">yes<br>log_facility</span><span style="color: #660;">=</span><span style="color: #000;">LOG_LOCAL7<br></span><span style="color: #800;"># for more info: opensips -h</span><span style="color: #000;"><br><br></span><span style="color: #800;"># ------------------ module loading ----------------------------------</span><span style="color: #000;"><br><br>mpath</span><span style="color: #660;">=</span><span style="color: #080;">"/usr/local/lib/opensips/modules/"</span><span style="color: #000;"><br><br>loadmodule </span><span style="color: #080;">"db_mysql.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"xlog.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"textops.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"maxfwd.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"rr.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"sl.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"tm.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"signaling.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"b2b_entities.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"b2b_logic.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"usrloc.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"registrar.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"mi_fifo.so"</span><span style="color: #000;"><br><br><br></span><span style="color: #800;"># ----------------- setting module-specific parameters ---------------</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"mi_fifo"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"fifo_name"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/tmp/opensips_fifo"</span><span style="color: #660;">)</span><span style="color: #000;"><br><br><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"usrloc|b2b_entities|b2b_logic"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"db_url"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"mysql://opensips:opensipsrw@localhost/opensips"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"usrloc"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"db_mode"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #066;">2</span><span style="color: #660;">)</span><span style="color: #000;"><br><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"tm"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"pass_provisional_replies"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #066;">1</span><span style="color: #660;">)</span><span style="color: #000;"><br><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_entities"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"server_address"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"sip:sa@10.10.10.10:5060"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_logic"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"script_scenario"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/usr/local/etc/opensips/scenario_script.xml"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_logic"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"extern_scenario"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/usr/local/etc/opensips/scenario_extern.xml"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_entities"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"script_req_route"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"b2b_request"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_entities"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"script_reply_route"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"b2b_reply"</span><span style="color: #660;">)</span><span style="color: #000;"><br><br>route</span><span style="color: #660;">[</span><span style="color: #000;">b2b_request</span><span style="color: #660;">]</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; xlog</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_request ($ci)\n"</span><span style="color: #660;">);</span><span style="color: #000;"><br></span><span style="color: #660;">}</span><span style="color: #000;"><br><br><br>route</span><span style="color: #660;">[</span><span style="color: #000;">b2b_reply</span><span style="color: #660;">]</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; xlog</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_reply ($ci)\n"</span><span style="color: #660;">);</span><span style="color: #000;"><br></span><span style="color: #660;">}</span><span style="color: #000;"><br><br><br>route </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">mf_process_maxfwd_header</span><span style="color: #660;">(</span><span style="color: #080;">"10"</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"483"</span><span style="color: #660;">,</span><span style="color: #080;">"Too Many Hops"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">msg</span><span style="color: #660;">:</span><span style="color: #000;">len </span><span style="color: #660;">&gt;=</span><span style="color: #000;"> </span><span style="color: #066;">2380</span><span style="color: #000;"> </span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"513"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"Message too big"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">method</span><span style="color: #660;">==</span><span style="color: #080;">"REGISTER"</span><span style="color: #660;">)</span><span style="color: #000;"><br>&nbsp; &nbsp; record_route</span><span style="color: #660;">();</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #800;"># subsequent messages withing a dialog should take the</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># path determined by record-routing</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">loose_route</span><span style="color: #660;">())</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: rr-enforced\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; &nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #660;">(</span><span style="color: #000;">is_method</span><span style="color: #660;">(</span><span style="color: #080;">"INVITE"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">$fU</span><span style="color: #660;">==</span><span style="color: #080;">"bob"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> &nbsp; </span><span style="color: #800;">/* only for Invite messages from bob*/</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #660;">!(</span><span style="color: #000;">src_ip </span><span style="color: #660;">==</span><span style="color: #000;"> </span><span style="color: #080;">"10.10.10.10"</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> src_port </span><span style="color: #660;">==</span><span style="color: #066;">5060</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #800;">/* skip Invite messages generated by the server*/</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #800;"># DO NOT call t_newtran() on this request -&gt; it will result in the transaction never being deleted</span><span style="color: #000;"><br>&nbsp; &nbsp; b2b_init_request</span><span style="color: #660;">(</span><span style="color: #080;">"prepaid"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"sip:320@opensips.org:5070"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"sip:321@opensips.org:5070"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"> </span><span style="color: #800;"># do not forward this request, another one will be generated</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">uri</span><span style="color: #660;">==</span><span style="color: #000;">myself</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: outbound\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; &nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">uri</span><span style="color: #660;">==</span><span style="color: #000;">myself</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br><br>&nbsp; &nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">method</span><span style="color: #660;">==</span><span style="color: #080;">"REGISTER"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; save</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; &nbsp; </span><span style="color: #800;"># native SIP destinations are handled using our USRLOC DB</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">lookup</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"404"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"Not Found"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: usrloc applied\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br></span><span style="color: #660;">}</span><span style="color: #000;"><br><br><br>route</span><span style="color: #660;">[</span><span style="color: #066;">1</span><span style="color: #660;">]</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># send it out now; use stateful forwarding as it works reliably</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># even for UDP2TCP</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">t_relay</span><span style="color: #660;">())</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_reply_error</span><span style="color: #660;">();</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br></span><span style="color: #660;">}</span></pre>
to:
<pre><span style="color: #800;"># $Id: opensips-b2b.cfg $</span><span style="color: #000;"><br><br></span><span style="color: #800;"># Debugging mode:</span><span style="color: #000;"><br>debug</span><span style="color: #660;">=</span><span style="color: #066;">3</span><span style="color: #000;"><br>memlog</span><span style="color: #660;">=</span><span style="color: #000;"> </span><span style="color: #066;">6</span><span style="color: #000;"><br>fork</span><span style="color: #660;">=</span><span style="color: #000;">yes<br>auto_aliases</span><span style="color: #660;">=</span><span style="color: #008;">no</span><span style="color: #000;"><br>log_stderror</span><span style="color: #660;">=</span><span style="color: #000;">yes<br><br>disable_dns_blacklist</span><span style="color: #660;">=</span><span style="color: #000;">yes<br><br>listen</span><span style="color: #660;">=</span><span style="color: #066;">10.10.10.10</span><span style="color: #660;">:</span><span style="color: #066;">5060</span><span style="color: #000;"><br></span><span style="color: #800;"># alias=OSIPS_REALM</span><span style="color: #000;"><br></span><span style="color: #800;">#port=OSIPS_PORT</span><span style="color: #000;"><br><br><br>sip_warning</span><span style="color: #660;">=</span><span style="color: #066;">0</span><span style="color: #000;"><br></span><span style="color: #800;">#server_header="SRV_SIGNATURE"</span><span style="color: #000;"><br></span><span style="color: #800;">#user_agent_header="PP_USER_AGENT"</span><span style="color: #000;"><br><br></span><span style="color: #800;">#mhomed=yes</span><span style="color: #000;"><br></span><span style="color: #800;">#memlog=2</span><span style="color: #000;"><br>check_via</span><span style="color: #660;">=</span><span style="color: #008;">no</span><span style="color: #000;"><br>dns</span><span style="color: #660;">=</span><span style="color: #000;">off<br>rev_dns</span><span style="color: #660;">=</span><span style="color: #000;">off<br>children</span><span style="color: #660;">=</span><span style="color: #066;">8</span><span style="color: #000;"><br>disable_tcp</span><span style="color: #660;">=</span><span style="color: #000;">yes<br>log_facility</span><span style="color: #660;">=</span><span style="color: #000;">LOG_LOCAL7<br></span><span style="color: #800;"># for more info: opensips -h</span><span style="color: #000;"><br><br></span><span style="color: #800;"># ------------------ module loading ----------------------------------</span><span style="color: #000;"><br><br>mpath</span><span style="color: #660;">=</span><span style="color: #080;">"/usr/local/lib/opensips/modules/"</span><span style="color: #000;"><br><br>loadmodule </span><span style="color: #080;">"db_mysql.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"xlog.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"textops.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"maxfwd.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"rr.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"sl.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"tm.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"signaling.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"b2b_entities.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"b2b_logic.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"usrloc.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"registrar.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"mi_fifo.so"</span><span style="color: #000;"><br><br><br></span><span style="color: #800;"># ----------------- setting module-specific parameters ---------------</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"mi_fifo"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"fifo_name"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/tmp/opensips_fifo"</span><span style="color: #660;">)</span><span style="color: #000;"><br><br><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"usrloc|b2b_entities|b2b_logic"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"db_url"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"mysql://opensips:opensipsrw@localhost/opensips"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"usrloc"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"db_mode"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #066;">2</span><span style="color: #660;">)</span><span style="color: #000;"><br><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"tm"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"pass_provisional_replies"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #066;">1</span><span style="color: #660;">)</span><span style="color: #000;"><br><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_entities"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"server_address"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"sip:sa@10.10.10.10:5060"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_logic"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"script_scenario"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/usr/local/etc/opensips/scenario_script.xml"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_logic"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"extern_scenario"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/usr/local/etc/opensips/scenario_extern.xml"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_entities"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"script_req_route"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"b2b_request"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_entities"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"script_reply_route"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"b2b_reply"</span><span style="color: #660;">)</span><span style="color: #000;"><br><br>route</span><span style="color: #660;">[</span><span style="color: #000;">b2b_request</span><span style="color: #660;">]</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; xlog</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_request ($ci)\n"</span><span style="color: #660;">);</span><span style="color: #000;"><br></span><span style="color: #660;">}</span><span style="color: #000;"><br><br><br>route</span><span style="color: #660;">[</span><span style="color: #000;">b2b_reply</span><span style="color: #660;">]</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; xlog</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_reply ($ci)\n"</span><span style="color: #660;">);</span><span style="color: #000;"><br></span><span style="color: #660;">}</span><span style="color: #000;"><br><br><br>route </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">mf_process_maxfwd_header</span><span style="color: #660;">(</span><span style="color: #080;">"10"</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"483"</span><span style="color: #660;">,</span><span style="color: #080;">"Too Many Hops"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">msg</span><span style="color: #660;">:</span><span style="color: #000;">len </span><span style="color: #660;">&gt;=</span><span style="color: #000;"> </span><span style="color: #066;">2380</span><span style="color: #000;"> </span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"513"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"Message too big"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">method</span><span style="color: #660;">==</span><span style="color: #080;">"REGISTER"</span><span style="color: #660;">)</span><span style="color: #000;"><br>&nbsp; &nbsp; record_route</span><span style="color: #660;">();</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #800;"># subsequent messages withing a dialog should take the</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># path determined by record-routing</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">loose_route</span><span style="color: #660;">())</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: rr-enforced\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; &nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #660;">(</span><span style="color: #000;">is_method</span><span style="color: #660;">(</span><span style="color: #080;">"INVITE"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">$fU</span><span style="color: #660;">==</span><span style="color: #080;">"bob"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> &nbsp; </span><span style="color: #800;">/* only for Invite messages from bob*/</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #660;">!(</span><span style="color: #000;">src_ip </span><span style="color: #660;">==</span><span style="color: #000;"> </span><span style="color: #080;">"10.10.10.10"</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> src_port </span><span style="color: #660;">==</span><span style="color: #066;">5060</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #800;">/* skip Invite messages generated by the B2BUA*/</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #800;"># DO NOT call t_newtran() on this request -&gt; it will result in the transaction never being deleted</span><span style="color: #000;"><br>&nbsp; &nbsp; b2b_init_request</span><span style="color: #660;">(</span><span style="color: #080;">"prepaid"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"sip:320@opensips.org:5070"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"sip:321@opensips.org:5070"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"> </span><span style="color: #800;"># do not forward this request, another one will be generated</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">uri</span><span style="color: #660;">==</span><span style="color: #000;">myself</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: outbound\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; &nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">uri</span><span style="color: #660;">==</span><span style="color: #000;">myself</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br><br>&nbsp; &nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">method</span><span style="color: #660;">==</span><span style="color: #080;">"REGISTER"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; save</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; &nbsp; </span><span style="color: #800;"># native SIP destinations are handled using our USRLOC DB</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">lookup</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"404"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"Not Found"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: usrloc applied\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br></span><span style="color: #660;">}</span><span style="color: #000;"><br><br><br>route</span><span style="color: #660;">[</span><span style="color: #066;">1</span><span style="color: #660;">]</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># send it out now; use stateful forwarding as it works reliably</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># even for UDP2TCP</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">t_relay</span><span style="color: #660;">())</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_reply_error</span><span style="color: #660;">();</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br></span><span style="color: #660;">}</span></pre>
November 04, 2010, at 01:01 PM by anca_vamanu -
Changed lines 3-4 from:

<pre><span style="color: #800;"># $Id: opensips-b2b.cfg $</span><span style="color: #000;"><br><br></span><span style="color: #800;"># Debugging mode:</span><span style="color: #000;"><br>debug</span><span style="color: #660;">=</span><span style="color: #066;">3</span><span style="color: #000;"><br>memlog</span><span style="color: #660;">=</span><span style="color: #000;"> </span><span style="color: #066;">6</span><span style="color: #000;"><br>fork</span><span style="color: #660;">=</span><span style="color: #000;">yes<br>auto_aliases</span><span style="color: #660;">=</span><span style="color: #008;">no</span><span style="color: #000;"><br>log_stderror</span><span style="color: #660;">=</span><span style="color: #000;">yes<br><br>disable_dns_blacklist</span><span style="color: #660;">=</span><span style="color: #000;">yes<br><br>listen</span><span style="color: #660;">=</span><span style="color: #066;">10.10.10.10</span><span style="color: #660;">:</span><span style="color: #066;">5060</span><span style="color: #000;"><br></span><span style="color: #800;"># alias=OSIPS_REALM</span><span style="color: #000;"><br></span><span style="color: #800;">#port=OSIPS_PORT</span><span style="color: #000;"><br><br><br>sip_warning</span><span style="color: #660;">=</span><span style="color: #066;">0</span><span style="color: #000;"><br></span><span style="color: #800;">#server_header="SRV_SIGNATURE"</span><span style="color: #000;"><br></span><span style="color: #800;">#user_agent_header="PP_USER_AGENT"</span><span style="color: #000;"><br><br></span><span style="color: #800;">#mhomed=yes</span><span style="color: #000;"><br></span><span style="color: #800;">#memlog=2</span><span style="color: #000;"><br>check_via</span><span style="color: #660;">=</span><span style="color: #008;">no</span><span style="color: #000;"><br>dns</span><span style="color: #660;">=</span><span style="color: #000;">off<br>rev_dns</span><span style="color: #660;">=</span><span style="color: #000;">off<br>children</span><span style="color: #660;">=</span><span style="color: #066;">8</span><span style="color: #000;"><br>disable_tcp</span><span style="color: #660;">=</span><span style="color: #000;">yes<br>log_facility</span><span style="color: #660;">=</span><span style="color: #000;">LOG_LOCAL7<br></span><span style="color: #800;"># for more info: opensips -h</span><span style="color: #000;"><br><br></span><span style="color: #800;"># ------------------ module loading ----------------------------------</span><span style="color: #000;"><br><br>mpath</span><span style="color: #660;">=</span><span style="color: #080;">"/usr/local/opensips/lib/modules/"</span><span style="color: #000;"><br><br>loadmodule </span><span style="color: #080;">"db_mysql.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"xlog.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"textops.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"maxfwd.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"rr.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"sl.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"tm.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"signaling.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"b2b_entities.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"b2b_logic.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"usrloc.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"registrar.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"mi_fifo.so"</span><span style="color: #000;"><br><br><br></span><span style="color: #800;"># ----------------- setting module-specific parameters ---------------</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"mi_fifo"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"fifo_name"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/tmp/opensips_fifo"</span><span style="color: #660;">)</span><span style="color: #000;"><br><br><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"usrloc"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"db_url"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"mysql://opensips:opensipsrw@localhost/opensips"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"usrloc"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"db_mode"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #066;">2</span><span style="color: #660;">)</span><span style="color: #000;"><br><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"tm"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"pass_provisional_replies"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #066;">1</span><span style="color: #660;">)</span><span style="color: #000;"><br><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_entities"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"server_address"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"sip:sa@10.10.10.10:5060"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_logic"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"script_scenario"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/home/anca/work/opensips/modules/b2b_logic/scenario_script.xml"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_logic"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"extern_scenario"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/home/anca/work/opensips/modules/b2b_logic/scenario_extern.xml"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_entities"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"script_req_route"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"b2b_request"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_entities"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"script_reply_route"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"b2b_reply"</span><span style="color: #660;">)</span><span style="color: #000;"><br><br>route</span><span style="color: #660;">[</span><span style="color: #000;">b2b_request</span><span style="color: #660;">]</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; xlog</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_request ($ci)\n"</span><span style="color: #660;">);</span><span style="color: #000;"><br></span><span style="color: #660;">}</span><span style="color: #000;"><br><br><br>route</span><span style="color: #660;">[</span><span style="color: #000;">b2b_reply</span><span style="color: #660;">]</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; xlog</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_reply ($ci)\n"</span><span style="color: #660;">);</span><span style="color: #000;"><br></span><span style="color: #660;">}</span><span style="color: #000;"><br><br><br>route </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">mf_process_maxfwd_header</span><span style="color: #660;">(</span><span style="color: #080;">"10"</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"483"</span><span style="color: #660;">,</span><span style="color: #080;">"Too Many Hops"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">msg</span><span style="color: #660;">:</span><span style="color: #000;">len </span><span style="color: #660;">&gt;=</span><span style="color: #000;"> </span><span style="color: #066;">2380</span><span style="color: #000;"> </span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"513"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"Message too big"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">method</span><span style="color: #660;">==</span><span style="color: #080;">"REGISTER"</span><span style="color: #660;">)</span><span style="color: #000;"><br>&nbsp; &nbsp; record_route</span><span style="color: #660;">();</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #800;"># subsequent messages withing a dialog should take the</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># path determined by record-routing</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">loose_route</span><span style="color: #660;">())</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: rr-enforced\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; &nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #660;">(</span><span style="color: #000;">is_method</span><span style="color: #660;">(</span><span style="color: #080;">"INVITE"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">$fU</span><span style="color: #660;">==</span><span style="color: #080;">"bob"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> &nbsp; </span><span style="color: #800;">/* only for Invite messages from bob*/</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #660;">!(</span><span style="color: #000;">src_ip </span><span style="color: #660;">==</span><span style="color: #000;"> </span><span style="color: #080;">"10.10.10.10"</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> src_port </span><span style="color: #660;">==</span><span style="color: #066;">5060</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #800;">/* skip Invite messages generated by the server*/</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #800;"># DO NOT call t_newtran() on this request -&gt; it will result in the transaction never being deleted</span><span style="color: #000;"><br>&nbsp; &nbsp; b2b_init_request</span><span style="color: #660;">(</span><span style="color: #080;">"prepaid"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"sip:320@opensips.org:5070"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"sip:321@opensips.org:5070"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">uri</span><span style="color: #660;">==</span><span style="color: #000;">myself</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: outbound\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; &nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">uri</span><span style="color: #660;">==</span><span style="color: #000;">myself</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br><br>&nbsp; &nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">method</span><span style="color: #660;">==</span><span style="color: #080;">"REGISTER"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; save</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; &nbsp; </span><span style="color: #800;"># native SIP destinations are handled using our USRLOC DB</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">lookup</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"404"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"Not Found"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: usrloc applied\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br></span><span style="color: #660;">}</span><span style="color: #000;"><br><br><br>route</span><span style="color: #660;">[</span><span style="color: #066;">1</span><span style="color: #660;">]</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># send it out now; use stateful forwarding as it works reliably</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># even for UDP2TCP</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">t_relay</span><span style="color: #660;">())</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_reply_error</span><span style="color: #660;">();</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br></span><span style="color: #660;">}</span></pre>
to:
[[http://www.opensips.org/uploads/Resources/opensips_b2b.cfg | Download]]

<pre><span style="color: #800;"># $Id: opensips-b2b.cfg $</span><span style="color: #000;"><br><br></span><span style="color: #800;"># Debugging mode:</span><span style="color: #000;"><br>debug</span><span style="color: #660;">=</span><span style="color: #066;">3</span><span style="color: #000;"><br>memlog</span><span style="color: #660;">=</span><span style="color: #000;"> </span><span style="color: #066;">6</span><span style="color: #000;"><br>fork</span><span style="color: #660;">=</span><span style="color: #000;">yes<br>auto_aliases</span><span style="color: #660;">=</span><span style="color: #008;">no</span><span style="color: #000;"><br>log_stderror</span><span style="color: #660;">=</span><span style="color: #000;">yes<br><br>disable_dns_blacklist</span><span style="color: #660;">=</span><span style="color: #000;">yes<br><br>listen</span><span style="color: #660;">=</span><span style="color: #066;">10.10.10.10</span><span style="color: #660;">:</span><span style="color: #066;">5060</span><span style="color: #000;"><br></span><span style="color: #800;"># alias=OSIPS_REALM</span><span style="color: #000;"><br></span><span style="color: #800;">#port=OSIPS_PORT</span><span style="color: #000;"><br><br><br>sip_warning</span><span style="color: #660;">=</span><span style="color: #066;">0</span><span style="color: #000;"><br></span><span style="color: #800;">#server_header="SRV_SIGNATURE"</span><span style="color: #000;"><br></span><span style="color: #800;">#user_agent_header="PP_USER_AGENT"</span><span style="color: #000;"><br><br></span><span style="color: #800;">#mhomed=yes</span><span style="color: #000;"><br></span><span style="color: #800;">#memlog=2</span><span style="color: #000;"><br>check_via</span><span style="color: #660;">=</span><span style="color: #008;">no</span><span style="color: #000;"><br>dns</span><span style="color: #660;">=</span><span style="color: #000;">off<br>rev_dns</span><span style="color: #660;">=</span><span style="color: #000;">off<br>children</span><span style="color: #660;">=</span><span style="color: #066;">8</span><span style="color: #000;"><br>disable_tcp</span><span style="color: #660;">=</span><span style="color: #000;">yes<br>log_facility</span><span style="color: #660;">=</span><span style="color: #000;">LOG_LOCAL7<br></span><span style="color: #800;"># for more info: opensips -h</span><span style="color: #000;"><br><br></span><span style="color: #800;"># ------------------ module loading ----------------------------------</span><span style="color: #000;"><br><br>mpath</span><span style="color: #660;">=</span><span style="color: #080;">"/usr/local/lib/opensips/modules/"</span><span style="color: #000;"><br><br>loadmodule </span><span style="color: #080;">"db_mysql.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"xlog.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"textops.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"maxfwd.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"rr.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"sl.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"tm.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"signaling.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"b2b_entities.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"b2b_logic.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"usrloc.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"registrar.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"mi_fifo.so"</span><span style="color: #000;"><br><br><br></span><span style="color: #800;"># ----------------- setting module-specific parameters ---------------</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"mi_fifo"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"fifo_name"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/tmp/opensips_fifo"</span><span style="color: #660;">)</span><span style="color: #000;"><br><br><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"usrloc|b2b_entities|b2b_logic"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"db_url"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"mysql://opensips:opensipsrw@localhost/opensips"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"usrloc"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"db_mode"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #066;">2</span><span style="color: #660;">)</span><span style="color: #000;"><br><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"tm"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"pass_provisional_replies"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #066;">1</span><span style="color: #660;">)</span><span style="color: #000;"><br><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_entities"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"server_address"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"sip:sa@10.10.10.10:5060"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_logic"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"script_scenario"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/usr/local/etc/opensips/scenario_script.xml"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_logic"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"extern_scenario"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/usr/local/etc/opensips/scenario_extern.xml"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_entities"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"script_req_route"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"b2b_request"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_entities"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"script_reply_route"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"b2b_reply"</span><span style="color: #660;">)</span><span style="color: #000;"><br><br>route</span><span style="color: #660;">[</span><span style="color: #000;">b2b_request</span><span style="color: #660;">]</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; xlog</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_request ($ci)\n"</span><span style="color: #660;">);</span><span style="color: #000;"><br></span><span style="color: #660;">}</span><span style="color: #000;"><br><br><br>route</span><span style="color: #660;">[</span><span style="color: #000;">b2b_reply</span><span style="color: #660;">]</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; xlog</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_reply ($ci)\n"</span><span style="color: #660;">);</span><span style="color: #000;"><br></span><span style="color: #660;">}</span><span style="color: #000;"><br><br><br>route </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">mf_process_maxfwd_header</span><span style="color: #660;">(</span><span style="color: #080;">"10"</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"483"</span><span style="color: #660;">,</span><span style="color: #080;">"Too Many Hops"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">msg</span><span style="color: #660;">:</span><span style="color: #000;">len </span><span style="color: #660;">&gt;=</span><span style="color: #000;"> </span><span style="color: #066;">2380</span><span style="color: #000;"> </span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"513"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"Message too big"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">method</span><span style="color: #660;">==</span><span style="color: #080;">"REGISTER"</span><span style="color: #660;">)</span><span style="color: #000;"><br>&nbsp; &nbsp; record_route</span><span style="color: #660;">();</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #800;"># subsequent messages withing a dialog should take the</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># path determined by record-routing</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">loose_route</span><span style="color: #660;">())</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: rr-enforced\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; &nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #660;">(</span><span style="color: #000;">is_method</span><span style="color: #660;">(</span><span style="color: #080;">"INVITE"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">$fU</span><span style="color: #660;">==</span><span style="color: #080;">"bob"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> &nbsp; </span><span style="color: #800;">/* only for Invite messages from bob*/</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #660;">!(</span><span style="color: #000;">src_ip </span><span style="color: #660;">==</span><span style="color: #000;"> </span><span style="color: #080;">"10.10.10.10"</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> src_port </span><span style="color: #660;">==</span><span style="color: #066;">5060</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #800;">/* skip Invite messages generated by the server*/</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #800;"># DO NOT call t_newtran() on this request -&gt; it will result in the transaction never being deleted</span><span style="color: #000;"><br>&nbsp; &nbsp; b2b_init_request</span><span style="color: #660;">(</span><span style="color: #080;">"prepaid"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"sip:320@opensips.org:5070"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"sip:321@opensips.org:5070"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"> </span><span style="color: #800;"># do not forward this request, another one will be generated</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">uri</span><span style="color: #660;">==</span><span style="color: #000;">myself</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: outbound\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; &nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">uri</span><span style="color: #660;">==</span><span style="color: #000;">myself</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br><br>&nbsp; &nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">method</span><span style="color: #660;">==</span><span style="color: #080;">"REGISTER"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; save</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; &nbsp; </span><span style="color: #800;"># native SIP destinations are handled using our USRLOC DB</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">lookup</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"404"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"Not Found"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: usrloc applied\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br></span><span style="color: #660;">}</span><span style="color: #000;"><br><br><br>route</span><span style="color: #660;">[</span><span style="color: #066;">1</span><span style="color: #660;">]</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># send it out now; use stateful forwarding as it works reliably</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># even for UDP2TCP</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">t_relay</span><span style="color: #660;">())</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_reply_error</span><span style="color: #660;">();</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br></span><span style="color: #660;">}</span></pre>
June 24, 2010, at 01:43 PM by anca_vamanu -
Changed line 4 from:
<pre><span style="color: #800;"># $Id: opensips-b2b.cfg $</span><span style="color: #000;"><br><br></span><span style="color: #800;"># Debugging mode:</span><span style="color: #000;"><br>debug</span><span style="color: #660;">=</span><span style="color: #066;">3</span><span style="color: #000;"><br>memlog</span><span style="color: #660;">=</span><span style="color: #000;"> </span><span style="color: #066;">6</span><span style="color: #000;"><br>fork</span><span style="color: #660;">=</span><span style="color: #000;">yes<br>auto_aliases</span><span style="color: #660;">=</span><span style="color: #008;">no</span><span style="color: #000;"><br>log_stderror</span><span style="color: #660;">=</span><span style="color: #000;">yes<br><br>disable_dns_blacklist</span><span style="color: #660;">=</span><span style="color: #000;">yes<br><br>listen</span><span style="color: #660;">=</span><span style="color: #066;">10.10.10.10</span><span style="color: #660;">:</span><span style="color: #066;">5060</span><span style="color: #000;"><br></span><span style="color: #800;"># alias=OSIPS_REALM</span><span style="color: #000;"><br></span><span style="color: #800;">#port=OSIPS_PORT</span><span style="color: #000;"><br><br><br>sip_warning</span><span style="color: #660;">=</span><span style="color: #066;">0</span><span style="color: #000;"><br></span><span style="color: #800;">#server_header="SRV_SIGNATURE"</span><span style="color: #000;"><br></span><span style="color: #800;">#user_agent_header="PP_USER_AGENT"</span><span style="color: #000;"><br><br></span><span style="color: #800;">#mhomed=yes</span><span style="color: #000;"><br></span><span style="color: #800;">#memlog=2</span><span style="color: #000;"><br>check_via</span><span style="color: #660;">=</span><span style="color: #008;">no</span><span style="color: #000;"><br>dns</span><span style="color: #660;">=</span><span style="color: #000;">off<br>rev_dns</span><span style="color: #660;">=</span><span style="color: #000;">off<br>children</span><span style="color: #660;">=</span><span style="color: #066;">8</span><span style="color: #000;"><br>disable_tcp</span><span style="color: #660;">=</span><span style="color: #000;">yes<br>log_facility</span><span style="color: #660;">=</span><span style="color: #000;">LOG_LOCAL7<br></span><span style="color: #800;"># for more info: opensips -h</span><span style="color: #000;"><br><br></span><span style="color: #800;"># ------------------ module loading ----------------------------------</span><span style="color: #000;"><br><br>mpath</span><span style="color: #660;">=</span><span style="color: #080;">"/usr/local/opensips/lib/modules/"</span><span style="color: #000;"><br><br>loadmodule </span><span style="color: #080;">"db_mysql.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"xlog.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"textops.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"maxfwd.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"rr.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"sl.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"tm.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"signaling.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"b2b_entities.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"b2b_logic.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"usrloc.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"registrar.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"mi_fifo.so"</span><span style="color: #000;"><br><br><br></span><span style="color: #800;"># ----------------- setting module-specific parameters ---------------</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"mi_fifo"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"fifo_name"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/tmp/opensips_fifo"</span><span style="color: #660;">)</span><span style="color: #000;"><br><br><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"usrloc"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"db_url"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"mysql://opensips:opensipsrw@localhost/opensips"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"usrloc"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"db_mode"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #066;">2</span><span style="color: #660;">)</span><span style="color: #000;"><br><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"tm"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"pass_provisional_replies"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #066;">1</span><span style="color: #660;">)</span><span style="color: #000;"><br><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_entities"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"server_address"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"sip:sa@10.10.10.10:5060"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_logic"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"script_scenario"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/home/anca/work/opensips/modules/b2b_logic/scenario_script.xml"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_logic"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"extern_scenario"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/home/anca/work/opensips/modules/b2b_logic/scenario_extern.xml"</span><span style="color: #660;">)</span><span style="color: #000;"><br><br>route </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">mf_process_maxfwd_header</span><span style="color: #660;">(</span><span style="color: #080;">"10"</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"483"</span><span style="color: #660;">,</span><span style="color: #080;">"Too Many Hops"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">msg</span><span style="color: #660;">:</span><span style="color: #000;">len </span><span style="color: #660;">&gt;=</span><span style="color: #000;"> </span><span style="color: #066;">2380</span><span style="color: #000;"> </span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"513"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"Message too big"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">method</span><span style="color: #660;">==</span><span style="color: #080;">"REGISTER"</span><span style="color: #660;">)</span><span style="color: #000;"><br>&nbsp; &nbsp; record_route</span><span style="color: #660;">();</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #800;"># subsequent messages withing a dialog should take the</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># path determined by record-routing</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">loose_route</span><span style="color: #660;">())</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: rr-enforced\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; &nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #660;">(</span><span style="color: #000;">is_method</span><span style="color: #660;">(</span><span style="color: #080;">"INVITE"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">$fU</span><span style="color: #660;">==</span><span style="color: #080;">"bob"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> &nbsp; </span><span style="color: #800;">/* only for Invite messages from bob*/</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #660;">!(</span><span style="color: #000;">src_ip </span><span style="color: #660;">==</span><span style="color: #000;"> </span><span style="color: #080;">"10.10.10.10"</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> src_port </span><span style="color: #660;">==</span><span style="color: #066;">5060</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #800;">/* skip Invite messages generated by the server*/</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #800;"># DO NOT call t_newtran() on this request -&gt; it will result in the transaction never being deleted</span><span style="color: #000;"><br>&nbsp; &nbsp; b2b_init_request</span><span style="color: #660;">(</span><span style="color: #080;">"prepaid"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"sip:320@opensips.org:5070"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"sip:321@opensips.org:5070"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">uri</span><span style="color: #660;">==</span><span style="color: #000;">myself</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: outbound\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; &nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">uri</span><span style="color: #660;">==</span><span style="color: #000;">myself</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br><br>&nbsp; &nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">method</span><span style="color: #660;">==</span><span style="color: #080;">"REGISTER"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; save</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; &nbsp; </span><span style="color: #800;"># native SIP destinations are handled using our USRLOC DB</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">lookup</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"404"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"Not Found"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: usrloc applied\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br></span><span style="color: #660;">}</span><span style="color: #000;"><br><br><br>route</span><span style="color: #660;">[</span><span style="color: #066;">1</span><span style="color: #660;">]</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># send it out now; use stateful forwarding as it works reliably</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># even for UDP2TCP</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">t_relay</span><span style="color: #660;">())</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_reply_error</span><span style="color: #660;">();</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br></span><span style="color: #660;">}</span></pre>
to:
<pre><span style="color: #800;"># $Id: opensips-b2b.cfg $</span><span style="color: #000;"><br><br></span><span style="color: #800;"># Debugging mode:</span><span style="color: #000;"><br>debug</span><span style="color: #660;">=</span><span style="color: #066;">3</span><span style="color: #000;"><br>memlog</span><span style="color: #660;">=</span><span style="color: #000;"> </span><span style="color: #066;">6</span><span style="color: #000;"><br>fork</span><span style="color: #660;">=</span><span style="color: #000;">yes<br>auto_aliases</span><span style="color: #660;">=</span><span style="color: #008;">no</span><span style="color: #000;"><br>log_stderror</span><span style="color: #660;">=</span><span style="color: #000;">yes<br><br>disable_dns_blacklist</span><span style="color: #660;">=</span><span style="color: #000;">yes<br><br>listen</span><span style="color: #660;">=</span><span style="color: #066;">10.10.10.10</span><span style="color: #660;">:</span><span style="color: #066;">5060</span><span style="color: #000;"><br></span><span style="color: #800;"># alias=OSIPS_REALM</span><span style="color: #000;"><br></span><span style="color: #800;">#port=OSIPS_PORT</span><span style="color: #000;"><br><br><br>sip_warning</span><span style="color: #660;">=</span><span style="color: #066;">0</span><span style="color: #000;"><br></span><span style="color: #800;">#server_header="SRV_SIGNATURE"</span><span style="color: #000;"><br></span><span style="color: #800;">#user_agent_header="PP_USER_AGENT"</span><span style="color: #000;"><br><br></span><span style="color: #800;">#mhomed=yes</span><span style="color: #000;"><br></span><span style="color: #800;">#memlog=2</span><span style="color: #000;"><br>check_via</span><span style="color: #660;">=</span><span style="color: #008;">no</span><span style="color: #000;"><br>dns</span><span style="color: #660;">=</span><span style="color: #000;">off<br>rev_dns</span><span style="color: #660;">=</span><span style="color: #000;">off<br>children</span><span style="color: #660;">=</span><span style="color: #066;">8</span><span style="color: #000;"><br>disable_tcp</span><span style="color: #660;">=</span><span style="color: #000;">yes<br>log_facility</span><span style="color: #660;">=</span><span style="color: #000;">LOG_LOCAL7<br></span><span style="color: #800;"># for more info: opensips -h</span><span style="color: #000;"><br><br></span><span style="color: #800;"># ------------------ module loading ----------------------------------</span><span style="color: #000;"><br><br>mpath</span><span style="color: #660;">=</span><span style="color: #080;">"/usr/local/opensips/lib/modules/"</span><span style="color: #000;"><br><br>loadmodule </span><span style="color: #080;">"db_mysql.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"xlog.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"textops.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"maxfwd.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"rr.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"sl.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"tm.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"signaling.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"b2b_entities.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"b2b_logic.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"usrloc.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"registrar.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"mi_fifo.so"</span><span style="color: #000;"><br><br><br></span><span style="color: #800;"># ----------------- setting module-specific parameters ---------------</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"mi_fifo"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"fifo_name"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/tmp/opensips_fifo"</span><span style="color: #660;">)</span><span style="color: #000;"><br><br><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"usrloc"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"db_url"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"mysql://opensips:opensipsrw@localhost/opensips"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"usrloc"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"db_mode"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #066;">2</span><span style="color: #660;">)</span><span style="color: #000;"><br><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"tm"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"pass_provisional_replies"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #066;">1</span><span style="color: #660;">)</span><span style="color: #000;"><br><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_entities"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"server_address"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"sip:sa@10.10.10.10:5060"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_logic"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"script_scenario"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/home/anca/work/opensips/modules/b2b_logic/scenario_script.xml"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_logic"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"extern_scenario"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/home/anca/work/opensips/modules/b2b_logic/scenario_extern.xml"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_entities"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"script_req_route"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"b2b_request"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_entities"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"script_reply_route"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"b2b_reply"</span><span style="color: #660;">)</span><span style="color: #000;"><br><br>route</span><span style="color: #660;">[</span><span style="color: #000;">b2b_request</span><span style="color: #660;">]</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; xlog</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_request ($ci)\n"</span><span style="color: #660;">);</span><span style="color: #000;"><br></span><span style="color: #660;">}</span><span style="color: #000;"><br><br><br>route</span><span style="color: #660;">[</span><span style="color: #000;">b2b_reply</span><span style="color: #660;">]</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; xlog</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_reply ($ci)\n"</span><span style="color: #660;">);</span><span style="color: #000;"><br></span><span style="color: #660;">}</span><span style="color: #000;"><br><br><br>route </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">mf_process_maxfwd_header</span><span style="color: #660;">(</span><span style="color: #080;">"10"</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"483"</span><span style="color: #660;">,</span><span style="color: #080;">"Too Many Hops"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">msg</span><span style="color: #660;">:</span><span style="color: #000;">len </span><span style="color: #660;">&gt;=</span><span style="color: #000;"> </span><span style="color: #066;">2380</span><span style="color: #000;"> </span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"513"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"Message too big"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">method</span><span style="color: #660;">==</span><span style="color: #080;">"REGISTER"</span><span style="color: #660;">)</span><span style="color: #000;"><br>&nbsp; &nbsp; record_route</span><span style="color: #660;">();</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #800;"># subsequent messages withing a dialog should take the</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># path determined by record-routing</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">loose_route</span><span style="color: #660;">())</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: rr-enforced\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; &nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #660;">(</span><span style="color: #000;">is_method</span><span style="color: #660;">(</span><span style="color: #080;">"INVITE"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">$fU</span><span style="color: #660;">==</span><span style="color: #080;">"bob"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> &nbsp; </span><span style="color: #800;">/* only for Invite messages from bob*/</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #660;">!(</span><span style="color: #000;">src_ip </span><span style="color: #660;">==</span><span style="color: #000;"> </span><span style="color: #080;">"10.10.10.10"</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> src_port </span><span style="color: #660;">==</span><span style="color: #066;">5060</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #800;">/* skip Invite messages generated by the server*/</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #800;"># DO NOT call t_newtran() on this request -&gt; it will result in the transaction never being deleted</span><span style="color: #000;"><br>&nbsp; &nbsp; b2b_init_request</span><span style="color: #660;">(</span><span style="color: #080;">"prepaid"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"sip:320@opensips.org:5070"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"sip:321@opensips.org:5070"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">uri</span><span style="color: #660;">==</span><span style="color: #000;">myself</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: outbound\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; &nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">uri</span><span style="color: #660;">==</span><span style="color: #000;">myself</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br><br>&nbsp; &nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">method</span><span style="color: #660;">==</span><span style="color: #080;">"REGISTER"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; save</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; &nbsp; </span><span style="color: #800;"># native SIP destinations are handled using our USRLOC DB</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">lookup</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"404"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"Not Found"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: usrloc applied\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br></span><span style="color: #660;">}</span><span style="color: #000;"><br><br><br>route</span><span style="color: #660;">[</span><span style="color: #066;">1</span><span style="color: #660;">]</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># send it out now; use stateful forwarding as it works reliably</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># even for UDP2TCP</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">t_relay</span><span style="color: #660;">())</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_reply_error</span><span style="color: #660;">();</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br></span><span style="color: #660;">}</span></pre>
June 22, 2010, at 05:31 PM by anca_vamanu -
Changed line 4 from:
<pre><span style="color: #800;"># $Id: opensips-b2b.cfg $</span><span style="color: #000;"><br><br></span><span style="color: #800;"># Debugging mode:</span><span style="color: #000;"><br>debug</span><span style="color: #660;">=</span><span style="color: #066;">3</span><span style="color: #000;"><br>memlog</span><span style="color: #660;">=</span><span style="color: #000;"> </span><span style="color: #066;">6</span><span style="color: #000;"><br>fork</span><span style="color: #660;">=</span><span style="color: #000;">yes<br>auto_aliases</span><span style="color: #660;">=</span><span style="color: #008;">no</span><span style="color: #000;"><br>log_stderror</span><span style="color: #660;">=</span><span style="color: #000;">yes<br><br>disable_dns_blacklist</span><span style="color: #660;">=</span><span style="color: #000;">yes<br><br>listen</span><span style="color: #660;">=</span><span style="color: #066;">10.10.10.10</span><span style="color: #660;">:</span><span style="color: #066;">5060</span><span style="color: #000;"><br></span><span style="color: #800;"># alias=OSIPS_REALM</span><span style="color: #000;"><br></span><span style="color: #800;">#port=OSIPS_PORT</span><span style="color: #000;"><br><br><br>sip_warning</span><span style="color: #660;">=</span><span style="color: #066;">0</span><span style="color: #000;"><br></span><span style="color: #800;">#server_header="SRV_SIGNATURE"</span><span style="color: #000;"><br></span><span style="color: #800;">#user_agent_header="PP_USER_AGENT"</span><span style="color: #000;"><br><br></span><span style="color: #800;">#mhomed=yes</span><span style="color: #000;"><br></span><span style="color: #800;">#memlog=2</span><span style="color: #000;"><br>check_via</span><span style="color: #660;">=</span><span style="color: #008;">no</span><span style="color: #000;"><br>dns</span><span style="color: #660;">=</span><span style="color: #000;">off<br>rev_dns</span><span style="color: #660;">=</span><span style="color: #000;">off<br>children</span><span style="color: #660;">=</span><span style="color: #066;">8</span><span style="color: #000;"><br>disable_tcp</span><span style="color: #660;">=</span><span style="color: #000;">yes<br>log_facility</span><span style="color: #660;">=</span><span style="color: #000;">LOG_LOCAL7<br></span><span style="color: #800;"># for more info: opensips -h</span><span style="color: #000;"><br><br></span><span style="color: #800;"># ------------------ module loading ----------------------------------</span><span style="color: #000;"><br><br>mpath</span><span style="color: #660;">=</span><span style="color: #080;">"/usr/local/opensips/lib/modules/"</span><span style="color: #000;"><br><br>loadmodule </span><span style="color: #080;">"db_mysql.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"xlog.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"textops.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"maxfwd.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"rr.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"sl.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"tm.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"signaling.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"b2b_entities.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"b2b_logic.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"usrloc.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"registrar.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"mi_fifo.so"</span><span style="color: #000;"><br><br><br></span><span style="color: #800;"># ----------------- setting module-specific parameters ---------------</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"mi_fifo"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"fifo_name"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/tmp/opensips_fifo"</span><span style="color: #660;">)</span><span style="color: #000;"><br><br><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"usrloc"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"db_url"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"mysql://opensips:opensipsrw@localhost/opensips"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"usrloc"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"db_mode"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #066;">2</span><span style="color: #660;">)</span><span style="color: #000;"><br><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"tm"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"pass_provisional_replies"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #066;">1</span><span style="color: #660;">)</span><span style="color: #000;"><br><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_entities"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"server_address"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"sip:sa@10.10.10.10:5060"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_logic"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"script_scenario"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/home/anca/work/opensips/modules/b2b_logic/scenario_script.xml"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_logic"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"extern_scenario"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/home/anca/work/opensips/modules/b2b_logic/scenario_extern.xml"</span><span style="color: #660;">)</span><span style="color: #000;"><br><br>route </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">mf_process_maxfwd_header</span><span style="color: #660;">(</span><span style="color: #080;">"10"</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"483"</span><span style="color: #660;">,</span><span style="color: #080;">"Too Many Hops"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">msg</span><span style="color: #660;">:</span><span style="color: #000;">len </span><span style="color: #660;">&gt;=</span><span style="color: #000;"> </span><span style="color: #066;">2380</span><span style="color: #000;"> </span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"513"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"Message too big"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">method</span><span style="color: #660;">==</span><span style="color: #080;">"REGISTER"</span><span style="color: #660;">)</span><span style="color: #000;"><br>&nbsp; &nbsp; record_route</span><span style="color: #660;">();</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #800;"># subsequent messages withing a dialog should take the</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># path determined by record-routing</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">loose_route</span><span style="color: #660;">())</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: rr-enforced\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; &nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #660;">(</span><span style="color: #000;">is_method</span><span style="color: #660;">(</span><span style="color: #080;">"INVITE"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">$fU</span><span style="color: #660;">==</span><span style="color: #080;">"bob"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> &nbsp; </span><span style="color: #800;">/* only for Invite messages from bob*/</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #660;">!(</span><span style="color: #000;">src_ip </span><span style="color: #660;">==</span><span style="color: #000;"> </span><span style="color: #066;">"10.10.10.10"</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> src_port </span><span style="color: #660;">==</span><span style="color: #066;">5060</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #800;">/* skip Invite messages generated by the server*/</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #000;"><br><br>&nbsp; &nbsp; b2b_init_request</span><span style="color: #660;">(</span><span style="color: #080;">"prepaid"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"sip:320@opensips.org:5070"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"sip:321@opensips.org:5070"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">uri</span><span style="color: #660;">==</span><span style="color: #000;">myself</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: outbound\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; &nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">uri</span><span style="color: #660;">==</span><span style="color: #000;">myself</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br><br>&nbsp; &nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">method</span><span style="color: #660;">==</span><span style="color: #080;">"REGISTER"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; save</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; &nbsp; </span><span style="color: #800;"># native SIP destinations are handled using our USRLOC DB</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">lookup</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"404"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"Not Found"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: usrloc applied\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br></span><span style="color: #660;">}</span><span style="color: #000;"><br><br><br>route</span><span style="color: #660;">[</span><span style="color: #066;">1</span><span style="color: #660;">]</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># send it out now; use stateful forwarding as it works reliably</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># even for UDP2TCP</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">t_relay</span><span style="color: #660;">())</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_reply_error</span><span style="color: #660;">();</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br></span><span style="color: #660;">}</span></pre>
to:
<pre><span style="color: #800;"># $Id: opensips-b2b.cfg $</span><span style="color: #000;"><br><br></span><span style="color: #800;"># Debugging mode:</span><span style="color: #000;"><br>debug</span><span style="color: #660;">=</span><span style="color: #066;">3</span><span style="color: #000;"><br>memlog</span><span style="color: #660;">=</span><span style="color: #000;"> </span><span style="color: #066;">6</span><span style="color: #000;"><br>fork</span><span style="color: #660;">=</span><span style="color: #000;">yes<br>auto_aliases</span><span style="color: #660;">=</span><span style="color: #008;">no</span><span style="color: #000;"><br>log_stderror</span><span style="color: #660;">=</span><span style="color: #000;">yes<br><br>disable_dns_blacklist</span><span style="color: #660;">=</span><span style="color: #000;">yes<br><br>listen</span><span style="color: #660;">=</span><span style="color: #066;">10.10.10.10</span><span style="color: #660;">:</span><span style="color: #066;">5060</span><span style="color: #000;"><br></span><span style="color: #800;"># alias=OSIPS_REALM</span><span style="color: #000;"><br></span><span style="color: #800;">#port=OSIPS_PORT</span><span style="color: #000;"><br><br><br>sip_warning</span><span style="color: #660;">=</span><span style="color: #066;">0</span><span style="color: #000;"><br></span><span style="color: #800;">#server_header="SRV_SIGNATURE"</span><span style="color: #000;"><br></span><span style="color: #800;">#user_agent_header="PP_USER_AGENT"</span><span style="color: #000;"><br><br></span><span style="color: #800;">#mhomed=yes</span><span style="color: #000;"><br></span><span style="color: #800;">#memlog=2</span><span style="color: #000;"><br>check_via</span><span style="color: #660;">=</span><span style="color: #008;">no</span><span style="color: #000;"><br>dns</span><span style="color: #660;">=</span><span style="color: #000;">off<br>rev_dns</span><span style="color: #660;">=</span><span style="color: #000;">off<br>children</span><span style="color: #660;">=</span><span style="color: #066;">8</span><span style="color: #000;"><br>disable_tcp</span><span style="color: #660;">=</span><span style="color: #000;">yes<br>log_facility</span><span style="color: #660;">=</span><span style="color: #000;">LOG_LOCAL7<br></span><span style="color: #800;"># for more info: opensips -h</span><span style="color: #000;"><br><br></span><span style="color: #800;"># ------------------ module loading ----------------------------------</span><span style="color: #000;"><br><br>mpath</span><span style="color: #660;">=</span><span style="color: #080;">"/usr/local/opensips/lib/modules/"</span><span style="color: #000;"><br><br>loadmodule </span><span style="color: #080;">"db_mysql.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"xlog.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"textops.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"maxfwd.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"rr.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"sl.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"tm.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"signaling.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"b2b_entities.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"b2b_logic.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"usrloc.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"registrar.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"mi_fifo.so"</span><span style="color: #000;"><br><br><br></span><span style="color: #800;"># ----------------- setting module-specific parameters ---------------</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"mi_fifo"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"fifo_name"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/tmp/opensips_fifo"</span><span style="color: #660;">)</span><span style="color: #000;"><br><br><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"usrloc"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"db_url"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"mysql://opensips:opensipsrw@localhost/opensips"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"usrloc"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"db_mode"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #066;">2</span><span style="color: #660;">)</span><span style="color: #000;"><br><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"tm"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"pass_provisional_replies"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #066;">1</span><span style="color: #660;">)</span><span style="color: #000;"><br><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_entities"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"server_address"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"sip:sa@10.10.10.10:5060"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_logic"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"script_scenario"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/home/anca/work/opensips/modules/b2b_logic/scenario_script.xml"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_logic"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"extern_scenario"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/home/anca/work/opensips/modules/b2b_logic/scenario_extern.xml"</span><span style="color: #660;">)</span><span style="color: #000;"><br><br>route </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">mf_process_maxfwd_header</span><span style="color: #660;">(</span><span style="color: #080;">"10"</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"483"</span><span style="color: #660;">,</span><span style="color: #080;">"Too Many Hops"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">msg</span><span style="color: #660;">:</span><span style="color: #000;">len </span><span style="color: #660;">&gt;=</span><span style="color: #000;"> </span><span style="color: #066;">2380</span><span style="color: #000;"> </span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"513"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"Message too big"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">method</span><span style="color: #660;">==</span><span style="color: #080;">"REGISTER"</span><span style="color: #660;">)</span><span style="color: #000;"><br>&nbsp; &nbsp; record_route</span><span style="color: #660;">();</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #800;"># subsequent messages withing a dialog should take the</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># path determined by record-routing</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">loose_route</span><span style="color: #660;">())</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: rr-enforced\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; &nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #660;">(</span><span style="color: #000;">is_method</span><span style="color: #660;">(</span><span style="color: #080;">"INVITE"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">$fU</span><span style="color: #660;">==</span><span style="color: #080;">"bob"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> &nbsp; </span><span style="color: #800;">/* only for Invite messages from bob*/</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #660;">!(</span><span style="color: #000;">src_ip </span><span style="color: #660;">==</span><span style="color: #000;"> </span><span style="color: #080;">"10.10.10.10"</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> src_port </span><span style="color: #660;">==</span><span style="color: #066;">5060</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #800;">/* skip Invite messages generated by the server*/</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #800;"># DO NOT call t_newtran() on this request -&gt; it will result in the transaction never being deleted</span><span style="color: #000;"><br>&nbsp; &nbsp; b2b_init_request</span><span style="color: #660;">(</span><span style="color: #080;">"prepaid"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"sip:320@opensips.org:5070"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"sip:321@opensips.org:5070"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">uri</span><span style="color: #660;">==</span><span style="color: #000;">myself</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: outbound\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; &nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">uri</span><span style="color: #660;">==</span><span style="color: #000;">myself</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br><br>&nbsp; &nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">method</span><span style="color: #660;">==</span><span style="color: #080;">"REGISTER"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; save</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; &nbsp; </span><span style="color: #800;"># native SIP destinations are handled using our USRLOC DB</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">lookup</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"404"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"Not Found"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: usrloc applied\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br></span><span style="color: #660;">}</span><span style="color: #000;"><br><br><br>route</span><span style="color: #660;">[</span><span style="color: #066;">1</span><span style="color: #660;">]</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># send it out now; use stateful forwarding as it works reliably</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># even for UDP2TCP</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">t_relay</span><span style="color: #660;">())</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_reply_error</span><span style="color: #660;">();</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br></span><span style="color: #660;">}</span></pre>
June 22, 2010, at 05:27 PM by anca_vamanu -
Changed line 4 from:
<pre><span style="color: #800;"># $Id: opensips-b2b.cfg $</span><span style="color: #000;"><br><br></span><span style="color: #800;"># Debugging mode:</span><span style="color: #000;"><br>debug</span><span style="color: #660;">=</span><span style="color: #066;">3</span><span style="color: #000;"><br>memlog</span><span style="color: #660;">=</span><span style="color: #000;"> </span><span style="color: #066;">6</span><span style="color: #000;"><br>fork</span><span style="color: #660;">=</span><span style="color: #000;">yes<br>auto_aliases</span><span style="color: #660;">=</span><span style="color: #008;">no</span><span style="color: #000;"><br>log_stderror</span><span style="color: #660;">=</span><span style="color: #000;">yes<br><br>disable_dns_blacklist</span><span style="color: #660;">=</span><span style="color: #000;">yes<br><br>listen</span><span style="color: #660;">=</span><span style="color: #066;">10.10.10.10</span><span style="color: #660;">:</span><span style="color: #066;">5060</span><span style="color: #000;"><br></span><span style="color: #800;"># alias=OSIPS_REALM</span><span style="color: #000;"><br></span><span style="color: #800;">#port=OSIPS_PORT</span><span style="color: #000;"><br><br><br>sip_warning</span><span style="color: #660;">=</span><span style="color: #066;">0</span><span style="color: #000;"><br></span><span style="color: #800;">#server_header="SRV_SIGNATURE"</span><span style="color: #000;"><br></span><span style="color: #800;">#user_agent_header="PP_USER_AGENT"</span><span style="color: #000;"><br><br></span><span style="color: #800;">#mhomed=yes</span><span style="color: #000;"><br></span><span style="color: #800;">#memlog=2</span><span style="color: #000;"><br>check_via</span><span style="color: #660;">=</span><span style="color: #008;">no</span><span style="color: #000;"><br>dns</span><span style="color: #660;">=</span><span style="color: #000;">off<br>rev_dns</span><span style="color: #660;">=</span><span style="color: #000;">off<br>children</span><span style="color: #660;">=</span><span style="color: #066;">8</span><span style="color: #000;"><br>disable_tcp</span><span style="color: #660;">=</span><span style="color: #000;">yes<br>log_facility</span><span style="color: #660;">=</span><span style="color: #000;">LOG_LOCAL7<br></span><span style="color: #800;"># for more info: opensips -h</span><span style="color: #000;"><br><br></span><span style="color: #800;"># ------------------ module loading ----------------------------------</span><span style="color: #000;"><br><br>mpath</span><span style="color: #660;">=</span><span style="color: #080;">"/usr/local/opensips/lib/modules/"</span><span style="color: #000;"><br><br>loadmodule </span><span style="color: #080;">"db_mysql.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"xlog.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"textops.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"maxfwd.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"rr.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"sl.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"tm.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"signaling.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"b2b_entities.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"b2b_logic.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"usrloc.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"registrar.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"mi_fifo.so"</span><span style="color: #000;"><br><br><br></span><span style="color: #800;"># ----------------- setting module-specific parameters ---------------</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"mi_fifo"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"fifo_name"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/tmp/opensips_fifo"</span><span style="color: #660;">)</span><span style="color: #000;"><br><br><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"usrloc"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"db_url"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"mysql://opensips:opensipsrw@localhost/opensips"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"usrloc"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"db_mode"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #066;">2</span><span style="color: #660;">)</span><span style="color: #000;"><br><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"tm"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"pass_provisional_replies"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #066;">1</span><span style="color: #660;">)</span><span style="color: #000;"><br><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_entities"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"server_address"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"sip:sa@10.10.10.10:5060"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_logic"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"script_scenario"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/home/anca/work/opensips/modules/b2b_logic/scenario_script.xml"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_logic"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"extern_scenario"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/home/anca/work/opensips/modules/b2b_logic/scenario_extern.xml"</span><span style="color: #660;">)</span><span style="color: #000;"><br><br>route </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">mf_process_maxfwd_header</span><span style="color: #660;">(</span><span style="color: #080;">"10"</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"483"</span><span style="color: #660;">,</span><span style="color: #080;">"Too Many Hops"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">msg</span><span style="color: #660;">:</span><span style="color: #000;">len </span><span style="color: #660;">&gt;=</span><span style="color: #000;"> </span><span style="color: #066;">2380</span><span style="color: #000;"> </span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"513"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"Message too big"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">method</span><span style="color: #660;">==</span><span style="color: #080;">"REGISTER"</span><span style="color: #660;">)</span><span style="color: #000;"><br>&nbsp; &nbsp; record_route</span><span style="color: #660;">();</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #800;"># subsequent messages withing a dialog should take the</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># path determined by record-routing</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">loose_route</span><span style="color: #660;">())</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: rr-enforced\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; &nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #660;">(</span><span style="color: #000;">is_method</span><span style="color: #660;">(</span><span style="color: #080;">"INVITE"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">$fU</span><span style="color: #660;">==</span><span style="color: #080;">"bob"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> &nbsp; &nbsp; </span><span style="color: #800;">/* only for Invite messages from bob*/</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #660;">!(</span><span style="color: #000;">src_ip </span><span style="color: #660;">==</span><span style="color: #000;"> </span><span style="color: #066;">"10.10.10.10"</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> src_port </span><span style="color: #660;">==</span><span style="color: #066;">5060</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #800;">/* skip Invite messages generated by the server*/</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #000;"><br><br>&nbsp; &nbsp; b2b_init_request</span><span style="color: #660;">(</span><span style="color: #080;">"prepaid"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"sip:320@opensips.org:5070"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"sip:321@opensips.org:5070"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">uri</span><span style="color: #660;">==</span><span style="color: #000;">myself</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: outbound\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; &nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">uri</span><span style="color: #660;">==</span><span style="color: #000;">myself</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br><br>&nbsp; &nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">method</span><span style="color: #660;">==</span><span style="color: #080;">"REGISTER"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; save</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; &nbsp; </span><span style="color: #800;"># native SIP destinations are handled using our USRLOC DB</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">lookup</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"404"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"Not Found"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: usrloc applied\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br></span><span style="color: #660;">}</span><span style="color: #000;"><br><br><br>route</span><span style="color: #660;">[</span><span style="color: #066;">1</span><span style="color: #660;">]</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># send it out now; use stateful forwarding as it works reliably</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># even for UDP2TCP</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">t_relay</span><span style="color: #660;">())</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_reply_error</span><span style="color: #660;">();</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br></span><span style="color: #660;">}</span></pre>
to:
<pre><span style="color: #800;"># $Id: opensips-b2b.cfg $</span><span style="color: #000;"><br><br></span><span style="color: #800;"># Debugging mode:</span><span style="color: #000;"><br>debug</span><span style="color: #660;">=</span><span style="color: #066;">3</span><span style="color: #000;"><br>memlog</span><span style="color: #660;">=</span><span style="color: #000;"> </span><span style="color: #066;">6</span><span style="color: #000;"><br>fork</span><span style="color: #660;">=</span><span style="color: #000;">yes<br>auto_aliases</span><span style="color: #660;">=</span><span style="color: #008;">no</span><span style="color: #000;"><br>log_stderror</span><span style="color: #660;">=</span><span style="color: #000;">yes<br><br>disable_dns_blacklist</span><span style="color: #660;">=</span><span style="color: #000;">yes<br><br>listen</span><span style="color: #660;">=</span><span style="color: #066;">10.10.10.10</span><span style="color: #660;">:</span><span style="color: #066;">5060</span><span style="color: #000;"><br></span><span style="color: #800;"># alias=OSIPS_REALM</span><span style="color: #000;"><br></span><span style="color: #800;">#port=OSIPS_PORT</span><span style="color: #000;"><br><br><br>sip_warning</span><span style="color: #660;">=</span><span style="color: #066;">0</span><span style="color: #000;"><br></span><span style="color: #800;">#server_header="SRV_SIGNATURE"</span><span style="color: #000;"><br></span><span style="color: #800;">#user_agent_header="PP_USER_AGENT"</span><span style="color: #000;"><br><br></span><span style="color: #800;">#mhomed=yes</span><span style="color: #000;"><br></span><span style="color: #800;">#memlog=2</span><span style="color: #000;"><br>check_via</span><span style="color: #660;">=</span><span style="color: #008;">no</span><span style="color: #000;"><br>dns</span><span style="color: #660;">=</span><span style="color: #000;">off<br>rev_dns</span><span style="color: #660;">=</span><span style="color: #000;">off<br>children</span><span style="color: #660;">=</span><span style="color: #066;">8</span><span style="color: #000;"><br>disable_tcp</span><span style="color: #660;">=</span><span style="color: #000;">yes<br>log_facility</span><span style="color: #660;">=</span><span style="color: #000;">LOG_LOCAL7<br></span><span style="color: #800;"># for more info: opensips -h</span><span style="color: #000;"><br><br></span><span style="color: #800;"># ------------------ module loading ----------------------------------</span><span style="color: #000;"><br><br>mpath</span><span style="color: #660;">=</span><span style="color: #080;">"/usr/local/opensips/lib/modules/"</span><span style="color: #000;"><br><br>loadmodule </span><span style="color: #080;">"db_mysql.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"xlog.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"textops.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"maxfwd.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"rr.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"sl.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"tm.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"signaling.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"b2b_entities.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"b2b_logic.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"usrloc.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"registrar.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"mi_fifo.so"</span><span style="color: #000;"><br><br><br></span><span style="color: #800;"># ----------------- setting module-specific parameters ---------------</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"mi_fifo"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"fifo_name"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/tmp/opensips_fifo"</span><span style="color: #660;">)</span><span style="color: #000;"><br><br><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"usrloc"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"db_url"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"mysql://opensips:opensipsrw@localhost/opensips"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"usrloc"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"db_mode"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #066;">2</span><span style="color: #660;">)</span><span style="color: #000;"><br><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"tm"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"pass_provisional_replies"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #066;">1</span><span style="color: #660;">)</span><span style="color: #000;"><br><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_entities"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"server_address"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"sip:sa@10.10.10.10:5060"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_logic"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"script_scenario"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/home/anca/work/opensips/modules/b2b_logic/scenario_script.xml"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_logic"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"extern_scenario"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/home/anca/work/opensips/modules/b2b_logic/scenario_extern.xml"</span><span style="color: #660;">)</span><span style="color: #000;"><br><br>route </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">mf_process_maxfwd_header</span><span style="color: #660;">(</span><span style="color: #080;">"10"</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"483"</span><span style="color: #660;">,</span><span style="color: #080;">"Too Many Hops"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">msg</span><span style="color: #660;">:</span><span style="color: #000;">len </span><span style="color: #660;">&gt;=</span><span style="color: #000;"> </span><span style="color: #066;">2380</span><span style="color: #000;"> </span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"513"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"Message too big"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">method</span><span style="color: #660;">==</span><span style="color: #080;">"REGISTER"</span><span style="color: #660;">)</span><span style="color: #000;"><br>&nbsp; &nbsp; record_route</span><span style="color: #660;">();</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #800;"># subsequent messages withing a dialog should take the</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># path determined by record-routing</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">loose_route</span><span style="color: #660;">())</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: rr-enforced\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; &nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #660;">(</span><span style="color: #000;">is_method</span><span style="color: #660;">(</span><span style="color: #080;">"INVITE"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">$fU</span><span style="color: #660;">==</span><span style="color: #080;">"bob"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> &nbsp; </span><span style="color: #800;">/* only for Invite messages from bob*/</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #660;">!(</span><span style="color: #000;">src_ip </span><span style="color: #660;">==</span><span style="color: #000;"> </span><span style="color: #066;">"10.10.10.10"</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> src_port </span><span style="color: #660;">==</span><span style="color: #066;">5060</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #800;">/* skip Invite messages generated by the server*/</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #000;"><br><br>&nbsp; &nbsp; b2b_init_request</span><span style="color: #660;">(</span><span style="color: #080;">"prepaid"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"sip:320@opensips.org:5070"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"sip:321@opensips.org:5070"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">uri</span><span style="color: #660;">==</span><span style="color: #000;">myself</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: outbound\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; &nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">uri</span><span style="color: #660;">==</span><span style="color: #000;">myself</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br><br>&nbsp; &nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">method</span><span style="color: #660;">==</span><span style="color: #080;">"REGISTER"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; save</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; &nbsp; </span><span style="color: #800;"># native SIP destinations are handled using our USRLOC DB</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">lookup</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"404"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"Not Found"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: usrloc applied\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br></span><span style="color: #660;">}</span><span style="color: #000;"><br><br><br>route</span><span style="color: #660;">[</span><span style="color: #066;">1</span><span style="color: #660;">]</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># send it out now; use stateful forwarding as it works reliably</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># even for UDP2TCP</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">t_relay</span><span style="color: #660;">())</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_reply_error</span><span style="color: #660;">();</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br></span><span style="color: #660;">}</span></pre>
June 22, 2010, at 05:26 PM by anca_vamanu -
Changed line 4 from:
<pre><span style="color: #800;"># $Id: opensips-b2b.cfg $</span><span style="color: #000;"><br><br></span><span style="color: #800;"># Debugging mode:</span><span style="color: #000;"><br>debug</span><span style="color: #660;">=</span><span style="color: #066;">3</span><span style="color: #000;"><br>memlog</span><span style="color: #660;">=</span><span style="color: #000;"> </span><span style="color: #066;">6</span><span style="color: #000;"><br>fork</span><span style="color: #660;">=</span><span style="color: #000;">yes<br>auto_aliases</span><span style="color: #660;">=</span><span style="color: #008;">no</span><span style="color: #000;"><br>log_stderror</span><span style="color: #660;">=</span><span style="color: #000;">yes<br><br>disable_dns_blacklist</span><span style="color: #660;">=</span><span style="color: #000;">yes<br><br>listen</span><span style="color: #660;">=</span><span style="color: #066;">10.10.10.10</span><span style="color: #660;">:</span><span style="color: #066;">5060</span><span style="color: #000;"><br></span><span style="color: #800;"># alias=OSIPS_REALM</span><span style="color: #000;"><br></span><span style="color: #800;">#port=OSIPS_PORT</span><span style="color: #000;"><br><br><br>sip_warning</span><span style="color: #660;">=</span><span style="color: #066;">0</span><span style="color: #000;"><br></span><span style="color: #800;">#server_header="SRV_SIGNATURE"</span><span style="color: #000;"><br></span><span style="color: #800;">#user_agent_header="PP_USER_AGENT"</span><span style="color: #000;"><br><br></span><span style="color: #800;">#mhomed=yes</span><span style="color: #000;"><br></span><span style="color: #800;">#memlog=2</span><span style="color: #000;"><br>check_via</span><span style="color: #660;">=</span><span style="color: #008;">no</span><span style="color: #000;"><br>dns</span><span style="color: #660;">=</span><span style="color: #000;">off<br>rev_dns</span><span style="color: #660;">=</span><span style="color: #000;">off<br>children</span><span style="color: #660;">=</span><span style="color: #066;">8</span><span style="color: #000;"><br>disable_tcp</span><span style="color: #660;">=</span><span style="color: #000;">yes<br>log_facility</span><span style="color: #660;">=</span><span style="color: #000;">LOG_LOCAL7<br></span><span style="color: #800;"># for more info: opensips -h</span><span style="color: #000;"><br><br></span><span style="color: #800;"># ------------------ module loading ----------------------------------</span><span style="color: #000;"><br><br>mpath</span><span style="color: #660;">=</span><span style="color: #080;">"/usr/local/opensips/lib/modules/"</span><span style="color: #000;"><br><br>loadmodule </span><span style="color: #080;">"db_mysql.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"xlog.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"textops.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"maxfwd.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"rr.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"sl.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"tm.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"signaling.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"b2b_entities.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"b2b_logic.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"usrloc.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"registrar.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"mi_fifo.so"</span><span style="color: #000;"><br><br><br></span><span style="color: #800;"># ----------------- setting module-specific parameters ---------------</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"mi_fifo"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"fifo_name"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/tmp/opensips_fifo"</span><span style="color: #660;">)</span><span style="color: #000;"><br><br><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"usrloc"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"db_url"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"mysql://opensips:opensipsrw@localhost/opensips"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"usrloc"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"db_mode"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #066;">2</span><span style="color: #660;">)</span><span style="color: #000;"><br><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"tm"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"pass_provisional_replies"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #066;">1</span><span style="color: #660;">)</span><span style="color: #000;"><br><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_entities"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"server_address"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"sip:sa@10.10.10.10:5060"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_logic"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"script_scenario"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/home/anca/work/opensips/modules/b2b_logic/scenario_script.xml"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_logic"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"extern_scenario"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/home/anca/work/opensips/modules/b2b_logic/scenario_extern.xml"</span><span style="color: #660;">)</span><span style="color: #000;"><br><br>route </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">mf_process_maxfwd_header</span><span style="color: #660;">(</span><span style="color: #080;">"10"</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"483"</span><span style="color: #660;">,</span><span style="color: #080;">"Too Many Hops"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">msg</span><span style="color: #660;">:</span><span style="color: #000;">len </span><span style="color: #660;">&gt;=</span><span style="color: #000;"> </span><span style="color: #066;">2380</span><span style="color: #000;"> </span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"513"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"Message too big"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">method</span><span style="color: #660;">==</span><span style="color: #080;">"REGISTER"</span><span style="color: #660;">)</span><span style="color: #000;"><br>&nbsp; &nbsp; record_route</span><span style="color: #660;">();</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #800;"># subsequent messages withing a dialog should take the</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># path determined by record-routing</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">loose_route</span><span style="color: #660;">())</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: rr-enforced\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; &nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #660;">(</span><span style="color: #000;">is_method</span><span style="color: #660;">(</span><span style="color: #080;">"INVITE"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">$fU</span><span style="color: #660;">==</span><span style="color: #080;">"bob"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> &nbsp; &nbsp; </span><span style="color: #800;">/* only for Invite messages from bob*/</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #660;">!(</span><span style="color: #000;">src_ip </span><span style="color: #660;">==</span><span style="color: #000;"> </span><span style="color: #066;">"10.10.10.10"</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> src_port </span><span style="color: #660;">==</span><span style="color: #066;">5060</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #800;">/* skip Invite messages generated by the server*/</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;"> t_newtran</span><span style="color: #660;">())</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; sl_reply_error</span><span style="color: #660;">();</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; &nbsp; b2b_init_request</span><span style="color: #660;">(</span><span style="color: #080;">"prepaid"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"sip:320@opensips.org:5070"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"sip:321@opensips.org:5070"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">uri</span><span style="color: #660;">==</span><span style="color: #000;">myself</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: outbound\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; &nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">uri</span><span style="color: #660;">==</span><span style="color: #000;">myself</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br><br>&nbsp; &nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">method</span><span style="color: #660;">==</span><span style="color: #080;">"REGISTER"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; save</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; &nbsp; </span><span style="color: #800;"># native SIP destinations are handled using our USRLOC DB</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">lookup</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"404"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"Not Found"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: usrloc applied\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br></span><span style="color: #660;">}</span><span style="color: #000;"><br><br><br>route</span><span style="color: #660;">[</span><span style="color: #066;">1</span><span style="color: #660;">]</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># send it out now; use stateful forwarding as it works reliably</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># even for UDP2TCP</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">t_relay</span><span style="color: #660;">())</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_reply_error</span><span style="color: #660;">();</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br></span><span style="color: #660;">}</span></pre>
to:
<pre><span style="color: #800;"># $Id: opensips-b2b.cfg $</span><span style="color: #000;"><br><br></span><span style="color: #800;"># Debugging mode:</span><span style="color: #000;"><br>debug</span><span style="color: #660;">=</span><span style="color: #066;">3</span><span style="color: #000;"><br>memlog</span><span style="color: #660;">=</span><span style="color: #000;"> </span><span style="color: #066;">6</span><span style="color: #000;"><br>fork</span><span style="color: #660;">=</span><span style="color: #000;">yes<br>auto_aliases</span><span style="color: #660;">=</span><span style="color: #008;">no</span><span style="color: #000;"><br>log_stderror</span><span style="color: #660;">=</span><span style="color: #000;">yes<br><br>disable_dns_blacklist</span><span style="color: #660;">=</span><span style="color: #000;">yes<br><br>listen</span><span style="color: #660;">=</span><span style="color: #066;">10.10.10.10</span><span style="color: #660;">:</span><span style="color: #066;">5060</span><span style="color: #000;"><br></span><span style="color: #800;"># alias=OSIPS_REALM</span><span style="color: #000;"><br></span><span style="color: #800;">#port=OSIPS_PORT</span><span style="color: #000;"><br><br><br>sip_warning</span><span style="color: #660;">=</span><span style="color: #066;">0</span><span style="color: #000;"><br></span><span style="color: #800;">#server_header="SRV_SIGNATURE"</span><span style="color: #000;"><br></span><span style="color: #800;">#user_agent_header="PP_USER_AGENT"</span><span style="color: #000;"><br><br></span><span style="color: #800;">#mhomed=yes</span><span style="color: #000;"><br></span><span style="color: #800;">#memlog=2</span><span style="color: #000;"><br>check_via</span><span style="color: #660;">=</span><span style="color: #008;">no</span><span style="color: #000;"><br>dns</span><span style="color: #660;">=</span><span style="color: #000;">off<br>rev_dns</span><span style="color: #660;">=</span><span style="color: #000;">off<br>children</span><span style="color: #660;">=</span><span style="color: #066;">8</span><span style="color: #000;"><br>disable_tcp</span><span style="color: #660;">=</span><span style="color: #000;">yes<br>log_facility</span><span style="color: #660;">=</span><span style="color: #000;">LOG_LOCAL7<br></span><span style="color: #800;"># for more info: opensips -h</span><span style="color: #000;"><br><br></span><span style="color: #800;"># ------------------ module loading ----------------------------------</span><span style="color: #000;"><br><br>mpath</span><span style="color: #660;">=</span><span style="color: #080;">"/usr/local/opensips/lib/modules/"</span><span style="color: #000;"><br><br>loadmodule </span><span style="color: #080;">"db_mysql.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"xlog.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"textops.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"maxfwd.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"rr.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"sl.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"tm.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"signaling.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"b2b_entities.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"b2b_logic.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"usrloc.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"registrar.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"mi_fifo.so"</span><span style="color: #000;"><br><br><br></span><span style="color: #800;"># ----------------- setting module-specific parameters ---------------</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"mi_fifo"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"fifo_name"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/tmp/opensips_fifo"</span><span style="color: #660;">)</span><span style="color: #000;"><br><br><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"usrloc"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"db_url"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"mysql://opensips:opensipsrw@localhost/opensips"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"usrloc"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"db_mode"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #066;">2</span><span style="color: #660;">)</span><span style="color: #000;"><br><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"tm"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"pass_provisional_replies"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #066;">1</span><span style="color: #660;">)</span><span style="color: #000;"><br><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_entities"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"server_address"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"sip:sa@10.10.10.10:5060"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_logic"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"script_scenario"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/home/anca/work/opensips/modules/b2b_logic/scenario_script.xml"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_logic"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"extern_scenario"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/home/anca/work/opensips/modules/b2b_logic/scenario_extern.xml"</span><span style="color: #660;">)</span><span style="color: #000;"><br><br>route </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">mf_process_maxfwd_header</span><span style="color: #660;">(</span><span style="color: #080;">"10"</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"483"</span><span style="color: #660;">,</span><span style="color: #080;">"Too Many Hops"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">msg</span><span style="color: #660;">:</span><span style="color: #000;">len </span><span style="color: #660;">&gt;=</span><span style="color: #000;"> </span><span style="color: #066;">2380</span><span style="color: #000;"> </span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"513"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"Message too big"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">method</span><span style="color: #660;">==</span><span style="color: #080;">"REGISTER"</span><span style="color: #660;">)</span><span style="color: #000;"><br>&nbsp; &nbsp; record_route</span><span style="color: #660;">();</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #800;"># subsequent messages withing a dialog should take the</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># path determined by record-routing</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">loose_route</span><span style="color: #660;">())</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: rr-enforced\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; &nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #660;">(</span><span style="color: #000;">is_method</span><span style="color: #660;">(</span><span style="color: #080;">"INVITE"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">$fU</span><span style="color: #660;">==</span><span style="color: #080;">"bob"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> &nbsp; &nbsp; </span><span style="color: #800;">/* only for Invite messages from bob*/</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #660;">!(</span><span style="color: #000;">src_ip </span><span style="color: #660;">==</span><span style="color: #000;"> </span><span style="color: #066;">"10.10.10.10"</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> src_port </span><span style="color: #660;">==</span><span style="color: #066;">5060</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #800;">/* skip Invite messages generated by the server*/</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #000;"><br><br>&nbsp; &nbsp; b2b_init_request</span><span style="color: #660;">(</span><span style="color: #080;">"prepaid"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"sip:320@opensips.org:5070"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"sip:321@opensips.org:5070"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">uri</span><span style="color: #660;">==</span><span style="color: #000;">myself</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: outbound\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; &nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">uri</span><span style="color: #660;">==</span><span style="color: #000;">myself</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br><br>&nbsp; &nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">method</span><span style="color: #660;">==</span><span style="color: #080;">"REGISTER"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; save</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; &nbsp; </span><span style="color: #800;"># native SIP destinations are handled using our USRLOC DB</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">lookup</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"404"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"Not Found"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: usrloc applied\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br></span><span style="color: #660;">}</span><span style="color: #000;"><br><br><br>route</span><span style="color: #660;">[</span><span style="color: #066;">1</span><span style="color: #660;">]</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># send it out now; use stateful forwarding as it works reliably</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># even for UDP2TCP</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">t_relay</span><span style="color: #660;">())</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_reply_error</span><span style="color: #660;">();</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br></span><span style="color: #660;">}</span></pre>
January 11, 2010, at 04:37 PM by anca_vamanu -
Changed line 4 from:
<pre><span style="color: #800;"># $Id: opensips-b2b.cfg $</span><span style="color: #000;"><br><br></span><span style="color: #800;"># Debugging mode:</span><span style="color: #000;"><br>debug</span><span style="color: #660;">=</span><span style="color: #066;">3</span><span style="color: #000;"><br>memlog</span><span style="color: #660;">=</span><span style="color: #000;"> </span><span style="color: #066;">6</span><span style="color: #000;"><br>fork</span><span style="color: #660;">=</span><span style="color: #000;">yes<br>auto_aliases</span><span style="color: #660;">=</span><span style="color: #008;">no</span><span style="color: #000;"><br>log_stderror</span><span style="color: #660;">=</span><span style="color: #000;">yes<br><br>disable_dns_blacklist</span><span style="color: #660;">=</span><span style="color: #000;">yes<br><br>listen</span><span style="color: #660;">=</span><span style="color: #066;">10.10.10.10</span><span style="color: #660;">:</span><span style="color: #066;">5060</span><span style="color: #000;"><br></span><span style="color: #800;"># alias=OSIPS_REALM</span><span style="color: #000;"><br></span><span style="color: #800;">#port=OSIPS_PORT</span><span style="color: #000;"><br><br><br>sip_warning</span><span style="color: #660;">=</span><span style="color: #066;">0</span><span style="color: #000;"><br></span><span style="color: #800;">#server_header="SRV_SIGNATURE"</span><span style="color: #000;"><br></span><span style="color: #800;">#user_agent_header="PP_USER_AGENT"</span><span style="color: #000;"><br><br></span><span style="color: #800;">#mhomed=yes</span><span style="color: #000;"><br></span><span style="color: #800;">#memlog=2</span><span style="color: #000;"><br>check_via</span><span style="color: #660;">=</span><span style="color: #008;">no</span><span style="color: #000;"><br>dns</span><span style="color: #660;">=</span><span style="color: #000;">off<br>rev_dns</span><span style="color: #660;">=</span><span style="color: #000;">off<br>children</span><span style="color: #660;">=</span><span style="color: #066;">8</span><span style="color: #000;"><br>disable_tcp</span><span style="color: #660;">=</span><span style="color: #000;">yes<br>log_facility</span><span style="color: #660;">=</span><span style="color: #000;">LOG_LOCAL7<br></span><span style="color: #800;"># for more info: opensips -h</span><span style="color: #000;"><br><br></span><span style="color: #800;"># ------------------ module loading ----------------------------------</span><span style="color: #000;"><br><br>mpath</span><span style="color: #660;">=</span><span style="color: #080;">"/usr/local/opensips/lib/modules/"</span><span style="color: #000;"><br><br>loadmodule </span><span style="color: #080;">"db_mysql.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"xlog.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"textops.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"maxfwd.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"rr.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"sl.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"tm.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"signaling.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"b2b_entities.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"b2b_logic.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"usrloc.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"registrar.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"mi_fifo.so"</span><span style="color: #000;"><br><br><br></span><span style="color: #800;"># ----------------- setting module-specific parameters ---------------</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"mi_fifo"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"fifo_name"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/tmp/opensips_fifo"</span><span style="color: #660;">)</span><span style="color: #000;"><br><br><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"usrloc"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"db_url"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"mysql://opensips:opensipsrw@localhost/opensips"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"usrloc"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"db_mode"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #066;">2</span><span style="color: #660;">)</span><span style="color: #000;"><br><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"tm"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"pass_provisional_replies"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #066;">1</span><span style="color: #660;">)</span><span style="color: #000;"><br><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_entities"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"server_address"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"sip:sa@10.10.10.10:5060"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_logic"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"script_scenario"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/home/anca/work/opensips/modules/b2b_logic/scenario_script.xml"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_logic"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"extern_scenario"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/home/anca/work/opensips/modules/b2b_logic/scenario_extern.xml"</span><span style="color: #660;">)</span><span style="color: #000;"><br><br>route </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">mf_process_maxfwd_header</span><span style="color: #660;">(</span><span style="color: #080;">"10"</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"483"</span><span style="color: #660;">,</span><span style="color: #080;">"Too Many Hops"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">msg</span><span style="color: #660;">:</span><span style="color: #000;">len </span><span style="color: #660;">&gt;=</span><span style="color: #000;"> </span><span style="color: #066;">2380</span><span style="color: #000;"> </span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"513"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"Message too big"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">method</span><span style="color: #660;">==</span><span style="color: #080;">"REGISTER"</span><span style="color: #660;">)</span><span style="color: #000;"><br>&nbsp; &nbsp; record_route</span><span style="color: #660;">();</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #800;"># subsequent messages withing a dialog should take the</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># path determined by record-routing</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">loose_route</span><span style="color: #660;">())</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: rr-enforced\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; &nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #660;">(</span><span style="color: #000;">is_method</span><span style="color: #660;">(</span><span style="color: #080;">"INVITE"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">$fU</span><span style="color: #660;">==</span><span style="color: #080;">"bob"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> &nbsp; &nbsp; </span><span style="color: #800;">/* only for Invite messages from bob*/</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #660;">!(</span><span style="color: #000;">src_ip </span><span style="color: #660;">==</span><span style="color: #000;"> </span><span style="color: #066;">10.10.10.10</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> src_port </span><span style="color: #660;">==</span><span style="color: #066;">5060</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #800;">/* skip Invite messages generated by the server*/</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;"> t_newtran</span><span style="color: #660;">())</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; sl_reply_error</span><span style="color: #660;">();</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; &nbsp; b2b_init_request</span><span style="color: #660;">(</span><span style="color: #080;">"prepaid"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"sip:320@opensips.org:5070"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"sip:321@opensips.org:5070"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">uri</span><span style="color: #660;">==</span><span style="color: #000;">myself</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: outbound\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; &nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">uri</span><span style="color: #660;">==</span><span style="color: #000;">myself</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br><br>&nbsp; &nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">method</span><span style="color: #660;">==</span><span style="color: #080;">"REGISTER"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; save</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; &nbsp; </span><span style="color: #800;"># native SIP destinations are handled using our USRLOC DB</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">lookup</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"404"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"Not Found"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: usrloc applied\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br></span><span style="color: #660;">}</span><span style="color: #000;"><br><br><br>route</span><span style="color: #660;">[</span><span style="color: #066;">1</span><span style="color: #660;">]</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># send it out now; use stateful forwarding as it works reliably</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># even for UDP2TCP</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">t_relay</span><span style="color: #660;">())</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_reply_error</span><span style="color: #660;">();</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br></span><span style="color: #660;">}</span></pre>
to:
<pre><span style="color: #800;"># $Id: opensips-b2b.cfg $</span><span style="color: #000;"><br><br></span><span style="color: #800;"># Debugging mode:</span><span style="color: #000;"><br>debug</span><span style="color: #660;">=</span><span style="color: #066;">3</span><span style="color: #000;"><br>memlog</span><span style="color: #660;">=</span><span style="color: #000;"> </span><span style="color: #066;">6</span><span style="color: #000;"><br>fork</span><span style="color: #660;">=</span><span style="color: #000;">yes<br>auto_aliases</span><span style="color: #660;">=</span><span style="color: #008;">no</span><span style="color: #000;"><br>log_stderror</span><span style="color: #660;">=</span><span style="color: #000;">yes<br><br>disable_dns_blacklist</span><span style="color: #660;">=</span><span style="color: #000;">yes<br><br>listen</span><span style="color: #660;">=</span><span style="color: #066;">10.10.10.10</span><span style="color: #660;">:</span><span style="color: #066;">5060</span><span style="color: #000;"><br></span><span style="color: #800;"># alias=OSIPS_REALM</span><span style="color: #000;"><br></span><span style="color: #800;">#port=OSIPS_PORT</span><span style="color: #000;"><br><br><br>sip_warning</span><span style="color: #660;">=</span><span style="color: #066;">0</span><span style="color: #000;"><br></span><span style="color: #800;">#server_header="SRV_SIGNATURE"</span><span style="color: #000;"><br></span><span style="color: #800;">#user_agent_header="PP_USER_AGENT"</span><span style="color: #000;"><br><br></span><span style="color: #800;">#mhomed=yes</span><span style="color: #000;"><br></span><span style="color: #800;">#memlog=2</span><span style="color: #000;"><br>check_via</span><span style="color: #660;">=</span><span style="color: #008;">no</span><span style="color: #000;"><br>dns</span><span style="color: #660;">=</span><span style="color: #000;">off<br>rev_dns</span><span style="color: #660;">=</span><span style="color: #000;">off<br>children</span><span style="color: #660;">=</span><span style="color: #066;">8</span><span style="color: #000;"><br>disable_tcp</span><span style="color: #660;">=</span><span style="color: #000;">yes<br>log_facility</span><span style="color: #660;">=</span><span style="color: #000;">LOG_LOCAL7<br></span><span style="color: #800;"># for more info: opensips -h</span><span style="color: #000;"><br><br></span><span style="color: #800;"># ------------------ module loading ----------------------------------</span><span style="color: #000;"><br><br>mpath</span><span style="color: #660;">=</span><span style="color: #080;">"/usr/local/opensips/lib/modules/"</span><span style="color: #000;"><br><br>loadmodule </span><span style="color: #080;">"db_mysql.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"xlog.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"textops.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"maxfwd.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"rr.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"sl.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"tm.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"signaling.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"b2b_entities.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"b2b_logic.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"usrloc.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"registrar.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"mi_fifo.so"</span><span style="color: #000;"><br><br><br></span><span style="color: #800;"># ----------------- setting module-specific parameters ---------------</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"mi_fifo"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"fifo_name"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/tmp/opensips_fifo"</span><span style="color: #660;">)</span><span style="color: #000;"><br><br><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"usrloc"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"db_url"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"mysql://opensips:opensipsrw@localhost/opensips"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"usrloc"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"db_mode"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #066;">2</span><span style="color: #660;">)</span><span style="color: #000;"><br><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"tm"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"pass_provisional_replies"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #066;">1</span><span style="color: #660;">)</span><span style="color: #000;"><br><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_entities"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"server_address"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"sip:sa@10.10.10.10:5060"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_logic"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"script_scenario"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/home/anca/work/opensips/modules/b2b_logic/scenario_script.xml"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_logic"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"extern_scenario"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/home/anca/work/opensips/modules/b2b_logic/scenario_extern.xml"</span><span style="color: #660;">)</span><span style="color: #000;"><br><br>route </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">mf_process_maxfwd_header</span><span style="color: #660;">(</span><span style="color: #080;">"10"</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"483"</span><span style="color: #660;">,</span><span style="color: #080;">"Too Many Hops"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">msg</span><span style="color: #660;">:</span><span style="color: #000;">len </span><span style="color: #660;">&gt;=</span><span style="color: #000;"> </span><span style="color: #066;">2380</span><span style="color: #000;"> </span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"513"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"Message too big"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">method</span><span style="color: #660;">==</span><span style="color: #080;">"REGISTER"</span><span style="color: #660;">)</span><span style="color: #000;"><br>&nbsp; &nbsp; record_route</span><span style="color: #660;">();</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #800;"># subsequent messages withing a dialog should take the</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># path determined by record-routing</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">loose_route</span><span style="color: #660;">())</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: rr-enforced\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; &nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #660;">(</span><span style="color: #000;">is_method</span><span style="color: #660;">(</span><span style="color: #080;">"INVITE"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">$fU</span><span style="color: #660;">==</span><span style="color: #080;">"bob"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> &nbsp; &nbsp; </span><span style="color: #800;">/* only for Invite messages from bob*/</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #660;">!(</span><span style="color: #000;">src_ip </span><span style="color: #660;">==</span><span style="color: #000;"> </span><span style="color: #066;">"10.10.10.10"</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> src_port </span><span style="color: #660;">==</span><span style="color: #066;">5060</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #800;">/* skip Invite messages generated by the server*/</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;"> t_newtran</span><span style="color: #660;">())</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; sl_reply_error</span><span style="color: #660;">();</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; &nbsp; b2b_init_request</span><span style="color: #660;">(</span><span style="color: #080;">"prepaid"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"sip:320@opensips.org:5070"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"sip:321@opensips.org:5070"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">uri</span><span style="color: #660;">==</span><span style="color: #000;">myself</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: outbound\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; &nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">uri</span><span style="color: #660;">==</span><span style="color: #000;">myself</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br><br>&nbsp; &nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">method</span><span style="color: #660;">==</span><span style="color: #080;">"REGISTER"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; save</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; &nbsp; </span><span style="color: #800;"># native SIP destinations are handled using our USRLOC DB</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">lookup</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"404"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"Not Found"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: usrloc applied\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br></span><span style="color: #660;">}</span><span style="color: #000;"><br><br><br>route</span><span style="color: #660;">[</span><span style="color: #066;">1</span><span style="color: #660;">]</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># send it out now; use stateful forwarding as it works reliably</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># even for UDP2TCP</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">t_relay</span><span style="color: #660;">())</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_reply_error</span><span style="color: #660;">();</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br></span><span style="color: #660;">}</span></pre>
July 23, 2009, at 01:47 PM by bogdan -
Changed line 4 from:
<pre><span style="color: #800;"># $Id: opensips-b2b.cfg $</span><span style="color: #000;"><br><br></span><span style="color: #800;"># Debugging mode:</span><span style="color: #000;"><br>debug</span><span style="color: #660;">=</span><span style="color: #066;">3</span><span style="color: #000;"><br>memlog</span><span style="color: #660;">=</span><span style="color: #000;"> </span><span style="color: #066;">6</span><span style="color: #000;"><br>fork</span><span style="color: #660;">=</span><span style="color: #000;">yes<br>auto_aliases</span><span style="color: #660;">=</span><span style="color: #008;">no</span><span style="color: #000;"><br>log_stderror</span><span style="color: #660;">=</span><span style="color: #000;">yes<br><br>disable_dns_blacklist</span><span style="color: #660;">=</span><span style="color: #000;">yes<br><br>listen</span><span style="color: #660;">=</span><span style="color: #066;">10.10.10.10</span><span style="color: #660;">:</span><span style="color: #066;">5060</span><span style="color: #000;"><br></span><span style="color: #800;"># alias=OSER_REALM</span><span style="color: #000;"><br></span><span style="color: #800;">#port=OSER_PORT</span><span style="color: #000;"><br><br><br>sip_warning</span><span style="color: #660;">=</span><span style="color: #066;">0</span><span style="color: #000;"><br></span><span style="color: #800;">#server_header="SRV_SIGNATURE"</span><span style="color: #000;"><br></span><span style="color: #800;">#user_agent_header="PP_USER_AGENT"</span><span style="color: #000;"><br><br></span><span style="color: #800;">#mhomed=yes</span><span style="color: #000;"><br></span><span style="color: #800;">#memlog=2</span><span style="color: #000;"><br>check_via</span><span style="color: #660;">=</span><span style="color: #008;">no</span><span style="color: #000;"><br>dns</span><span style="color: #660;">=</span><span style="color: #000;">off<br>rev_dns</span><span style="color: #660;">=</span><span style="color: #000;">off<br>children</span><span style="color: #660;">=</span><span style="color: #066;">8</span><span style="color: #000;"><br>disable_tcp</span><span style="color: #660;">=</span><span style="color: #000;">yes<br>log_facility</span><span style="color: #660;">=</span><span style="color: #000;">LOG_LOCAL7<br></span><span style="color: #800;"># for more info: openser -h</span><span style="color: #000;"><br><br></span><span style="color: #800;"># ------------------ module loading ----------------------------------</span><span style="color: #000;"><br><br>mpath</span><span style="color: #660;">=</span><span style="color: #080;">"/usr/local/opensips/lib/modules/"</span><span style="color: #000;"><br><br>loadmodule </span><span style="color: #080;">"db_mysql.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"xlog.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"textops.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"maxfwd.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"rr.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"sl.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"tm.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"signaling.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"b2b_entities.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"b2b_logic.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"usrloc.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"registrar.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"mi_fifo.so"</span><span style="color: #000;"><br><br><br></span><span style="color: #800;"># ----------------- setting module-specific parameters ---------------</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"mi_fifo"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"fifo_name"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/tmp/opensips_fifo"</span><span style="color: #660;">)</span><span style="color: #000;"><br><br><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"usrloc"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"db_url"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"mysql://opensips:opensipsrw@localhost/opensips"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"usrloc"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"db_mode"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #066;">2</span><span style="color: #660;">)</span><span style="color: #000;"><br><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"tm"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"pass_provisional_replies"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #066;">1</span><span style="color: #660;">)</span><span style="color: #000;"><br><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_entities"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"server_address"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"sip:sa@10.10.10.10:5060"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_logic"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"script_scenario"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/home/anca/work/opensips/modules/b2b_logic/scenario_script.xml"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_logic"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"extern_scenario"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/home/anca/work/opensips/modules/b2b_logic/scenario_extern.xml"</span><span style="color: #660;">)</span><span style="color: #000;"><br><br>route </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">mf_process_maxfwd_header</span><span style="color: #660;">(</span><span style="color: #080;">"10"</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"483"</span><span style="color: #660;">,</span><span style="color: #080;">"Too Many Hops"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">msg</span><span style="color: #660;">:</span><span style="color: #000;">len </span><span style="color: #660;">&gt;=</span><span style="color: #000;"> </span><span style="color: #066;">2380</span><span style="color: #000;"> </span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"513"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"Message too big"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">method</span><span style="color: #660;">==</span><span style="color: #080;">"REGISTER"</span><span style="color: #660;">)</span><span style="color: #000;"><br>&nbsp; &nbsp; record_route</span><span style="color: #660;">();</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #800;"># subsequent messages withing a dialog should take the</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># path determined by record-routing</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">loose_route</span><span style="color: #660;">())</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: rr-enforced\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; &nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #660;">(</span><span style="color: #000;">is_method</span><span style="color: #660;">(</span><span style="color: #080;">"INVITE"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">$fU</span><span style="color: #660;">==</span><span style="color: #080;">"bob"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> &nbsp; &nbsp; </span><span style="color: #800;">/* only for Invite messages from bob*/</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #660;">!(</span><span style="color: #000;">src_ip </span><span style="color: #660;">==</span><span style="color: #000;"> </span><span style="color: #066;">10.10.10.10</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> src_port </span><span style="color: #660;">==</span><span style="color: #066;">5060</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #800;">/* skip Invite messages generated by the server*/</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;"> t_newtran</span><span style="color: #660;">())</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; sl_reply_error</span><span style="color: #660;">();</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; &nbsp; b2b_init_request</span><span style="color: #660;">(</span><span style="color: #080;">"prepaid"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"sip:320@opensips.org:5070"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"sip:321@opensips.org:5070"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">uri</span><span style="color: #660;">==</span><span style="color: #000;">myself</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: outbound\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; &nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">uri</span><span style="color: #660;">==</span><span style="color: #000;">myself</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br><br>&nbsp; &nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">method</span><span style="color: #660;">==</span><span style="color: #080;">"REGISTER"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; save</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; &nbsp; </span><span style="color: #800;"># native SIP destinations are handled using our USRLOC DB</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">lookup</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"404"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"Not Found"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: usrloc applied\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br></span><span style="color: #660;">}</span><span style="color: #000;"><br><br><br>route</span><span style="color: #660;">[</span><span style="color: #066;">1</span><span style="color: #660;">]</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># send it out now; use stateful forwarding as it works reliably</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># even for UDP2TCP</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">t_relay</span><span style="color: #660;">())</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_reply_error</span><span style="color: #660;">();</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br></span><span style="color: #660;">}</span></pre>
to:
<pre><span style="color: #800;"># $Id: opensips-b2b.cfg $</span><span style="color: #000;"><br><br></span><span style="color: #800;"># Debugging mode:</span><span style="color: #000;"><br>debug</span><span style="color: #660;">=</span><span style="color: #066;">3</span><span style="color: #000;"><br>memlog</span><span style="color: #660;">=</span><span style="color: #000;"> </span><span style="color: #066;">6</span><span style="color: #000;"><br>fork</span><span style="color: #660;">=</span><span style="color: #000;">yes<br>auto_aliases</span><span style="color: #660;">=</span><span style="color: #008;">no</span><span style="color: #000;"><br>log_stderror</span><span style="color: #660;">=</span><span style="color: #000;">yes<br><br>disable_dns_blacklist</span><span style="color: #660;">=</span><span style="color: #000;">yes<br><br>listen</span><span style="color: #660;">=</span><span style="color: #066;">10.10.10.10</span><span style="color: #660;">:</span><span style="color: #066;">5060</span><span style="color: #000;"><br></span><span style="color: #800;"># alias=OSIPS_REALM</span><span style="color: #000;"><br></span><span style="color: #800;">#port=OSIPS_PORT</span><span style="color: #000;"><br><br><br>sip_warning</span><span style="color: #660;">=</span><span style="color: #066;">0</span><span style="color: #000;"><br></span><span style="color: #800;">#server_header="SRV_SIGNATURE"</span><span style="color: #000;"><br></span><span style="color: #800;">#user_agent_header="PP_USER_AGENT"</span><span style="color: #000;"><br><br></span><span style="color: #800;">#mhomed=yes</span><span style="color: #000;"><br></span><span style="color: #800;">#memlog=2</span><span style="color: #000;"><br>check_via</span><span style="color: #660;">=</span><span style="color: #008;">no</span><span style="color: #000;"><br>dns</span><span style="color: #660;">=</span><span style="color: #000;">off<br>rev_dns</span><span style="color: #660;">=</span><span style="color: #000;">off<br>children</span><span style="color: #660;">=</span><span style="color: #066;">8</span><span style="color: #000;"><br>disable_tcp</span><span style="color: #660;">=</span><span style="color: #000;">yes<br>log_facility</span><span style="color: #660;">=</span><span style="color: #000;">LOG_LOCAL7<br></span><span style="color: #800;"># for more info: opensips -h</span><span style="color: #000;"><br><br></span><span style="color: #800;"># ------------------ module loading ----------------------------------</span><span style="color: #000;"><br><br>mpath</span><span style="color: #660;">=</span><span style="color: #080;">"/usr/local/opensips/lib/modules/"</span><span style="color: #000;"><br><br>loadmodule </span><span style="color: #080;">"db_mysql.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"xlog.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"textops.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"maxfwd.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"rr.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"sl.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"tm.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"signaling.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"b2b_entities.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"b2b_logic.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"usrloc.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"registrar.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"mi_fifo.so"</span><span style="color: #000;"><br><br><br></span><span style="color: #800;"># ----------------- setting module-specific parameters ---------------</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"mi_fifo"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"fifo_name"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/tmp/opensips_fifo"</span><span style="color: #660;">)</span><span style="color: #000;"><br><br><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"usrloc"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"db_url"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"mysql://opensips:opensipsrw@localhost/opensips"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"usrloc"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"db_mode"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #066;">2</span><span style="color: #660;">)</span><span style="color: #000;"><br><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"tm"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"pass_provisional_replies"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #066;">1</span><span style="color: #660;">)</span><span style="color: #000;"><br><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_entities"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"server_address"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"sip:sa@10.10.10.10:5060"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_logic"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"script_scenario"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/home/anca/work/opensips/modules/b2b_logic/scenario_script.xml"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_logic"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"extern_scenario"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/home/anca/work/opensips/modules/b2b_logic/scenario_extern.xml"</span><span style="color: #660;">)</span><span style="color: #000;"><br><br>route </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">mf_process_maxfwd_header</span><span style="color: #660;">(</span><span style="color: #080;">"10"</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"483"</span><span style="color: #660;">,</span><span style="color: #080;">"Too Many Hops"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">msg</span><span style="color: #660;">:</span><span style="color: #000;">len </span><span style="color: #660;">&gt;=</span><span style="color: #000;"> </span><span style="color: #066;">2380</span><span style="color: #000;"> </span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"513"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"Message too big"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">method</span><span style="color: #660;">==</span><span style="color: #080;">"REGISTER"</span><span style="color: #660;">)</span><span style="color: #000;"><br>&nbsp; &nbsp; record_route</span><span style="color: #660;">();</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #800;"># subsequent messages withing a dialog should take the</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># path determined by record-routing</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">loose_route</span><span style="color: #660;">())</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: rr-enforced\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; &nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #660;">(</span><span style="color: #000;">is_method</span><span style="color: #660;">(</span><span style="color: #080;">"INVITE"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">$fU</span><span style="color: #660;">==</span><span style="color: #080;">"bob"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> &nbsp; &nbsp; </span><span style="color: #800;">/* only for Invite messages from bob*/</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #660;">!(</span><span style="color: #000;">src_ip </span><span style="color: #660;">==</span><span style="color: #000;"> </span><span style="color: #066;">10.10.10.10</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> src_port </span><span style="color: #660;">==</span><span style="color: #066;">5060</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #800;">/* skip Invite messages generated by the server*/</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;"> t_newtran</span><span style="color: #660;">())</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; sl_reply_error</span><span style="color: #660;">();</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; &nbsp; b2b_init_request</span><span style="color: #660;">(</span><span style="color: #080;">"prepaid"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"sip:320@opensips.org:5070"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"sip:321@opensips.org:5070"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">uri</span><span style="color: #660;">==</span><span style="color: #000;">myself</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: outbound\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; &nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">uri</span><span style="color: #660;">==</span><span style="color: #000;">myself</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br><br>&nbsp; &nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">method</span><span style="color: #660;">==</span><span style="color: #080;">"REGISTER"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; save</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; &nbsp; </span><span style="color: #800;"># native SIP destinations are handled using our USRLOC DB</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">lookup</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"404"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"Not Found"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: usrloc applied\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br></span><span style="color: #660;">}</span><span style="color: #000;"><br><br><br>route</span><span style="color: #660;">[</span><span style="color: #066;">1</span><span style="color: #660;">]</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># send it out now; use stateful forwarding as it works reliably</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># even for UDP2TCP</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">t_relay</span><span style="color: #660;">())</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_reply_error</span><span style="color: #660;">();</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br></span><span style="color: #660;">}</span></pre>
July 22, 2009, at 04:59 PM by anca_vamanu -
Changed line 1 from:
!!Resources -> [[Resources.Documentation | Documentation]] -> [[Resources.DocsTutorials | Tutorials]]-> [[Resources.B2buaTutorial | B2BUA Tutorial]]->B2BUA OpenSIPS configuration file example
to:
[[Resources.B2buaTutorial | <-Back]]
July 22, 2009, at 04:54 PM by anca_vamanu -
Changed lines 4-137 from:
[@
# $Id: opensips-b2b.cfg $

# Debugging mode:
debug=3
memlog= 6
fork=yes
auto_aliases=no
log_stderror=yes

disable_dns_blacklist=yes

listen=10.10.10.10:5060
# alias=OSER_REALM
#port=OSER_PORT


sip_warning=0
#server_header="SRV_SIGNATURE"
#user_agent_header="PP_USER_AGENT"

#mhomed=yes
#memlog=2
check_via=no
dns=off
rev_dns=off
children=8
disable_tcp=yes
log_facility=LOG_LOCAL7
# for more info: openser -h

# ------------------ module loading ----------------------------------

mpath="/usr/local/opensips/lib/modules/"

loadmodule "db_mysql.so"
loadmodule "xlog.so"
loadmodule "textops.so"
loadmodule "maxfwd.so"
loadmodule "rr.so"
loadmodule "sl.so"
loadmodule "tm.so"
loadmodule "signaling.so"
loadmodule "b2b_entities.so"
loadmodule "b2b_logic.so"
loadmodule "usrloc.so"
loadmodule "registrar.so"
loadmodule "mi_fifo.so"


# ----------------- setting module-specific parameters ---------------
modparam("mi_fifo", "fifo_name", "/tmp/opensips_fifo")


modparam("usrloc", "db_url", "mysql://opensips:opensipsrw@localhost/opensips")
modparam("usrloc", "db_mode", 2)

modparam("tm", "pass_provisional_replies", 1)

modparam("b2b_entities", "server_address", "sip:sa@10.10.10.10:5060")
modparam("b2b_logic", "script_scenario", "/home/anca/work/opensips/modules/b2b_logic/scenario_script.xml")
modparam("b2b_logic", "extern_scenario", "/home/anca/work/opensips/modules/b2b_logic/scenario_extern.xml")

route {
if (!mf_process_maxfwd_header("10")) {
sl_send_reply("483","Too Many Hops");
exit;
};

if (msg:len >= 2380 ) {
sl_send_reply("513", "Message too big");
exit;
};

if (!method=="REGISTER")
record_route();

# subsequent messages withing a dialog should take the
# path determined by record-routing
if (loose_route()) {
# mark routing logic in request
append_hf("P-hint: rr-enforced\r\n");
route(1);
};

if(is_method("INVITE") && ($fU=="bob") && /* only for Invite messages from bob*/
!(src_ip == 10.10.10.10 && src_port ==5060)) /* skip Invite messages generated by the server*/
{
if (! t_newtran())
{
sl_reply_error();
exit;
};

b2b_init_request("prepaid", "sip:320@opensips.org:5070", "sip:321@opensips.org:5070");
exit;
};

if (!uri==myself) {
# mark routing logic in request
append_hf("P-hint: outbound\r\n");
route(1);
};


if (uri==myself) {

if (method=="REGISTER") {
save("location");
exit;
};

# native SIP destinations are handled using our USRLOC DB
if (!lookup("location")) {
sl_send_reply("404", "Not Found");
exit;
};
append_hf("P-hint: usrloc applied\r\n");
};

route(1);
}


route[1] {
# send it out now; use stateful forwarding as it works reliably
# even for UDP2TCP

if (!t_relay()) {
sl_reply_error();
};
exit;
}
@]
to:
<pre><span style="color: #800;"># $Id: opensips-b2b.cfg $</span><span style="color: #000;"><br><br></span><span style="color: #800;"># Debugging mode:</span><span style="color: #000;"><br>debug</span><span style="color: #660;">=</span><span style="color: #066;">3</span><span style="color: #000;"><br>memlog</span><span style="color: #660;">=</span><span style="color: #000;"> </span><span style="color: #066;">6</span><span style="color: #000;"><br>fork</span><span style="color: #660;">=</span><span style="color: #000;">yes<br>auto_aliases</span><span style="color: #660;">=</span><span style="color: #008;">no</span><span style="color: #000;"><br>log_stderror</span><span style="color: #660;">=</span><span style="color: #000;">yes<br><br>disable_dns_blacklist</span><span style="color: #660;">=</span><span style="color: #000;">yes<br><br>listen</span><span style="color: #660;">=</span><span style="color: #066;">10.10.10.10</span><span style="color: #660;">:</span><span style="color: #066;">5060</span><span style="color: #000;"><br></span><span style="color: #800;"># alias=OSER_REALM</span><span style="color: #000;"><br></span><span style="color: #800;">#port=OSER_PORT</span><span style="color: #000;"><br><br><br>sip_warning</span><span style="color: #660;">=</span><span style="color: #066;">0</span><span style="color: #000;"><br></span><span style="color: #800;">#server_header="SRV_SIGNATURE"</span><span style="color: #000;"><br></span><span style="color: #800;">#user_agent_header="PP_USER_AGENT"</span><span style="color: #000;"><br><br></span><span style="color: #800;">#mhomed=yes</span><span style="color: #000;"><br></span><span style="color: #800;">#memlog=2</span><span style="color: #000;"><br>check_via</span><span style="color: #660;">=</span><span style="color: #008;">no</span><span style="color: #000;"><br>dns</span><span style="color: #660;">=</span><span style="color: #000;">off<br>rev_dns</span><span style="color: #660;">=</span><span style="color: #000;">off<br>children</span><span style="color: #660;">=</span><span style="color: #066;">8</span><span style="color: #000;"><br>disable_tcp</span><span style="color: #660;">=</span><span style="color: #000;">yes<br>log_facility</span><span style="color: #660;">=</span><span style="color: #000;">LOG_LOCAL7<br></span><span style="color: #800;"># for more info: openser -h</span><span style="color: #000;"><br><br></span><span style="color: #800;"># ------------------ module loading ----------------------------------</span><span style="color: #000;"><br><br>mpath</span><span style="color: #660;">=</span><span style="color: #080;">"/usr/local/opensips/lib/modules/"</span><span style="color: #000;"><br><br>loadmodule </span><span style="color: #080;">"db_mysql.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"xlog.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"textops.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"maxfwd.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"rr.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"sl.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"tm.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"signaling.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"b2b_entities.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"b2b_logic.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"usrloc.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"registrar.so"</span><span style="color: #000;"><br>loadmodule </span><span style="color: #080;">"mi_fifo.so"</span><span style="color: #000;"><br><br><br></span><span style="color: #800;"># ----------------- setting module-specific parameters ---------------</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"mi_fifo"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"fifo_name"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/tmp/opensips_fifo"</span><span style="color: #660;">)</span><span style="color: #000;"><br><br><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"usrloc"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"db_url"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"mysql://opensips:opensipsrw@localhost/opensips"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"usrloc"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"db_mode"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #066;">2</span><span style="color: #660;">)</span><span style="color: #000;"><br><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"tm"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"pass_provisional_replies"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #066;">1</span><span style="color: #660;">)</span><span style="color: #000;"><br><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_entities"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"server_address"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"sip:sa@10.10.10.10:5060"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_logic"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"script_scenario"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/home/anca/work/opensips/modules/b2b_logic/scenario_script.xml"</span><span style="color: #660;">)</span><span style="color: #000;"><br>modparam</span><span style="color: #660;">(</span><span style="color: #080;">"b2b_logic"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"extern_scenario"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"/home/anca/work/opensips/modules/b2b_logic/scenario_extern.xml"</span><span style="color: #660;">)</span><span style="color: #000;"><br><br>route </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">mf_process_maxfwd_header</span><span style="color: #660;">(</span><span style="color: #080;">"10"</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"483"</span><span style="color: #660;">,</span><span style="color: #080;">"Too Many Hops"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">msg</span><span style="color: #660;">:</span><span style="color: #000;">len </span><span style="color: #660;">&gt;=</span><span style="color: #000;"> </span><span style="color: #066;">2380</span><span style="color: #000;"> </span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"513"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"Message too big"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">method</span><span style="color: #660;">==</span><span style="color: #080;">"REGISTER"</span><span style="color: #660;">)</span><span style="color: #000;"><br>&nbsp; &nbsp; record_route</span><span style="color: #660;">();</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #800;"># subsequent messages withing a dialog should take the</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># path determined by record-routing</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">loose_route</span><span style="color: #660;">())</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: rr-enforced\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; &nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #660;">(</span><span style="color: #000;">is_method</span><span style="color: #660;">(</span><span style="color: #080;">"INVITE"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">$fU</span><span style="color: #660;">==</span><span style="color: #080;">"bob"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> &nbsp; &nbsp; </span><span style="color: #800;">/* only for Invite messages from bob*/</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #660;">!(</span><span style="color: #000;">src_ip </span><span style="color: #660;">==</span><span style="color: #000;"> </span><span style="color: #066;">10.10.10.10</span><span style="color: #000;"> </span><span style="color: #660;">&amp;&amp;</span><span style="color: #000;"> src_port </span><span style="color: #660;">==</span><span style="color: #066;">5060</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #800;">/* skip Invite messages generated by the server*/</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;"> t_newtran</span><span style="color: #660;">())</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; sl_reply_error</span><span style="color: #660;">();</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; &nbsp; b2b_init_request</span><span style="color: #660;">(</span><span style="color: #080;">"prepaid"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"sip:320@opensips.org:5070"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"sip:321@opensips.org:5070"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">uri</span><span style="color: #660;">==</span><span style="color: #000;">myself</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: outbound\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; &nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">uri</span><span style="color: #660;">==</span><span style="color: #000;">myself</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br><br>&nbsp; &nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(</span><span style="color: #000;">method</span><span style="color: #660;">==</span><span style="color: #080;">"REGISTER"</span><span style="color: #660;">)</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; save</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; &nbsp; </span><span style="color: #800;"># native SIP destinations are handled using our USRLOC DB</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">lookup</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">))</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; sl_send_reply</span><span style="color: #660;">(</span><span style="color: #080;">"404"</span><span style="color: #660;">,</span><span style="color: #000;"> </span><span style="color: #080;">"Not Found"</span><span style="color: #660;">);</span><span style="color: #000;"><br>&nbsp; &nbsp; &nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br>&nbsp; &nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br>&nbsp; &nbsp; append_hf</span><span style="color: #660;">(</span><span style="color: #080;">"P-hint: usrloc applied\r\n"</span><span style="color: #660;">);</span><span style="color: #000;"> <br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br><br>&nbsp; route</span><span style="color: #660;">(</span><span style="color: #066;">1</span><span style="color: #660;">);</span><span style="color: #000;"><br></span><span style="color: #660;">}</span><span style="color: #000;"><br><br><br>route</span><span style="color: #660;">[</span><span style="color: #066;">1</span><span style="color: #660;">]</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># send it out now; use stateful forwarding as it works reliably</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #800;"># even for UDP2TCP</span><span style="color: #000;"><br><br>&nbsp; </span><span style="color: #008;">if</span><span style="color: #000;"> </span><span style="color: #660;">(!</span><span style="color: #000;">t_relay</span><span style="color: #660;">())</span><span style="color: #000;"> </span><span style="color: #660;">{</span><span style="color: #000;"><br>&nbsp; &nbsp; sl_reply_error</span><span style="color: #660;">();</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #660;">};</span><span style="color: #000;"><br>&nbsp; </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br></span><span style="color: #660;">}</span></pre>
July 22, 2009, at 04:33 PM by anca_vamanu -
Changed line 90 from:
!(src_ip == 10.10.10.10 && src_port ==5060)) /* skip Invite messages generated by the server*/
to:
!(src_ip == 10.10.10.10 && src_port ==5060)) /* skip Invite messages generated by the server*/
Deleted lines 104-111:
# if you have some interdomain connections via TLS
#if(uri=~"@tls_domain1.net") {
# t_relay("tls:domain1.net");
# exit;
#} else if(uri=~"@tls_domain2.net") {
# t_relay("tls:domain2.net");
# exit;
#}
Deleted lines 111-116:

# Uncomment this if you want to use digest authentication
#if (!www_authorize("opensips.org", "subscriber")) {
# www_challenge("opensips.org", "0");
# exit;
#};
July 22, 2009, at 04:29 PM by anca_vamanu -
Changed lines 4-6 from:
!B2BUA OpenSIPS configuration file example

=cpp [=
to:
[@
Changed line 151 from:
=]
to:
@]
July 22, 2009, at 04:13 PM by anca_vamanu -
Changed lines 6-7 from:
[@# $Id: opensips-b2b.cfg $
to:
=cpp [=
# $Id: opensips-b2b.cfg $
Changed line 153 from:
@]
to:
=]
July 22, 2009, at 04:09 PM by anca_vamanu -
Added lines 1-152:
!!Resources -> [[Resources.Documentation | Documentation]] -> [[Resources.DocsTutorials | Tutorials]]-> [[Resources.B2buaTutorial | B2BUA Tutorial]]->B2BUA OpenSIPS configuration file example
----

!B2BUA OpenSIPS configuration file example

[@# $Id: opensips-b2b.cfg $

# Debugging mode:
debug=3
memlog= 6
fork=yes
auto_aliases=no
log_stderror=yes

disable_dns_blacklist=yes

listen=10.10.10.10:5060
# alias=OSER_REALM
#port=OSER_PORT


sip_warning=0
#server_header="SRV_SIGNATURE"
#user_agent_header="PP_USER_AGENT"

#mhomed=yes
#memlog=2
check_via=no
dns=off
rev_dns=off
children=8
disable_tcp=yes
log_facility=LOG_LOCAL7
# for more info: openser -h

# ------------------ module loading ----------------------------------

mpath="/usr/local/opensips/lib/modules/"

loadmodule "db_mysql.so"
loadmodule "xlog.so"
loadmodule "textops.so"
loadmodule "maxfwd.so"
loadmodule "rr.so"
loadmodule "sl.so"
loadmodule "tm.so"
loadmodule "signaling.so"
loadmodule "b2b_entities.so"
loadmodule "b2b_logic.so"
loadmodule "usrloc.so"
loadmodule "registrar.so"
loadmodule "mi_fifo.so"


# ----------------- setting module-specific parameters ---------------
modparam("mi_fifo", "fifo_name", "/tmp/opensips_fifo")


modparam("usrloc", "db_url", "mysql://opensips:opensipsrw@localhost/opensips")
modparam("usrloc", "db_mode", 2)

modparam("tm", "pass_provisional_replies", 1)

modparam("b2b_entities", "server_address", "sip:sa@10.10.10.10:5060")
modparam("b2b_logic", "script_scenario", "/home/anca/work/opensips/modules/b2b_logic/scenario_script.xml")
modparam("b2b_logic", "extern_scenario", "/home/anca/work/opensips/modules/b2b_logic/scenario_extern.xml")

route {
if (!mf_process_maxfwd_header("10")) {
sl_send_reply("483","Too Many Hops");
exit;
};

if (msg:len >= 2380 ) {
sl_send_reply("513", "Message too big");
exit;
};

if (!method=="REGISTER")
record_route();

# subsequent messages withing a dialog should take the
# path determined by record-routing
if (loose_route()) {
# mark routing logic in request
append_hf("P-hint: rr-enforced\r\n");
route(1);
};

if(is_method("INVITE") && ($fU=="bob") && /* only for Invite messages from bob*/
!(src_ip == 10.10.10.10 && src_port ==5060)) /* skip Invite messages generated by the server*/
{
if (! t_newtran())
{
sl_reply_error();
exit;
};

b2b_init_request("prepaid", "sip:320@opensips.org:5070", "sip:321@opensips.org:5070");
exit;
};

if (!uri==myself) {
# mark routing logic in request
append_hf("P-hint: outbound\r\n");
# if you have some interdomain connections via TLS
#if(uri=~"@tls_domain1.net") {
# t_relay("tls:domain1.net");
# exit;
#} else if(uri=~"@tls_domain2.net") {
# t_relay("tls:domain2.net");
# exit;
#}
route(1);
};


if (uri==myself) {

if (method=="REGISTER") {

# Uncomment this if you want to use digest authentication
#if (!www_authorize("opensips.org", "subscriber")) {
# www_challenge("opensips.org", "0");
# exit;
#};
save("location");
exit;
};

# native SIP destinations are handled using our USRLOC DB
if (!lookup("location")) {
sl_send_reply("404", "Not Found");
exit;
};
append_hf("P-hint: usrloc applied\r\n");
};

route(1);
}


route[1] {
# send it out now; use stateful forwarding as it works reliably
# even for UDP2TCP

if (!t_relay()) {
sl_reply_error();
};
exit;
}
@]

Page last modified on April 24, 2013, at 06:42 PM