Documentation

Documentation.Tutorials-B2BUAConfigExample History

Hide minor edits - Show changes to output

May 10, 2013, at 02:12 PM by 109.99.235.212 -
Changed line 1 from:
[[Resources.B2buaTutorial | <-Back]]
to:
[[ Documentation.Tutorials-B2BUA| <-Back]]
April 24, 2013, at 06:42 PM by 109.99.235.212 -
Added lines 1-5:
[[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>

Page last modified on May 10, 2013, at 02:12 PM