Resources.B2bConfigExample HistoryHide minor edits - Show changes to output April 24, 2013, at 06:42 PM
by
- 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> 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> 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> </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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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;">>=</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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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> record_route</span><span style="color: #660;">();</span><span style="color: #000;"><br><br> </span><span style="color: #800;"># subsequent messages withing a dialog should take the</span><span style="color: #000;"><br> </span><span style="color: #800;"># path determined by record-routing</span><span style="color: #000;"><br> </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> </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br> 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> 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> </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;">&&</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;">&&</span><span style="color: #000;"> </span><span style="color: #800;">/* only for Invite messages from bob*/</span><span style="color: #000;"><br> </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;">&&</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> </span><span style="color: #660;">{</span><span style="color: #000;"><br> </span><span style="color: #800;"># DO NOT call t_newtran() on this request -> it will result in the transaction never being deleted</span><span style="color: #000;"><br> 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> </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> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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> </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br> 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> 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> </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> </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> save</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">);</span><span style="color: #000;"><br> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </span><span style="color: #800;"># native SIP destinations are handled using our USRLOC DB</span><span style="color: #000;"><br> </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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br> 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> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> 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> </span><span style="color: #800;"># send it out now; use stateful forwarding as it works reliably</span><span style="color: #000;"><br> </span><span style="color: #800;"># even for UDP2TCP</span><span style="color: #000;"><br><br> </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> sl_reply_error</span><span style="color: #660;">();</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br> </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
- 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> 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> 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> </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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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;">>=</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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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> record_route</span><span style="color: #660;">();</span><span style="color: #000;"><br><br> </span><span style="color: #800;"># subsequent messages withing a dialog should take the</span><span style="color: #000;"><br> </span><span style="color: #800;"># path determined by record-routing</span><span style="color: #000;"><br> </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> </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br> 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> 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> </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;">&&</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;">&&</span><span style="color: #000;"> </span><span style="color: #800;">/* only for Invite messages from bob*/</span><span style="color: #000;"><br> </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;">&&</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> </span><span style="color: #660;">{</span><span style="color: #000;"><br> </span><span style="color: #800;"># DO NOT call t_newtran() on this request -> it will result in the transaction never being deleted</span><span style="color: #000;"><br> 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> </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> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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> </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br> 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> 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> </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> </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> save</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">);</span><span style="color: #000;"><br> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </span><span style="color: #800;"># native SIP destinations are handled using our USRLOC DB</span><span style="color: #000;"><br> </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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br> 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> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> 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> </span><span style="color: #800;"># send it out now; use stateful forwarding as it works reliably</span><span style="color: #000;"><br> </span><span style="color: #800;"># even for UDP2TCP</span><span style="color: #000;"><br><br> </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> sl_reply_error</span><span style="color: #660;">();</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br> </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> 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> 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> </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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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;">>=</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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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> record_route</span><span style="color: #660;">();</span><span style="color: #000;"><br><br> </span><span style="color: #800;"># subsequent messages withing a dialog should take the</span><span style="color: #000;"><br> </span><span style="color: #800;"># path determined by record-routing</span><span style="color: #000;"><br> </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> </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br> 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> 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> </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;">&&</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;">&&</span><span style="color: #000;"> </span><span style="color: #800;">/* only for Invite messages from bob*/</span><span style="color: #000;"><br> </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;">&&</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> </span><span style="color: #660;">{</span><span style="color: #000;"><br> </span><span style="color: #800;"># DO NOT call t_newtran() on this request -> it will result in the transaction never being deleted</span><span style="color: #000;"><br> 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> </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> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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> </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br> 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> 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> </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> </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> save</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">);</span><span style="color: #000;"><br> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </span><span style="color: #800;"># native SIP destinations are handled using our USRLOC DB</span><span style="color: #000;"><br> </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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br> 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> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> 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> </span><span style="color: #800;"># send it out now; use stateful forwarding as it works reliably</span><span style="color: #000;"><br> </span><span style="color: #800;"># even for UDP2TCP</span><span style="color: #000;"><br><br> </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> sl_reply_error</span><span style="color: #660;">();</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br> </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 - April 07, 2011, at 05:15 PM
by
- 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> 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> 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> </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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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;">>=</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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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> record_route</span><span style="color: #660;">();</span><span style="color: #000;"><br><br> </span><span style="color: #800;"># subsequent messages withing a dialog should take the</span><span style="color: #000;"><br> </span><span style="color: #800;"># path determined by record-routing</span><span style="color: #000;"><br> </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> </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br> 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> 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> </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;">&&</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;">&&</span><span style="color: #000;"> </span><span style="color: #800;">/* only for Invite messages from bob*/</span><span style="color: #000;"><br> </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;">&&</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> </span><span style="color: #660;">{</span><span style="color: #000;"><br> </span><span style="color: #800;"># DO NOT call t_newtran() on this request -> it will result in the transaction never being deleted</span><span style="color: #000;"><br> 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> </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> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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> </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br> 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> 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> </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> </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> save</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">);</span><span style="color: #000;"><br> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </span><span style="color: #800;"># native SIP destinations are handled using our USRLOC DB</span><span style="color: #000;"><br> </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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br> 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> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> 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> </span><span style="color: #800;"># send it out now; use stateful forwarding as it works reliably</span><span style="color: #000;"><br> </span><span style="color: #800;"># even for UDP2TCP</span><span style="color: #000;"><br><br> </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> sl_reply_error</span><span style="color: #660;">();</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br> </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> 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> 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> </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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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;">>=</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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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> record_route</span><span style="color: #660;">();</span><span style="color: #000;"><br><br> </span><span style="color: #800;"># subsequent messages withing a dialog should take the</span><span style="color: #000;"><br> </span><span style="color: #800;"># path determined by record-routing</span><span style="color: #000;"><br> </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> </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br> 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> 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> </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;">&&</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;">&&</span><span style="color: #000;"> </span><span style="color: #800;">/* only for Invite messages from bob*/</span><span style="color: #000;"><br> </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;">&&</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> </span><span style="color: #660;">{</span><span style="color: #000;"><br> </span><span style="color: #800;"># DO NOT call t_newtran() on this request -> it will result in the transaction never being deleted</span><span style="color: #000;"><br> 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> </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> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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> </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br> 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> 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> </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> </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> save</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">);</span><span style="color: #000;"><br> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </span><span style="color: #800;"># native SIP destinations are handled using our USRLOC DB</span><span style="color: #000;"><br> </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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br> 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> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> 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> </span><span style="color: #800;"># send it out now; use stateful forwarding as it works reliably</span><span style="color: #000;"><br> </span><span style="color: #800;"># even for UDP2TCP</span><span style="color: #000;"><br><br> </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> sl_reply_error</span><span style="color: #660;">();</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br> </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
- 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> 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> 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> </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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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;">>=</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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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> record_route</span><span style="color: #660;">();</span><span style="color: #000;"><br><br> </span><span style="color: #800;"># subsequent messages withing a dialog should take the</span><span style="color: #000;"><br> </span><span style="color: #800;"># path determined by record-routing</span><span style="color: #000;"><br> </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> </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br> 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> 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> </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;">&&</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;">&&</span><span style="color: #000;"> </span><span style="color: #800;">/* only for Invite messages from bob*/</span><span style="color: #000;"><br> </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;">&&</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> </span><span style="color: #660;">{</span><span style="color: #000;"><br> </span><span style="color: #800;"># DO NOT call t_newtran() on this request -> it will result in the transaction never being deleted</span><span style="color: #000;"><br> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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> </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br> 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> 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> </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> </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> save</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">);</span><span style="color: #000;"><br> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </span><span style="color: #800;"># native SIP destinations are handled using our USRLOC DB</span><span style="color: #000;"><br> </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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br> 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> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> 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> </span><span style="color: #800;"># send it out now; use stateful forwarding as it works reliably</span><span style="color: #000;"><br> </span><span style="color: #800;"># even for UDP2TCP</span><span style="color: #000;"><br><br> </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> sl_reply_error</span><span style="color: #660;">();</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br> </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> 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> 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> </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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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;">>=</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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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> record_route</span><span style="color: #660;">();</span><span style="color: #000;"><br><br> </span><span style="color: #800;"># subsequent messages withing a dialog should take the</span><span style="color: #000;"><br> </span><span style="color: #800;"># path determined by record-routing</span><span style="color: #000;"><br> </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> </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br> 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> 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> </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;">&&</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;">&&</span><span style="color: #000;"> </span><span style="color: #800;">/* only for Invite messages from bob*/</span><span style="color: #000;"><br> </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;">&&</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> </span><span style="color: #660;">{</span><span style="color: #000;"><br> </span><span style="color: #800;"># DO NOT call t_newtran() on this request -> it will result in the transaction never being deleted</span><span style="color: #000;"><br> 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> </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> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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> </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br> 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> 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> </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> </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> save</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">);</span><span style="color: #000;"><br> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </span><span style="color: #800;"># native SIP destinations are handled using our USRLOC DB</span><span style="color: #000;"><br> </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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br> 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> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> 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> </span><span style="color: #800;"># send it out now; use stateful forwarding as it works reliably</span><span style="color: #000;"><br> </span><span style="color: #800;"># even for UDP2TCP</span><span style="color: #000;"><br><br> </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> sl_reply_error</span><span style="color: #660;">();</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br> </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
- 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> </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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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;">>=</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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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> record_route</span><span style="color: #660;">();</span><span style="color: #000;"><br><br> </span><span style="color: #800;"># subsequent messages withing a dialog should take the</span><span style="color: #000;"><br> </span><span style="color: #800;"># path determined by record-routing</span><span style="color: #000;"><br> </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> </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br> 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> 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> </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;">&&</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;">&&</span><span style="color: #000;"> </span><span style="color: #800;">/* only for Invite messages from bob*/</span><span style="color: #000;"><br> </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;">&&</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> </span><span style="color: #660;">{</span><span style="color: #000;"><br> </span><span style="color: #800;"># DO NOT call t_newtran() on this request -> it will result in the transaction never being deleted</span><span style="color: #000;"><br> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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> </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br> 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> 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> </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> </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> save</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">);</span><span style="color: #000;"><br> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </span><span style="color: #800;"># native SIP destinations are handled using our USRLOC DB</span><span style="color: #000;"><br> </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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br> 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> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> 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> </span><span style="color: #800;"># send it out now; use stateful forwarding as it works reliably</span><span style="color: #000;"><br> </span><span style="color: #800;"># even for UDP2TCP</span><span style="color: #000;"><br><br> </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> sl_reply_error</span><span style="color: #660;">();</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br> </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> 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> 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> </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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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;">>=</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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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> record_route</span><span style="color: #660;">();</span><span style="color: #000;"><br><br> </span><span style="color: #800;"># subsequent messages withing a dialog should take the</span><span style="color: #000;"><br> </span><span style="color: #800;"># path determined by record-routing</span><span style="color: #000;"><br> </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> </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br> 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> 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> </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;">&&</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;">&&</span><span style="color: #000;"> </span><span style="color: #800;">/* only for Invite messages from bob*/</span><span style="color: #000;"><br> </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;">&&</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> </span><span style="color: #660;">{</span><span style="color: #000;"><br> </span><span style="color: #800;"># DO NOT call t_newtran() on this request -> it will result in the transaction never being deleted</span><span style="color: #000;"><br> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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> </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br> 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> 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> </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> </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> save</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">);</span><span style="color: #000;"><br> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </span><span style="color: #800;"># native SIP destinations are handled using our USRLOC DB</span><span style="color: #000;"><br> </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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br> 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> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> 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> </span><span style="color: #800;"># send it out now; use stateful forwarding as it works reliably</span><span style="color: #000;"><br> </span><span style="color: #800;"># even for UDP2TCP</span><span style="color: #000;"><br><br> </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> sl_reply_error</span><span style="color: #660;">();</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br> </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
- 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> </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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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;">>=</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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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> record_route</span><span style="color: #660;">();</span><span style="color: #000;"><br><br> </span><span style="color: #800;"># subsequent messages withing a dialog should take the</span><span style="color: #000;"><br> </span><span style="color: #800;"># path determined by record-routing</span><span style="color: #000;"><br> </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> </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br> 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> 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> </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;">&&</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;">&&</span><span style="color: #000;"> </span><span style="color: #800;">/* only for Invite messages from bob*/</span><span style="color: #000;"><br> </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;">&&</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> </span><span style="color: #660;">{</span><span style="color: #000;"><br> </span><span style="color: #000;"><br><br> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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> </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br> 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> 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> </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> </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> save</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">);</span><span style="color: #000;"><br> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </span><span style="color: #800;"># native SIP destinations are handled using our USRLOC DB</span><span style="color: #000;"><br> </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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br> 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> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> 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> </span><span style="color: #800;"># send it out now; use stateful forwarding as it works reliably</span><span style="color: #000;"><br> </span><span style="color: #800;"># even for UDP2TCP</span><span style="color: #000;"><br><br> </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> sl_reply_error</span><span style="color: #660;">();</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br> </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> </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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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;">>=</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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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> record_route</span><span style="color: #660;">();</span><span style="color: #000;"><br><br> </span><span style="color: #800;"># subsequent messages withing a dialog should take the</span><span style="color: #000;"><br> </span><span style="color: #800;"># path determined by record-routing</span><span style="color: #000;"><br> </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> </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br> 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> 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> </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;">&&</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;">&&</span><span style="color: #000;"> </span><span style="color: #800;">/* only for Invite messages from bob*/</span><span style="color: #000;"><br> </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;">&&</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> </span><span style="color: #660;">{</span><span style="color: #000;"><br> </span><span style="color: #800;"># DO NOT call t_newtran() on this request -> it will result in the transaction never being deleted</span><span style="color: #000;"><br> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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> </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br> 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> 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> </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> </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> save</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">);</span><span style="color: #000;"><br> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </span><span style="color: #800;"># native SIP destinations are handled using our USRLOC DB</span><span style="color: #000;"><br> </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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br> 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> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> 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> </span><span style="color: #800;"># send it out now; use stateful forwarding as it works reliably</span><span style="color: #000;"><br> </span><span style="color: #800;"># even for UDP2TCP</span><span style="color: #000;"><br><br> </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> sl_reply_error</span><span style="color: #660;">();</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br> </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
- 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> </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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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;">>=</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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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> record_route</span><span style="color: #660;">();</span><span style="color: #000;"><br><br> </span><span style="color: #800;"># subsequent messages withing a dialog should take the</span><span style="color: #000;"><br> </span><span style="color: #800;"># path determined by record-routing</span><span style="color: #000;"><br> </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> </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br> 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> 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> </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;">&&</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;">&&</span><span style="color: #000;"> </span><span style="color: #800;">/* only for Invite messages from bob*/</span><span style="color: #000;"><br> </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;">&&</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> </span><span style="color: #660;">{</span><span style="color: #000;"><br> </span><span style="color: #000;"><br><br> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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> </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br> 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> 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> </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> </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> save</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">);</span><span style="color: #000;"><br> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </span><span style="color: #800;"># native SIP destinations are handled using our USRLOC DB</span><span style="color: #000;"><br> </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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br> 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> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> 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> </span><span style="color: #800;"># send it out now; use stateful forwarding as it works reliably</span><span style="color: #000;"><br> </span><span style="color: #800;"># even for UDP2TCP</span><span style="color: #000;"><br><br> </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> sl_reply_error</span><span style="color: #660;">();</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br> </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> </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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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;">>=</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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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> record_route</span><span style="color: #660;">();</span><span style="color: #000;"><br><br> </span><span style="color: #800;"># subsequent messages withing a dialog should take the</span><span style="color: #000;"><br> </span><span style="color: #800;"># path determined by record-routing</span><span style="color: #000;"><br> </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> </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br> 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> 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> </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;">&&</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;">&&</span><span style="color: #000;"> </span><span style="color: #800;">/* only for Invite messages from bob*/</span><span style="color: #000;"><br> </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;">&&</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> </span><span style="color: #660;">{</span><span style="color: #000;"><br> </span><span style="color: #000;"><br><br> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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> </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br> 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> 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> </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> </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> save</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">);</span><span style="color: #000;"><br> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </span><span style="color: #800;"># native SIP destinations are handled using our USRLOC DB</span><span style="color: #000;"><br> </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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br> 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> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> 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> </span><span style="color: #800;"># send it out now; use stateful forwarding as it works reliably</span><span style="color: #000;"><br> </span><span style="color: #800;"># even for UDP2TCP</span><span style="color: #000;"><br><br> </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> sl_reply_error</span><span style="color: #660;">();</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br> </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
- 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> </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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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;">>=</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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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> record_route</span><span style="color: #660;">();</span><span style="color: #000;"><br><br> </span><span style="color: #800;"># subsequent messages withing a dialog should take the</span><span style="color: #000;"><br> </span><span style="color: #800;"># path determined by record-routing</span><span style="color: #000;"><br> </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> </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br> 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> 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> </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;">&&</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;">&&</span><span style="color: #000;"> </span><span style="color: #800;">/* only for Invite messages from bob*/</span><span style="color: #000;"><br> </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;">&&</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> </span><span style="color: #660;">{</span><span style="color: #000;"><br> </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> </span><span style="color: #660;">{</span><span style="color: #000;"><br> sl_reply_error</span><span style="color: #660;">();</span><span style="color: #000;"><br> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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> </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br> 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> 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> </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> </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> save</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">);</span><span style="color: #000;"><br> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </span><span style="color: #800;"># native SIP destinations are handled using our USRLOC DB</span><span style="color: #000;"><br> </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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br> 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> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> 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> </span><span style="color: #800;"># send it out now; use stateful forwarding as it works reliably</span><span style="color: #000;"><br> </span><span style="color: #800;"># even for UDP2TCP</span><span style="color: #000;"><br><br> </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> sl_reply_error</span><span style="color: #660;">();</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br> </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> </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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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;">>=</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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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> record_route</span><span style="color: #660;">();</span><span style="color: #000;"><br><br> </span><span style="color: #800;"># subsequent messages withing a dialog should take the</span><span style="color: #000;"><br> </span><span style="color: #800;"># path determined by record-routing</span><span style="color: #000;"><br> </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> </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br> 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> 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> </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;">&&</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;">&&</span><span style="color: #000;"> </span><span style="color: #800;">/* only for Invite messages from bob*/</span><span style="color: #000;"><br> </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;">&&</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> </span><span style="color: #660;">{</span><span style="color: #000;"><br> </span><span style="color: #000;"><br><br> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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> </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br> 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> 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> </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> </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> save</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">);</span><span style="color: #000;"><br> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </span><span style="color: #800;"># native SIP destinations are handled using our USRLOC DB</span><span style="color: #000;"><br> </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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br> 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> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> 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> </span><span style="color: #800;"># send it out now; use stateful forwarding as it works reliably</span><span style="color: #000;"><br> </span><span style="color: #800;"># even for UDP2TCP</span><span style="color: #000;"><br><br> </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> sl_reply_error</span><span style="color: #660;">();</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br> </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
- 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> </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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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;">>=</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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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> record_route</span><span style="color: #660;">();</span><span style="color: #000;"><br><br> </span><span style="color: #800;"># subsequent messages withing a dialog should take the</span><span style="color: #000;"><br> </span><span style="color: #800;"># path determined by record-routing</span><span style="color: #000;"><br> </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> </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br> 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> 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> </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;">&&</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;">&&</span><span style="color: #000;"> </span><span style="color: #800;">/* only for Invite messages from bob*/</span><span style="color: #000;"><br> </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;">&&</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> </span><span style="color: #660;">{</span><span style="color: #000;"><br> </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> </span><span style="color: #660;">{</span><span style="color: #000;"><br> sl_reply_error</span><span style="color: #660;">();</span><span style="color: #000;"><br> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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> </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br> 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> 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> </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> </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> save</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">);</span><span style="color: #000;"><br> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </span><span style="color: #800;"># native SIP destinations are handled using our USRLOC DB</span><span style="color: #000;"><br> </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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br> 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> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> 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> </span><span style="color: #800;"># send it out now; use stateful forwarding as it works reliably</span><span style="color: #000;"><br> </span><span style="color: #800;"># even for UDP2TCP</span><span style="color: #000;"><br><br> </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> sl_reply_error</span><span style="color: #660;">();</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br> </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> </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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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;">>=</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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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> record_route</span><span style="color: #660;">();</span><span style="color: #000;"><br><br> </span><span style="color: #800;"># subsequent messages withing a dialog should take the</span><span style="color: #000;"><br> </span><span style="color: #800;"># path determined by record-routing</span><span style="color: #000;"><br> </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> </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br> 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> 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> </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;">&&</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;">&&</span><span style="color: #000;"> </span><span style="color: #800;">/* only for Invite messages from bob*/</span><span style="color: #000;"><br> </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;">&&</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> </span><span style="color: #660;">{</span><span style="color: #000;"><br> </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> </span><span style="color: #660;">{</span><span style="color: #000;"><br> sl_reply_error</span><span style="color: #660;">();</span><span style="color: #000;"><br> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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> </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br> 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> 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> </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> </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> save</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">);</span><span style="color: #000;"><br> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </span><span style="color: #800;"># native SIP destinations are handled using our USRLOC DB</span><span style="color: #000;"><br> </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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br> 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> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> 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> </span><span style="color: #800;"># send it out now; use stateful forwarding as it works reliably</span><span style="color: #000;"><br> </span><span style="color: #800;"># even for UDP2TCP</span><span style="color: #000;"><br><br> </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> sl_reply_error</span><span style="color: #660;">();</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br> </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
- 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> </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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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;">>=</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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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> record_route</span><span style="color: #660;">();</span><span style="color: #000;"><br><br> </span><span style="color: #800;"># subsequent messages withing a dialog should take the</span><span style="color: #000;"><br> </span><span style="color: #800;"># path determined by record-routing</span><span style="color: #000;"><br> </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> </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br> 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> 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> </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;">&&</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;">&&</span><span style="color: #000;"> </span><span style="color: #800;">/* only for Invite messages from bob*/</span><span style="color: #000;"><br> </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;">&&</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> </span><span style="color: #660;">{</span><span style="color: #000;"><br> </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> </span><span style="color: #660;">{</span><span style="color: #000;"><br> sl_reply_error</span><span style="color: #660;">();</span><span style="color: #000;"><br> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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> </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br> 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> 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> </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> </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> save</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">);</span><span style="color: #000;"><br> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </span><span style="color: #800;"># native SIP destinations are handled using our USRLOC DB</span><span style="color: #000;"><br> </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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br> 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> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> 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> </span><span style="color: #800;"># send it out now; use stateful forwarding as it works reliably</span><span style="color: #000;"><br> </span><span style="color: #800;"># even for UDP2TCP</span><span style="color: #000;"><br><br> </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> sl_reply_error</span><span style="color: #660;">();</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br> </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> </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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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;">>=</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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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> record_route</span><span style="color: #660;">();</span><span style="color: #000;"><br><br> </span><span style="color: #800;"># subsequent messages withing a dialog should take the</span><span style="color: #000;"><br> </span><span style="color: #800;"># path determined by record-routing</span><span style="color: #000;"><br> </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> </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br> 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> 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> </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;">&&</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;">&&</span><span style="color: #000;"> </span><span style="color: #800;">/* only for Invite messages from bob*/</span><span style="color: #000;"><br> </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;">&&</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> </span><span style="color: #660;">{</span><span style="color: #000;"><br> </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> </span><span style="color: #660;">{</span><span style="color: #000;"><br> sl_reply_error</span><span style="color: #660;">();</span><span style="color: #000;"><br> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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> </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br> 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> 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> </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> </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> save</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">);</span><span style="color: #000;"><br> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </span><span style="color: #800;"># native SIP destinations are handled using our USRLOC DB</span><span style="color: #000;"><br> </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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br> 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> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> 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> </span><span style="color: #800;"># send it out now; use stateful forwarding as it works reliably</span><span style="color: #000;"><br> </span><span style="color: #800;"># even for UDP2TCP</span><span style="color: #000;"><br><br> </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> sl_reply_error</span><span style="color: #660;">();</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br> </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
- 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
- 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> </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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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;">>=</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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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> record_route</span><span style="color: #660;">();</span><span style="color: #000;"><br><br> </span><span style="color: #800;"># subsequent messages withing a dialog should take the</span><span style="color: #000;"><br> </span><span style="color: #800;"># path determined by record-routing</span><span style="color: #000;"><br> </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> </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br> 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> 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> </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;">&&</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;">&&</span><span style="color: #000;"> </span><span style="color: #800;">/* only for Invite messages from bob*/</span><span style="color: #000;"><br> </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;">&&</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> </span><span style="color: #660;">{</span><span style="color: #000;"><br> </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> </span><span style="color: #660;">{</span><span style="color: #000;"><br> sl_reply_error</span><span style="color: #660;">();</span><span style="color: #000;"><br> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </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> </span><span style="color: #800;"># mark routing logic in request</span><span style="color: #000;"><br> 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> 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> </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> </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> save</span><span style="color: #660;">(</span><span style="color: #080;">"location"</span><span style="color: #660;">);</span><span style="color: #000;"><br> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> </span><span style="color: #800;"># native SIP destinations are handled using our USRLOC DB</span><span style="color: #000;"><br> </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> 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> </span><span style="color: #008;">exit</span><span style="color: #660;">;</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br> 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> </span><span style="color: #660;">};</span><span style="color: #000;"><br><br> 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> </span><span style="color: #800;"># send it out now; use stateful forwarding as it works reliably</span><span style="color: #000;"><br> </span><span style="color: #800;"># even for UDP2TCP</span><span style="color: #000;"><br><br> </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> sl_reply_error</span><span style="color: #660;">();</span><span style="color: #000;"><br> </span><span style="color: #660;">};</span><span style="color: #000;"><br> </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
- 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
- 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
- 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
- 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; } @] |