<div>Add</div><b>#!define WITH_AUTH</b><div>at the very top second /third line <br></div><div>Don't forget to edit all the DB URLS and other modparams wherever you find the tag <i>#!ifdefine WITH_AUTH</i></div><div><br>
</div><div>BR/<br>Sammy<br><div class="gmail_quote">On Mon, Mar 19, 2012 at 5:47 PM, Faisal Rehman <span dir="ltr"><<a href="mailto:faisal.rehman22@yahoo.com">faisal.rehman22@yahoo.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><div style="font-size:10pt;font-family:tahoma,new york,times,serif"><div><span style="font-weight:bold">Hi Veneet,</span></div><div><span><br></span></div><div>Yeah its seems so that is why it is registering the users without any authorization, but I am new to Kamailio so will you please tell me how can I set that WITH_AUTH environment variable?</div>
<div><br></div><div> </div><div>Regards,<br><span style="font-size:10pt"><br></span></div><div><span style="font-size:10pt;font-weight:bold">Faisal Rehman</span><br></div><div><div class="hm HOEnZb"> </div><div style="font-size:10pt;font-family:tahoma,'new york',times,serif">
<div class="hm HOEnZb"> </div><div style="font-size:12pt;font-family:'times new roman','new york',times,serif"><div class="hm HOEnZb"> <div dir="ltr"> <font face="Arial"> <hr size="1"> <b><span style="font-weight:bold">From:</span></b> Vineet Menon <<a href="mailto:mvineetmenon@gmail.com" target="_blank">mvineetmenon@gmail.com</a>><br>
<b><span style="font-weight:bold">To:</span></b> Faisal Rehman <<a href="mailto:faisal.rehman22@yahoo.com" target="_blank">faisal.rehman22@yahoo.com</a>>; SIP Router - Kamailio (OpenSER) and SIP Express Router (SER) - Users Mailing List <<a href="mailto:sr-users@lists.sip-router.org" target="_blank">sr-users@lists.sip-router.org</a>> <br>
<b><span style="font-weight:bold">Sent:</span></b> Monday, March 19, 2012 9:46 AM<br> <b><span style="font-weight:bold">Subject:</span></b> Re: [SR-Users] Users being registered without any Authentication<br> </font> </div>
</div><div><div class="h5"> <br><div>Hi,<div><br></div><div>have you set the WITH_AUTH environment variable? A quick glance over your config fie says the negative.... Just have a look...</div><div><br clear="all">Regards,<br>
<br>Vineet Menon<br><br><br>
<br><br><div>On 17 March 2012 03:03, Faisal Rehman <span dir="ltr"><<a rel="nofollow" href="mailto:faisal.rehman22@yahoo.com" target="_blank">faisal.rehman22@yahoo.com</a>></span> wrote:<br><blockquote style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><div style="font-size:10pt;font-family:'Courier New',courier,monaco,monospace,sans-serif"><div><span>Hi Sir, </span></div><div><span><br>
</span></div><div><span>Sending the email again.</span></div><div><span> </span></div><div><span>Regards,<br>
<br></span></div><div><span>Faisal Rehman</span><br> <div style="font-size:10pt">
<div style="font-size:12pt"><div><div> <div dir="ltr"> <font face="Arial"> -----
Forwarded Message -----<br> <b><span style="font-weight:bold">From:</span></b> Faisal Rehman <<a rel="nofollow" href="mailto:faisal.rehman22@yahoo.com" target="_blank">faisal.rehman22@yahoo.com</a>><br> <b><span style="font-weight:bold">To:</span></b> SIP Router - Kamailio ( Open SER) and SIP Express Router ( SER) - Users Mailing List <<a rel="nofollow" href="mailto:sr-users@lists.sip-router.org" target="_blank">sr-users@lists.sip-router.org</a>> <br>
<b><span style="font-weight:bold">Sent:</span></b> Saturday, March 17, 2012 2:31 AM<br> <b><span style="font-weight:bold">Subject:</span></b> Users being registered without any Authentication<br> </font> </div> <br></div>
</div><div><div><div><div><div><div style="font-size:10pt"><span style="font-weight:bold">Hi,</span></div><div style="font-size:10pt"><br>
</div><div style="font-size:10pt">I have the below configuration file <span style="font-family:courier,monaco,monospace,sans-serif">kamailio.cfg
</span>but all the users are not being registered with authentication, so am I doing some mistake in it?</div><div style="font-size:10pt"><span style="font-family:courier,monaco,monospace,sans-serif"><br></span></div><div style="font-size:10pt">
<span style="font-family:courier,monaco,monospace,sans-serif"><br></span></div></div></div><div><div><div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!KAMAILIO</font></div><div>
<font size="2" style="font-family:courier,monaco,monospace,sans-serif">#</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># Kamailio (OpenSER) SIP Server v3.2 - default configuration script</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># - web: <a rel="nofollow" href="http://www.kamailio.org" target="_blank">http://www.kamailio.org</a></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># - git:
<a rel="nofollow" href="http://sip-router.org" target="_blank">http://sip-router.org</a></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># Direct your questions about this file to: <<a rel="nofollow" href="mailto:sr-users@lists.sip-router.org" target="_blank">sr-users@lists.sip-router.org</a>></font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># Refer to the Core CookBook at <a rel="nofollow" href="http://www.kamailio.org/dokuwiki/doku.php" target="_blank">http://www.kamailio.org/dokuwiki/doku.php</a></font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># for an explanation of possible statements, functions and parameters.</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># Several features can be enabled using '#!define
WITH_FEATURE' directives:</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># *** To run in debug mode: </font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># - define WITH_DEBUG</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># *** To enable mysql: </font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># - define WITH_MYSQL</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># *** To enable authentication
execute:</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># - enable mysql</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#
- define WITH_AUTH</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># - add users using 'kamctl'</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># *** To enable IP authentication execute:</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># - enable mysql</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># - enable authentication</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># - define WITH_IPAUTH</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># - add IP addresses with group id '1' to 'address'
table</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># *** To enable persistent user location execute:</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># - enable mysql</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># - define WITH_USRLOCDB</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># *** To enable presence server execute:</font></div><div>
<font size="2" style="font-family:courier,monaco,monospace,sans-serif"># - enable mysql</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#
- define WITH_PRESENCE</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># *** To enable nat traversal execute:</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># - define WITH_NAT</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># - install RTPProxy: <a rel="nofollow" href="http://www.rtpproxy.org" target="_blank">http://www.rtpproxy.org</a></font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># - start RTPProxy:</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># rtpproxy -l _your_public_ip_ -s udp:localhost:7722</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># *** To enable PSTN gateway routing execute:</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># - define WITH_PSTN</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># - set the value of pstn.gw_ip</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># - check route[PSTN] for regexp routing condition</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># *** To enable database aliases lookup execute:</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># - enable mysql</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># - define WITH_ALIASDB</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># *** To enable speed dial lookup execute:</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># - enable mysql</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># - define WITH_SPEEDDIAL</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># *** To enable multi-domain support execute:</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># - enable mysql</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># - define WITH_MULTIDOMAIN</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># *** To enable TLS support execute:</font></div><div>
<font size="2" style="font-family:courier,monaco,monospace,sans-serif"># - adjust CFGDIR/tls.cfg as needed</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># - define WITH_TLS</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># *** To enable XMLRPC support execute:</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># - define
WITH_XMLRPC</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># - adjust route[XMLRPC] for access policy</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># *** To enable anti-flood detection execute:</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># - adjust pike and htable=>ipban settings as needed (default is</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># block if more than 16 requests in 2 seconds and ban for 300 seconds)</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># - define WITH_ANTIFLOOD</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># *** To block 3XX redirect replies execute:</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># - define WITH_BLOCK3XX</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># *** To enable VoiceMail routing execute:</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># - define WITH_VOICEMAIL</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># - set the value of voicemail.srv_ip</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># - adjust the value of
voicemail.srv_port</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># *** To enhance accounting execute:</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># - enable mysql</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># - define WITH_ACCDB</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># - add following columns to database</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!ifdef ACCDB_COMMENT</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"> ALTER TABLE acc ADD COLUMN src_user VARCHAR(64) NOT NULL DEFAULT '';</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"> ALTER TABLE acc
ADD COLUMN src_domain VARCHAR(128) NOT NULL DEFAULT '';</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"> ALTER TABLE acc ADD COLUMN src_ip varchar(64) NOT NULL default '';</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"> ALTER TABLE acc ADD COLUMN dst_ouser VARCHAR(64) NOT NULL DEFAULT '';</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"> ALTER TABLE acc ADD COLUMN dst_user VARCHAR(64) NOT NULL DEFAULT '';</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"> ALTER TABLE acc ADD COLUMN dst_domain VARCHAR(128) NOT NULL DEFAULT '';</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"> ALTER TABLE missed_calls ADD COLUMN src_user VARCHAR(64)
NOT NULL DEFAULT '';</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"> ALTER TABLE missed_calls ADD COLUMN src_domain VARCHAR(128) NOT NULL DEFAULT '';</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"> ALTER TABLE missed_calls ADD COLUMN src_ip varchar(64) NOT NULL default '';</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"> ALTER TABLE missed_calls ADD COLUMN dst_ouser VARCHAR(64) NOT NULL DEFAULT '';</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"> ALTER TABLE missed_calls ADD COLUMN dst_user VARCHAR(64) NOT NULL DEFAULT '';</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"> ALTER TABLE missed_calls ADD COLUMN dst_domain
VARCHAR(128) NOT NULL DEFAULT '';</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!endif</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br>
</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">####### Defined Values #########</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># *** Value defines - IDs used later in config</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!ifdef WITH_MYSQL</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># - database URL - used to connect to database server by
modules such</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># as: auth_db, acc, usrloc, a.s.o.</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!define DBURL "mysql://faisal:faisal123@localhost/kamailio"</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!endif</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!ifdef WITH_MULTIDOMAIN</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># - the value for 'use_domain' parameters</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!define MULTIDOMAIN 1</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!else</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!define MULTIDOMAIN 0</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!endif</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># - flags</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># FLT_ - per transaction (message) flags</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#<span style="white-space:pre-wrap">        </span>FLB_ - per branch flags</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!define FLT_ACC 1</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!define FLT_ACCMISSED 2</font></div>
<div>
<font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!define FLT_ACCFAILED 3</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!define FLT_NATS 5</font></div><div>
<font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!define FLB_NATB 6</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!define FLB_NATSIPPING 7</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">####### Global Parameters #########</font></div><div>
<font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!ifdef
WITH_DEBUG</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">debug=4</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">log_stderror=yes</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!else</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">debug=2</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">log_stderror=no</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!endif</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">memdbg=5</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">memlog=5</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">log_facility=LOG_LOCAL0</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">fork=yes</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">children=4</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">/* uncomment the next line to disable TCP (default on) */</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#disable_tcp=yes</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">/* uncomment the next line to disable the auto discovery of local aliases</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"> based on reverse DNS on IPs (default on) */</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#auto_aliases=no</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">/* add local domain aliases */</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br>
</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">/* uncomment and configure the following line if you want Kamailio to </font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"> bind on a specific interface/port/proto (default bind on all available) */</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">listen=udp:<a rel="nofollow" href="http://192.162.15.23:5161" target="_blank">192.162.15.23:5161</a></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">listen=tcp:<a rel="nofollow" href="http://129.162.15.23:5161" target="_blank">129.162.15.23:5161</a></font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">alias="<a rel="nofollow" href="http://xmpp.kamailio.org" target="_blank">xmpp.kamailio.org</a>"</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br>
</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">/* port to listen to</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"> * - can be specified more than once if needed to listen on many ports */</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">port=5161</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!ifdef WITH_TLS</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">enable_tls=yes</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!endif</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br>
</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># life time of TCP connection when there is no traffic</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># - a bit higher than registration expires to cope with UA behind NAT</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">tcp_connection_lifetime=3605</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">####### Custom Parameters #########</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># These parameters can be modified runtime via RPC interface</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># - see the documentation of 'cfg_rpc' module.</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># Format:
<a rel="nofollow" href="http://group.id" target="_blank">group.id</a> = value 'desc' description</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># Access: $sel(<a rel="nofollow" href="http://cfg_get.group.id" target="_blank">cfg_get.group.id</a>) or @<a rel="nofollow" href="http://cfg_get.group.id" target="_blank">cfg_get.group.id</a></font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!ifdef WITH_PSTN</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># PSTN GW Routing</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># - pstn.gw_ip: valid IP or hostname as string value,
example:</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># pstn.gw_ip = "10.0.0.101" desc "My PSTN GW Address"</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># - by default is empty to avoid misrouting</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">pstn.gw_ip = "" desc "PSTN GW Address"</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!endif</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!ifdef WITH_VOICEMAIL</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># VoiceMail Routing on offline,
busy or no answer</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># - by default Voicemail server IP is empty to avoid misrouting</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">voicemail.srv_ip = "" desc "VoiceMail IP Address"</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">voicemail.srv_port = "5060" desc "VoiceMail Port"</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!endif</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">####### Modules Section ########</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># set paths to location of modules (to sources or installation folders)</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!ifdef WITH_SRCPATH</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">mpath="modules_k:modules"</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!else</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">mpath="/usr/local/lib/kamailio/modules_k/:/usr/local/lib/kamailio/modules/"</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!endif</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!ifdef WITH_MYSQL</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">loadmodule "db_mysql.so"</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!endif</font></div><div>
<font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">loadmodule "mi_fifo.so"</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">loadmodule "kex.so"</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">loadmodule "tm.so"</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">loadmodule "tmx.so"</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">loadmodule "sl.so"</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">loadmodule "rr.so"</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">loadmodule "pv.so"</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">loadmodule "maxfwd.so"</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">loadmodule "usrloc.so"</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">loadmodule "registrar.so"</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">loadmodule "textops.so"</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">loadmodule "siputils.so"</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">loadmodule "xlog.so"</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">loadmodule "sanity.so"</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">loadmodule "ctl.so"</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">loadmodule
"cfg_rpc.so"</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">loadmodule "mi_rpc.so"</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">loadmodule "acc.so"</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">loadmodule "xmpp.so"</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!ifdef WITH_AUTH</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">loadmodule "auth.so"</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">loadmodule "auth_db.so"</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!ifdef WITH_IPAUTH</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">loadmodule "permissions.so"</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!endif</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!endif</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br>
</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!ifdef WITH_ALIASDB</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">loadmodule "alias_db.so"</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!endif</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!ifdef WITH_SPEEDDIAL</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">loadmodule "speeddial.so"</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!endif</font></div>
<div>
<font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!ifdef WITH_MULTIDOMAIN</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">loadmodule "domain.so"</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!endif</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!ifdef WITH_PRESENCE</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">loadmodule
"presence.so"</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">loadmodule "presence_xml.so"</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!endif</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!ifdef WITH_NAT</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">loadmodule "nathelper.so"</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">loadmodule "rtpproxy.so"</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!endif</font></div><div>
<font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!ifdef WITH_TLS</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">loadmodule "tls.so"</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!endif</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!ifdef WITH_ANTIFLOOD</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">loadmodule "htable.so"</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">loadmodule "pike.so"</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!endif</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!ifdef WITH_XMLRPC</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">loadmodule "xmlrpc.so"</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!endif</font></div><div>
<font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!ifdef WITH_DEBUG</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">loadmodule "debugger.so"</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!endif</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># ----------------- setting module-specific parameters
---------------</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div>
<font size="2" style="font-family:courier,monaco,monospace,sans-serif"># ----- mi_fifo params -----</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("mi_fifo", "fifo_name", "/tmp/kamailio_fifo")</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># ----- tm params -----</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># auto-discard branches from previous serial forking
leg</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("tm",
"failure_reply_mode", 3)</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># default retransmission timeout: 30sec</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("tm", "fr_timer", 30000)</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># default invite retransmission timeout after 1xx: 120sec</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("tm", "fr_inv_timer", 120000)</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#--------XMPP Module Params---------------</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("xmpp", "domain_separator", "%")</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("xmpp", "xmpp_domain", "192.168.15.23")</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("xmpp", "xmpp_host", "192.168.15.23")</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("xmpp", "gateway_domain", "192.168.15.23")</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("xmpp", "backend", "server")</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("xmpp", "xmpp_port", 5299)</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("xmpp",
"xmpp_password", "casilla233")</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># ----- rr params -----</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># add value to ;lr param to cope with most of the UAs</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("rr", "enable_full_lr", 1)</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># do not append from tag to the RR (no need for this script)</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("rr", "append_fromtag", 0)</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># ----- registrar params -----</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("registrar", "method_filtering", 1)</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">/* uncomment the next line to disable parallel forking via location */</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># modparam("registrar", "append_branches", 0)</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">/* uncomment the next line not to allow more than 10 contacts per AOR
*/</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#modparam("registrar", "max_contacts", 10)</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># max value for expires of registrations</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("registrar", "max_expires", 3600)</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br>
</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># ----- acc params -----</font></div><div>
<font size="2" style="font-family:courier,monaco,monospace,sans-serif">/* what special events should be accounted ?
*/</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("acc", "early_media", 0)</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("acc", "report_ack", 0)</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("acc", "report_cancels", 0)</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">/* by default ww do not adjust the direct of the sequential requests.</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"> if you enable this parameter, be sure the enable "append_fromtag"</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"> in "rr" module */</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("acc",
"detect_direction", 0)</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">/* account triggers (flags) */</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("acc", "log_flag", FLT_ACC)</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("acc", "log_missed_flag", FLT_ACCMISSED)</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("acc", "log_extra", </font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>"src_user=$fU;src_domain=$fd;src_ip=$si;"</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">
        </span>"dst_ouser=$tU;dst_user=$rU;dst_domain=$rd")</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("acc", "failed_transaction_flag", FLT_ACCFAILED)</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">/* enhanced DB accounting */</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!ifdef WITH_ACCDB</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("acc", "db_flag", FLT_ACC)</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("acc", "db_missed_flag", FLT_ACCMISSED)</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("acc", "db_url", DBURL)</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("acc",
"db_extra",</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>"src_user=$fU;src_domain=$fd;src_ip=$si;"</font></div><div>
<font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>"dst_ouser=$tU;dst_user=$rU;dst_domain=$rd")</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!endif</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># ----- usrloc params -----</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">/* enable DB
persistency for location entries */</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!ifdef WITH_USRLOCDB</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("usrloc", "db_url", DBURL)</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("usrloc", "db_mode", 2)</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("usrloc", "use_domain", MULTIDOMAIN)</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!endif</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br>
</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># ----- auth_db params
-----</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!ifdef WITH_AUTH</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("auth_db", "db_url", DBURL)</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("auth_db", "calculate_ha1", yes)</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("auth_db", "password_column",
"password")</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("auth_db", "load_credentials", "")</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("auth_db", "use_domain", MULTIDOMAIN)</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># ----- permissions params -----</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!ifdef WITH_IPAUTH</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("permissions", "db_url", DBURL)</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("permissions", "db_mode", 1)</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!endif</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!endif</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># ----- alias_db params -----</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!ifdef WITH_ALIASDB</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("alias_db", "db_url", DBURL)</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("alias_db", "use_domain", MULTIDOMAIN)</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!endif</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># ----- speedial params -----</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!ifdef WITH_SPEEDDIAL</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("speeddial",
"db_url", DBURL)</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("speeddial", "use_domain", MULTIDOMAIN)</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!endif</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># ----- domain params -----</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!ifdef WITH_MULTIDOMAIN</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("domain", "db_url", DBURL)</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># use caching</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("domain", "db_mode", 1)</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># register callback to match myself condition with domains list</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("domain", "register_myself", 1)</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!endif</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br>
</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!ifdef WITH_PRESENCE</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># ----- presence params -----</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("presence", "db_url", DBURL)</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br>
</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># ----- presence_xml params -----</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("presence_xml", "db_url", DBURL)</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("presence_xml", "force_active", 1)</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!endif</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!ifdef WITH_NAT</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># ----- rtpproxy params -----</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("rtpproxy", "rtpproxy_sock", "udp:<a rel="nofollow" href="http://127.0.0.1:7722" target="_blank">127.0.0.1:7722</a>")</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># ----- nathelper params
-----</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("nathelper", "natping_interval", 30)</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("nathelper", "ping_nated_only", 1)</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("nathelper", "sipping_bflag", FLB_NATSIPPING)</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("nathelper", "sipping_from", "<a rel="nofollow" href="mailto:sip%3Apinger@kamailio.org" target="_blank">sip:pinger@kamailio.org</a>")</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># params needed for NAT traversal in other modules</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("nathelper|registrar",
"received_avp", "$avp(RECEIVED)")</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("usrloc", "nat_bflag", FLB_NATB)</font></div><div>
<font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!endif</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br>
</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!ifdef WITH_TLS</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># ----- tls params -----</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("tls", "config", "/usr/local/etc/kamailio/tls.cfg")</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!endif</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!ifdef WITH_ANTIFLOOD</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># ----- pike params -----</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("pike", "sampling_time_unit", 2)</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("pike", "reqs_density_per_unit", 16)</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("pike", "remove_latency", 4)</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br>
</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># ----- htable
params -----</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># ip ban htable with autoexpire after 5 minutes</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("htable", "htable", "ipban=>size=8;autoexpire=300;")</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!endif</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!ifdef WITH_XMLRPC</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># ----- xmlrpc params -----</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("xmlrpc", "route", "XMLRPC");</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("xmlrpc", "url_match", "^/RPC")</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!endif</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!ifdef WITH_DEBUG</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># ----- debugger params
-----</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">modparam("debugger", "cfgtrace", 1)</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!endif</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">####### Routing Logic ########</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br>
</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># Main SIP request routing logic</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># - processing of any incoming SIP request starts with this
route</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># - note: this is the same as route { ... }</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">request_route {</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span># per request initial checks</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>route(REQINIT);</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br>
</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span># NAT detection</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>route(NATDETECT);</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span># handle requests within SIP dialogs</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>route(WITHINDLG);</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br>
</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>### only initial requests (no To tag)</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br>
</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span># CANCEL processing</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>if (is_method("CANCEL"))</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>{</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                </span>if (t_check_trans())</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                        </span>t_relay();</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                </span>exit;</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>}</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">
        </span>t_check_trans();</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>#authentication</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>route(AUTH);</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">###############-----------------------------------XMPP Server Configuration----------------------------------------#################</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">if (uri =~ "sip:.+@sip-xmpp\.kamailio\.org") {</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"> #absorb transmission</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>if (!t_newtran()){</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                </span>sl_reply_error();</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                </span>exit;</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>}</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#Handling Instant Messaging</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>if (is_method("MESSAGE")){</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>xlog("message to XMPP: from <$fu> ru>\n");</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>if (xmpp_send_message()){</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>sl_send_reply("202", "Accepted");</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>} else
{</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>sl_send_reply("404", "Not found");</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>}</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>exit;</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"> }</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#Un-supported Type of SIP Message</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>xlog("message
to XMPP: method [$rm] not supported yet\n");</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>sl_send_reply("503", "Service unavailable");</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>exit;</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">}</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">##################--------------------------------XMPP Server Configuration-----------------------------------------------###############</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span># record routing for dialog forming requests (in case they are routed)</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span># - remove preloaded route headers</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>remove_hf("Route");</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>if (is_method("INVITE|SUBSCRIBE"))</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                </span>record_route();</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span># account only INVITEs</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>if (is_method("INVITE"))</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>{</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                </span>setflag(FLT_ACC); # do
accounting</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>}</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br>
</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span># dispatch requests to foreign domains</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>route(SIPOUT);</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">
        </span>### requests for my local domains</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span># handle presence related requests</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>route(PRESENCE);</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br>
</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span># handle registrations</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>route(REGISTRAR);</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>if ($rU==$null)</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>{</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                </span># request with no Username in RURI</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                </span>sl_send_reply("484","Address
Incomplete");</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                </span>exit;</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>}</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span># dispatch destinations to PSTN</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>route(PSTN);</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br>
</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span># user location service</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>route(LOCATION);</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>route(RELAY);</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">}</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br>
</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">route[RELAY] {</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span># enable additional event routes for forwarded requests</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span># - serial forking, RTP relaying handling, a.s.o.</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>if (is_method("INVITE|SUBSCRIBE"))
{</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                </span>t_on_branch("MANAGE_BRANCH");</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                </span>t_on_reply("MANAGE_REPLY");</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>}</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>if (is_method("INVITE")) {</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        
        </span>t_on_failure("MANAGE_FAILURE");</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>}</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br>
</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>if (!t_relay()) {</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                </span>sl_reply_error();</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>}</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>exit;</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">}</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># Per SIP request initial checks</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">route[REQINIT] {</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!ifdef WITH_ANTIFLOOD</font></div><div>
<font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span># flood dection from same IP and traffic ban for a while</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span># be sure you exclude checking trusted peers, such as pstn gateways</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span># - local host excluded (e.g., loop to self)</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>if(src_ip!=myself)</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>{</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        
        </span>if($sht(ipban=>$si)!=$null)</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                </span>{</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                        </span># ip is already blocked</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                        </span>xdbg("request from blocked IP - $rm from $fu (IP:$si:$sp)\n");</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                        </span>exit;</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                </span>}</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                </span>if (!pike_check_req())</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                </span>{</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                        </span>xlog("L_ALERT","ALERT: pike blocking $rm from $fu (IP:$si:$sp)\n");</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                        </span>$sht(ipban=>$si) = 1;</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                        </span>exit;</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                </span>}</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>}</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!endif</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>if (!mf_process_maxfwd_header("10")) {</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        
        </span>sl_send_reply("483","Too Many Hops");</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                </span>exit;</font></div><div>
<font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>}</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>if(!sanity_check("1511", "7"))</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>{</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                </span>xlog("Malformed SIP message from $si:$sp\n");</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                </span>exit;</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>}</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">}</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># Handle requests within SIP dialogs</font></div><div>
<font size="2" style="font-family:courier,monaco,monospace,sans-serif">route[WITHINDLG] {</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>if (has_totag()) {</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                </span># sequential request withing a dialog should</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                </span># take the path determined by record-routing</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                </span>if (loose_route()) {</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                        </span>if (is_method("BYE")) {</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                                </span>setflag(FLT_ACC); # do accounting ...</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                                </span>setflag(FLT_ACCFAILED); # ... even if the transaction fails</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                        </span>}</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                        </span>if ( is_method("ACK") ) {</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                                </span># ACK is forwarded
statelessy</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                                </span>route(NATMANAGE);</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                        </span>}</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                        </span>route(RELAY);</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                </span>} else {</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                        </span>if (is_method("SUBSCRIBE") && uri == myself)
{</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                                </span># in-dialog subscribe requests</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                                </span>route(PRESENCE);</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                                </span>exit;</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                        </span>}</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                        </span>if ( is_method("ACK") ) {</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                                </span>if ( t_check_trans() ) {</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                                        </span># no loose-route, but stateful ACK;</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                                        </span># must be an ACK after a 487</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                                        </span># or e.g. 404 from upstream server</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                                
        </span>t_relay();</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                                        </span>exit;</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                                </span>} else {</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                                        </span># ACK without matching transaction ... ignore and discard</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                                        </span>exit;</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                        
        </span>}</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                        </span>}</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                        </span>sl_send_reply("404","Not here");</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                </span>}</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                </span>exit;</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>}</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">}</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># Handle SIP registrations</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">route[REGISTRAR] {</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>if (is_method("REGISTER"))</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>{</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                </span>if(isflagset(FLT_NATS))</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                </span>{</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                        </span>setbflag(FLB_NATB);</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                        </span># uncomment next line to do SIP NAT pinging </font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                        </span>##
setbflag(FLB_NATSIPPING);</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                </span>}</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                </span>if (!save("location"))</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                        </span>sl_reply_error();</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br>
</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                </span>exit;</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>}</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">}</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># USER location service</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">route[LOCATION] {</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!ifdef WITH_SPEEDIAL</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">
        </span># search for short dialing - 2-digit extension</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>if($rU=~"^[0-9][0-9]$")</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                </span>if(sd_lookup("speed_dial"))</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                        </span>route(SIPOUT);</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!endif</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!ifdef WITH_ALIASDB</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span># search in DB-based aliases</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>if(alias_db_lookup("dbaliases"))</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                </span>route(SIPOUT);</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!endif</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>$avp(oexten) =
$rU;</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>if (!lookup("location")) {</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                </span>$var(rc) = $rc;</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                </span>route(TOVOICEMAIL);</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                </span>t_newtran();</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                </span>switch ($var(rc)) {</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                        </span>case -1:</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                        </span>case -3:</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                                </span>send_reply("404", "Not Found");</font></div>
</div></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                                </span>exit;</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                
        </span>case -2:</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                                </span>send_reply("405", "Method Not Allowed");</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                                </span>exit;</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                </span>}</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>}</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span># when routing via usrloc, log the missed calls also</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>if (is_method("INVITE"))</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>{</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                </span>setflag(FLT_ACCMISSED);</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>}</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">}</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"># Presence server route</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">route[PRESENCE] {</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>if(!is_method("PUBLISH|SUBSCRIBE"))</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                </span>return;</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif">#!ifdef WITH_PRESENCE</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>if (!t_newtran())</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>{</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                </span>sl_reply_error();</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                </span>exit;</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>};</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><br></font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>if(is_method("PUBLISH"))</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>{</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                </span>handle_publish();</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                </span>t_release();</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>}</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>else</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>if( is_method("SUBSCRIBE"))</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">        </span>{</font></div><div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap">                </span>handle_subscribe();</font></div>
<div><font size="2" style="font-family:courier,monaco,monospace,sans-serif"><span style="white-space:pre-wrap"></span></font></div></div></div></div></div></div></div></div></div></div>...<br><br>[Message clipped] <br>_______________________________________________<br>
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list<br>
<a rel="nofollow" href="mailto:sr-users@lists.sip-router.org" target="_blank">sr-users@lists.sip-router.org</a><br>
<a rel="nofollow" href="http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users" target="_blank">http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users</a><br>
<br></blockquote></div><br></div>
</div><br><br> </div></div></div> </div> </div></div></div><br>_______________________________________________<br>
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list<br>
<a href="mailto:sr-users@lists.sip-router.org">sr-users@lists.sip-router.org</a><br>
<a href="http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users" target="_blank">http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users</a><br>
<br></blockquote></div><br></div>