<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7638.1">
<TITLE>RE: FW: [Users] OpenSER config help to talk to PSTN..</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/plain format -->

<P><FONT SIZE=2>Found the issue now, it was an original problem I had but I'm not sure how it went away in the first place. There is a problem with the mysql connection, which is located on another server.<BR>
<BR>
If I attempt to just run the mysql client manually it still does not work..<BR>
<BR>
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)<BR>
<BR>
seen this error a million times on google but couldn't really find any fixes that worked for me? This error occured earlier on when I first configured openser but It went away and I'm not sure how it happened.<BR>
<BR>
I rebooted the machine and i'm guessing this started again due to it<BR>
<BR>
Thanks<BR>
Nick<BR>
<BR>
<BR>
-----Original Message-----<BR>
From: Bogdan-Andrei Iancu [<A HREF="mailto:bogdan@voice-system.ro">mailto:bogdan@voice-system.ro</A>]<BR>
Sent: Wed 10/18/2006 3:51 PM<BR>
To: Nick De Cristofaro<BR>
Cc: users@openser.org<BR>
Subject: Re: FW: [Users] OpenSER config help to talk to PSTN..<BR>
<BR>
Hi,<BR>
<BR>
you might have start-up errors - check you syslog to see what is the<BR>
problem.<BR>
<BR>
regards,<BR>
bogdan<BR>
<BR>
Nick De Cristofaro wrote:<BR>
<BR>
&gt; I've been modying the files so it gets no errors now if I attempt to<BR>
&gt; run openser, nothing happens.. no processes are starting but it is<BR>
&gt; saying it is.<BR>
&gt;<BR>
&gt; bash-3.00# openser<BR>
&gt; Listening on<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; udp: 127.0.0.1 [127.0.0.1]:5060<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; udp: 212.97.202.136 [212.97.202.136]:5060<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tcp: 127.0.0.1 [127.0.0.1]:5060<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tcp: 212.97.202.136 [212.97.202.136]:5060<BR>
&gt; Aliases:<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tcp: loghost:5060<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tcp: ser-zone:5060<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tcp: localhost:5060<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; udp: loghost:5060<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; udp: ser-zone:5060<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; udp: localhost:5060<BR>
&gt;<BR>
&gt; after running ps -A , nothing is showing up in there.<BR>
&gt;<BR>
&gt; Also, openserctl is not working correctly, if I attempt to start it<BR>
&gt; from there &quot;openserctl start&quot; it says there is no pid file present in<BR>
&gt; /var/run, but if i create an empty one then it says there is a file ,<BR>
&gt; is there a process running? contradicting outlooks.. ? it wants a file<BR>
&gt; and then it doesn't ?<BR>
&gt;<BR>
&gt;<BR>
&gt; -----Original Message-----<BR>
&gt; From: Bogdan-Andrei Iancu [<A HREF="mailto:bogdan@voice-system.ro">mailto:bogdan@voice-system.ro</A>]<BR>
&gt; Sent: Tue 10/17/2006 12:45 PM<BR>
&gt; To: Nick De Cristofaro<BR>
&gt; Cc: users@openser.org<BR>
&gt; Subject: Re: FW: [Users] OpenSER config help to talk to PSTN..<BR>
&gt;<BR>
&gt; Hi Nick,<BR>
&gt;<BR>
&gt; it's because of the forward function which changed its prototype;<BR>
&gt; instead of<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; forward(uri:host, uri:port);<BR>
&gt; use<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; forward();<BR>
&gt;<BR>
&gt; see<BR>
&gt; <A HREF="http://openser.org/dokuwiki/doku.php/openser_v1.1.0_core_cookbook?#forward_destination">http://openser.org/dokuwiki/doku.php/openser_v1.1.0_core_cookbook?#forward_destination</A><BR>
&gt;<BR>
&gt; regards,<BR>
&gt; bogdan<BR>
&gt;<BR>
&gt;<BR>
&gt; Nick De Cristofaro wrote:<BR>
&gt;<BR>
&gt; &gt; below is my config file i modified it a bit.. still pretty basic.<BR>
&gt; &gt; trying to get basic connectivity to a PSTN gateway. I modified an<BR>
&gt; &gt; example file.<BR>
&gt; &gt;<BR>
&gt; &gt; errors I get are:<BR>
&gt; &gt;<BR>
&gt; &gt; bash-3.00# openser -c<BR>
&gt; &gt;&nbsp; 0(6841) parse error (98,21-28): parse error<BR>
&gt; &gt;&nbsp; 0(6841) parse error (98,29-30): bad arguments<BR>
&gt; &gt;&nbsp; 0(6841) parse error (121,33-36): parse error<BR>
&gt; &gt;&nbsp; 0(6841) parse error (121,51-52): bad forwardargument<BR>
&gt; &gt;&nbsp; 0(6841) parse error (139,55-56): unknown command, missing loadmodule?<BR>
&gt; &gt;<BR>
&gt; &gt;&nbsp; 0(6841) parse error (145,55-56): unknown command, missing loadmodule?<BR>
&gt; &gt;<BR>
&gt; &gt;&nbsp; 0(6841) parse error (151,55-56): unknown command, missing loadmodule?<BR>
&gt; &gt;<BR>
&gt; &gt;&nbsp; 0(6841) parse error (163,10-11): parse error<BR>
&gt; &gt;&nbsp; 0(6841) parse error (163,10-11):<BR>
&gt; &gt; ERROR: bad config file (9 errors)<BR>
&gt; &gt;<BR>
&gt; &gt;<BR>
&gt; &gt; #<BR>
&gt; &gt; # $Id: openser.cfg,v 1.6.2.1 2006/07/17 15:51:03 klaus_darilion Exp $<BR>
&gt; &gt; #<BR>
&gt; &gt; # simple quick-start config script<BR>
&gt; &gt; #<BR>
&gt; &gt;<BR>
&gt; &gt; # ----------- global configuration parameters ------------------------<BR>
&gt; &gt;<BR>
&gt; &gt; debug=3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # debug level (cmd line: -dddddddddd)<BR>
&gt; &gt; fork=yes<BR>
&gt; &gt; log_stderror=no&nbsp;&nbsp;&nbsp; # (cmd line: -E)<BR>
&gt; &gt; alias=ip<BR>
&gt; &gt; /* Uncomment these lines to enter debugging mode<BR>
&gt; &gt; fork=no<BR>
&gt; &gt; log_stderror=yes<BR>
&gt; &gt; */<BR>
&gt; &gt;<BR>
&gt; &gt; check_via=no&nbsp;&nbsp;&nbsp; # (cmd. line: -v)<BR>
&gt; &gt; dns=no&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # (cmd. line: -r)<BR>
&gt; &gt; rev_dns=no&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # (cmd. line: -R)<BR>
&gt; &gt; port=5060<BR>
&gt; &gt; children=4<BR>
&gt; &gt; fifo=&quot;/tmp/openser_fifo&quot;<BR>
&gt; &gt;<BR>
&gt; &gt; #<BR>
&gt; &gt; # uncomment the following lines for TLS support<BR>
&gt; &gt; #disable_tls = 0<BR>
&gt; &gt; #listen = tls:your_IP:5061<BR>
&gt; &gt; #tls_verify_server = 1<BR>
&gt; &gt; #tls_verify_client = 1<BR>
&gt; &gt; #tls_require_client_certificate = 0<BR>
&gt; &gt; #tls_method = TLSv1<BR>
&gt; &gt; #tls_certificate = &quot;/usr/local/etc/openser/tls/user/user-cert.pem&quot;<BR>
&gt; &gt; #tls_private_key = &quot;/usr/local/etc/openser/tls/user/user-privkey.pem&quot;<BR>
&gt; &gt; #tls_ca_list = &quot;/usr/local/etc/openser/tls/user/user-calist.pem&quot;<BR>
&gt; &gt;<BR>
&gt; &gt; # ------------------ module loading ----------------------------------<BR>
&gt; &gt;<BR>
&gt; &gt; # Uncomment this if you want to use SQL database<BR>
&gt; &gt; loadmodule &quot;/usr/local/lib/openser/modules/mysql.so&quot;<BR>
&gt; &gt;<BR>
&gt; &gt; loadmodule &quot;/usr/local/lib/openser/modules/sl.so&quot;<BR>
&gt; &gt; loadmodule &quot;/usr/local/lib/openser/modules/tm.so&quot;<BR>
&gt; &gt; loadmodule &quot;/usr/local/lib/openser/modules/rr.so&quot;<BR>
&gt; &gt; loadmodule &quot;/usr/local/lib/openser/modules/maxfwd.so&quot;<BR>
&gt; &gt; loadmodule &quot;/usr/local/lib/openser/modules/usrloc.so&quot;<BR>
&gt; &gt; loadmodule &quot;/usr/local/lib/openser/modules/registrar.so&quot;<BR>
&gt; &gt; loadmodule &quot;/usr/local/lib/openser/modules/textops.so&quot;<BR>
&gt; &gt;<BR>
&gt; &gt; # Uncomment this if you want digest authentication<BR>
&gt; &gt; # mysql.so must be loaded !<BR>
&gt; &gt; #loadmodule &quot;/usr/local/lib/openser/modules/auth.so&quot;<BR>
&gt; &gt; #loadmodule &quot;/usr/local/lib/openser/modules/auth_db.so&quot;<BR>
&gt; &gt;<BR>
&gt; &gt; # ------------------ logs -------------------------------------------<BR>
&gt; &gt;<BR>
&gt; &gt; log_facility=LOG_LOCAL7<BR>
&gt; &gt; #Add the xlog module:<BR>
&gt; &gt; loadmodule &quot;/usr/local/lib/openser/modules/xlog.so&quot;<BR>
&gt; &gt;<BR>
&gt; &gt; # ----------------- setting module-specific parameters ---------------<BR>
&gt; &gt;<BR>
&gt; &gt; # -- usrloc params --<BR>
&gt; &gt;<BR>
&gt; &gt; modparam(&quot;usrloc&quot;, &quot;db_mode&quot;,&nbsp;&nbsp; 0)<BR>
&gt; &gt;<BR>
&gt; &gt; # Uncomment this if you want to use SQL database<BR>
&gt; &gt; # for persistent storage and comment the previous line<BR>
&gt; &gt; #modparam(&quot;usrloc&quot;, &quot;db_mode&quot;, 2)<BR>
&gt; &gt;<BR>
&gt; &gt; # -- auth params --<BR>
&gt; &gt; # Uncomment if you are using auth module<BR>
&gt; &gt; #<BR>
&gt; &gt; #modparam(&quot;auth_db&quot;, &quot;calculate_ha1&quot;, yes)<BR>
&gt; &gt; #<BR>
&gt; &gt; # If you set &quot;calculate_ha1&quot; parameter to yes (which true in this<BR>
&gt; config),<BR>
&gt; &gt; # uncomment also the following parameter)<BR>
&gt; &gt; #<BR>
&gt; &gt; #modparam(&quot;auth_db&quot;, &quot;password_column&quot;, &quot;password&quot;)<BR>
&gt; &gt;<BR>
&gt; &gt; # -- rr params --<BR>
&gt; &gt; # add value to ;lr param to make some broken UAs happy<BR>
&gt; &gt; modparam(&quot;rr&quot;, &quot;enable_full_lr&quot;, 1)<BR>
&gt; &gt;<BR>
&gt; &gt; # -------------------------&nbsp; request routing logic -------------------<BR>
&gt; &gt; # main routing logic<BR>
&gt; &gt;<BR>
&gt; &gt; route{<BR>
&gt; &gt;<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* ********* ROUTINE CHECKS&nbsp;<BR>
&gt; ********************************** */<BR>
&gt; &gt;<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # filter too old messages<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!mf_process_maxfwd_header(&quot;10&quot;)) {<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; log(&quot;LOG: Too many hops\n&quot;);<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sl_send_reply(&quot;483&quot;,&quot;Too Many Hops&quot;);<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return;<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (len_gt( max_len )) {<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sl_send_reply(&quot;513&quot;, &quot;Wow -- Message too large&quot;);<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return;<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };<BR>
&gt; &gt;<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* ********* RR ********************************** */<BR>
&gt; &gt;<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* grant Route routing if route headers present */<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (loose_route()) { t_relay(); return; };<BR>
&gt; &gt;<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* record-route INVITEs -- all subsequent requests must visit<BR>
&gt; &gt; us */<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (method==&quot;INVITE&quot;) {<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; record_route();<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };<BR>
&gt; &gt;<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # now check if it really is a PSTN destination which should be<BR>
&gt; &gt; handled<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # by our gateway; if not, and the request is an invitation,<BR>
&gt; &gt; drop it --<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # we cannot terminate it in PSTN; relay non-INVITE requests --<BR>
&gt; &gt; it may<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # be for example BYEs sent by gateway to call originator<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!uri=~&quot;sip:\+?[0-9]+@.*&quot;) {<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (method==&quot;INVITE&quot;) {<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sl_send_reply(&quot;403&quot;, &quot;Call cannot be served<BR>
&gt; &gt; here&quot;);<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; forward(uri:host, uri:port);<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return;<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };<BR>
&gt; &gt;<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # account completed transactions via syslog<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; setflag(1);<BR>
&gt; &gt;<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # authorize only for INVITEs -- RR/Contact may result<BR>
&gt; &gt; in weird<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # things showing up in d-uri that would return our<BR>
&gt; &gt; logic; our<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # major concern is INVITE which causes PSTN costs<BR>
&gt; &gt;<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (method==&quot;INVITE&quot;) {<BR>
&gt; &gt;<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # does the authenticated user have a<BR>
&gt; &gt; permission for local<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # calls (destinations beginning with a single<BR>
&gt; &gt; zero)?<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # (i.e., is he in the &quot;local&quot; group?)<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (uri=~&quot;sip:0[1-9][0-9]+@.*&quot;) {<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!is_user_in(&quot;credentials&quot;,<BR>
&gt; &quot;local&quot;)) {<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sl_send_reply(&quot;403&quot;, &quot;No<BR>
&gt; &gt; permission for local calls&quot;);<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return;<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # the same for long-distance (destinations<BR>
&gt; &gt; begin with two zeros&quot;)<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else if (uri=~&quot;sip:00[1-9][0-9]+@.*&quot;) {<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!is_user_in(&quot;credentials&quot;, &quot;ld&quot;)) {<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sl_send_reply(&quot;403&quot;, &quot; no<BR>
&gt; &gt; permission for LD &quot;);<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return;<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # the same for international calls (three zeros)<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else if (uri=~&quot;sip:000[1-9][0-9]+@.*&quot;) {<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!is_user_in(&quot;credentials&quot;, &quot;int&quot;)) {<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sl_send_reply(&quot;403&quot;,<BR>
&gt; &gt; &quot;International permissions needed&quot;);<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return;<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # everything else ( e.g., interplanetary<BR>
&gt; &gt; calls) is denied<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sl_send_reply(&quot;403&quot;, &quot;Forbidden&quot;);<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return;<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };<BR>
&gt; &gt;<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }; # INVITE to authorized PSTN<BR>
&gt; &gt;<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }; # authorized PSTN<BR>
&gt; &gt;<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # if you have passed through all the checks, let your call go<BR>
&gt; &gt; to GW!<BR>
&gt; &gt;<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rewritehostport(&quot;ip:5060&quot;);<BR>
&gt; &gt;<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # forward the request now<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!t_relay()) {<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sl_reply_error();<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return;<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };<BR>
&gt; &gt;<BR>
&gt; &gt; }<BR>
&gt; &gt; bash-3.00#<BR>
&gt; &gt;<BR>
&gt; &gt;------------------------------------------------------------------------<BR>
&gt; &gt;<BR>
&gt; &gt;_______________________________________________<BR>
&gt; &gt;Users mailing list<BR>
&gt; &gt;Users@openser.org<BR>
&gt; &gt;<A HREF="http://openser.org/cgi-bin/mailman/listinfo/users">http://openser.org/cgi-bin/mailman/listinfo/users</A><BR>
&gt; &gt;<BR>
&gt; &gt;<BR>
&gt;<BR>
&gt;<BR>
<BR>
<BR>
</FONT>
</P>

</BODY>
</HTML>