[Serusers] ser asterisk pstn

Greger V. Teigre greger at teigre.com
Thu Aug 16 12:42:25 CEST 2007


Well, you decide where to strip, depending on your dial plan.  [0-9]{10} 
matches exactly 10 digits.

914082743304 is twelve.

       if (uri=~"^sip:1[0-9]{10}@bigu.edu") {

               strip(1);

       };

does not match, neither the 011 if test, so if you add strip(2); it will 
work (remember the ;)
g-)

ronald at stanford.edu wrote:
> Greger,
>
> thanks for the reply.  I have not modified the original gateway/pstn  
> configuration as far as digit minipulation goes. How and where would I  
> strip the digits in ser.cfg?  I tried entering strip(2) just before  
> the if (uri=~"^sip:[0-9]{10}@bigu.edu") statement, but the config  
> failed to start. It looked like this
>
> strip(2)
> if (uri=~"^sip:[0-9]{10}@bigu.edu")
>
> thanks,
>
>
> Quoting "Greger V. Teigre" <greger at teigre.com>:
>
>   
>> if (uri=~"^sip:[0-9]{10}@bigu.edu") {        # Domestic PSTN
>> probably doesn't match the r-uri you have at that point. Have you
>> stripped 2 digits by then?
>> g-)
>>
>> ronald at stanford.edu wrote:
>>     
>>> hello all,
>>>
>>> I am stuck and need your help for +xlite +ser +asterisk +pstn   
>>> calls.  I dial 914082743304 and get "caller Not Found".   I am able  
>>>  to authenticate and complete sip -> sip calls, but cannot complete  
>>>  PSTN calls  I did monitor asterisk and no reroute was offered.
>>>
>>> please help!
>>>
>>>
>>> permissions.allow:
>>>
>>> ^sip:91[0-9]{10}@bigu\.edu$
>>> ^sip:9011[0-9]*@bigu\.edu$
>>> ^sip:9[0-9]{10}@bigu\.edu$
>>>
>>>
>>> ngrep -vvvv proto udp port 5060 produces the following response:
>>>
>>> 171.66.176.123:47729 -> 192.168.11.243:5060
>>>  INVITE sip:914082743304 at bigu.edu SIP/2.0..Via: SIP/2.0/UDP   
>>> 192.168.1.100:47729;br
>>>    
>>> anch=z9hG4bK-d87543-4f5eb56fc40f1f43-1--d87543-;rport..Max-Forwards:   
>>> 70..Contact: <si
>>>  p:cell at 192.168.1.100:47729>..To:   
>>> "914082743304"<sip:914082743304 at bigu.edu>..From:
>>>   "SER EXpress"<sip:cell at bigu.edu>;tag=b9283f27..Call-ID:   
>>> Y2JkY2ZmMDQyMjQ3YTljYTg5
>>>  NTdlOGFiNGUyZWVlY2Q...CSeq: 1 INVITE..Allow: INVITE, ACK, CANCEL,   
>>> OPTIONS, BYE, REFER
>>>  , NOTIFY, MESSAGE, SUBSCRIBE, INFO..Content-Type:   
>>> application/sdp..User-Agent: eyeBea
>>>  m release 1011s stamp 41121..Content-Length: 421....v=0..o=- 1 2   
>>> IN IP4 192.168.1.100
>>>  ..s=CounterPath eyeBeam 1.5..c=IN IP4 192.168.1.100..t=0   
>>> 0..m=audio 32942 RTP/AVP 107
>>>   100 106 6 0 105 8 18 3 5 101..a=fmtp:18 annexb=yes..a=fmtp:101   
>>> 0-15..a=rtpmap:107 BV
>>>  32/16000..a=rtpmap:100 SPEEX/16000..a=rtpmap:106   
>>> SPEEX-FEC/16000..a=rtpmap:105 SPEEX-
>>>  FEC/8000..a=rtpmap:18 G729/8000..a=rtpmap:101   
>>> telephone-event/8000..a=sendrecv..a=x-r
>>>  tp-session-id:AEB31A44A04C4B32BD3D72349E4FBB80..                    
>>>                   #
>>> U 192.168.11.243:5060 -> 171.66.176.123:47729
>>>  SIP/2.0 404 caller Not Found..Via: SIP/2.0/UDP   
>>> 192.168.1.100:47729;branch=z9hG4bK-d875
>>>    
>>> 43-4f5eb56fc40f1f43-1--d87543-;rport=47729;received=171.66.176.123..To:   
>>> "914082743304
>>>    
>>> "<sip:914082743304 at bigu.edu>;tag=21f9bfca23409407a263e4a7e40abe9d.f2a8..From:   
>>> "SE
>>>  R EXpress"<sip:cell at bigu.edu>;tag=b9283f27..Call-ID:   
>>> Y2JkY2ZmMDQyMjQ3YTljYTg5NTdl
>>>  OGFiNGUyZWVlY2Q...CSeq: 1 INVITE..Server: Sip EXpress router   
>>> (0.9.4 (i386/linux))..Co
>>>  ntent-Length: 0..Warning: 392 192.168.11.243:5060 "Noisy feedback   
>>> tells:  pid=15307 re
>>>  q_src_ip=171.66.176.123 req_src_port=47729   
>>> in_uri=sip:914082743304 at bigu.edu out_u
>>>  ri=sip:914082743304 at bigu.edu via_cnt==1"....
>>>
>>>
>>> debug=3
>>>
>>> fork=yes
>>>
>>> log_stderror=no
>>>
>>>
>>>
>>> listen=1xx.x4.11.xx3                        # INSERT YOUR IP ADDRESS HERE
>>>
>>> port=5060
>>>
>>> children=4
>>>
>>> alias=sip2.bigu.edu
>>>
>>>
>>>
>>> dns=no
>>>
>>> rev_dns=no
>>>
>>> fifo="/tmp/ser_fifo"
>>>
>>> fifo_db_url="mysql://ser:heslo@localhost/ser"
>>>
>>>
>>>
>>> loadmodule "/usr/local/lib/ser/modules/mysql.so"
>>>
>>> loadmodule "/usr/local/lib/ser/modules/sl.so"
>>>
>>> loadmodule "/usr/local/lib/ser/modules/tm.so"
>>>
>>> loadmodule "/usr/local/lib/ser/modules/rr.so"
>>>
>>> loadmodule "/usr/local/lib/ser/modules/maxfwd.so"
>>>
>>> loadmodule "/usr/local/lib/ser/modules/usrloc.so"
>>>
>>> loadmodule "/usr/local/lib/ser/modules/registrar.so"
>>>
>>> loadmodule "/usr/local/lib/ser/modules/auth.so"
>>>
>>> loadmodule "/usr/local/lib/ser/modules/auth_db.so"
>>>
>>> loadmodule "/usr/local/lib/ser/modules/uri.so"
>>>
>>> loadmodule "/usr/local/lib/ser/modules/uri_db.so"
>>>
>>> loadmodule "/usr/local/lib/ser/modules/domain.so"
>>>
>>> loadmodule "/usr/local/lib/ser/modules/mediaproxy.so"
>>>
>>> loadmodule "/usr/local/lib/ser/modules/nathelper.so"
>>>
>>> loadmodule "/usr/local/lib/ser/modules/textops.so"
>>>
>>> loadmodule "/usr/local/lib/ser/modules/avpops.so"
>>>
>>> loadmodule "/usr/local/lib/ser/modules/permissions.so"
>>>
>>>
>>>
>>> modparam("auth_db|permissions|uri_db|usrloc", "db_url",   
>>> "mysql://ser:heslo@localhost/ser")
>>>
>>> modparam("auth_db", "calculate_ha1", 1)
>>>
>>> modparam("auth_db", "password_column", "password")
>>>
>>>
>>>
>>> modparam("nathelper", "rtpproxy_disable", 1)
>>>
>>> modparam("nathelper", "natping_interval", 0)
>>>
>>>
>>>
>>> modparam("mediaproxy","natping_interval", 30)
>>>
>>> modparam("mediaproxy","mediaproxy_socket", "/var/run/mediaproxy.sock")
>>>
>>> modparam("mediaproxy","sip_asymmetrics","/usr/local/etc/ser/sip-clients")
>>>
>>> modparam("mediaproxy","rtp_asymmetrics","/usr/local/etc/ser/rtp-clients")
>>>
>>>
>>>
>>> modparam("usrloc", "db_mode", 2)
>>>
>>>
>>>
>>> modparam("registrar", "nat_flag", 6)
>>>
>>>
>>>
>>> modparam("rr", "enable_full_lr", 1)
>>>
>>>
>>>
>>> modparam("tm", "fr_inv_timer", 27)
>>>
>>> modparam("tm", "fr_inv_timer_avp", "inv_timeout")
>>>
>>> #added these timers for voicemail forwarding
>>>
>>> modparam("tm", "fr_inv_timer", 25)
>>>
>>> modparam("tm", "noisy_ctimer", 1)
>>>
>>>
>>>
>>> modparam("permissions", "db_mode", 1)
>>>
>>> modparam("permissions", "trusted_table", "trusted")
>>>
>>>
>>>
>>> route {
>>>
>>>
>>>
>>>        # -----------------------------------------------------------------
>>>
>>>        # Sanity Check Section
>>>
>>>        # -----------------------------------------------------------------
>>>
>>>        if (!mf_process_maxfwd_header("10")) {
>>>
>>>                sl_send_reply("483", "Too Many Hops");
>>>
>>>                break;
>>>
>>>        };
>>>
>>>
>>>
>>>        if (msg:len > max_len) {
>>>
>>>                sl_send_reply("513", "Message Overflow");
>>>
>>>                break;
>>>
>>>        };
>>>
>>>
>>>
>>>        # -----------------------------------------------------------------
>>>
>>>        # Record Route Section
>>>
>>>        # -----------------------------------------------------------------
>>>
>>>        if (method=="INVITE" && client_nat_test("3")) {
>>>
>>>                # INSERT YOUR IP ADDRESS HERE
>>>
>>>                record_route_preset("1xx.x4.11.xx3:5060;nat=yes");
>>>
>>>        } else if (method!="REGISTER") {                         
>>> record_route();               };
>>>
>>>
>>>
>>>        # -----------------------------------------------------------------
>>>
>>>        # Call Tear Down Section
>>>
>>>        # -----------------------------------------------------------------
>>>
>>>        if (method=="BYE" || method=="CANCEL") {
>>>
>>>                end_media_session();
>>>
>>>        };
>>>
>>>
>>>
>>>        # -----------------------------------------------------------------
>>>
>>>        # Loose Route Section
>>>
>>>        # -----------------------------------------------------------------
>>>
>>>        if (loose_route()) {
>>>
>>>
>>>
>>>                if ((method=="INVITE" || method=="REFER") && !has_totag()) {
>>>
>>>                        sl_send_reply("403", "Forbidden");
>>>
>>>                        break;
>>>
>>>                };
>>>
>>>
>>>
>>>                if (method=="INVITE") {
>>>
>>>
>>>
>>>                        if (!allow_trusted()) {
>>>
>>>                                if   
>>> (!proxy_authorize("sip2.bigu.edu","subscriber")) {
>>>
>>>                                        proxy_challenge("sip2.bigu.edu","0");
>>>
>>>                                        break;
>>>
>>>                                } else if (!check_from()) {
>>>
>>>                                        sl_send_reply("403", "Use From=ID");
>>>
>>>                                        break;
>>>
>>>                                };
>>>
>>>                                consume_credentials();
>>>
>>>                        };
>>>
>>>
>>>
>>>                        if   
>>> (client_nat_test("3")||search("^Route:.*;nat=yes")){
>>>
>>>                                setflag(6);
>>>
>>>                                use_media_proxy();
>>>
>>>                        };
>>>
>>>                };
>>>
>>>
>>>
>>>                route(1);
>>>
>>>                break;
>>>
>>>        };
>>>
>>>
>>>
>>>        # -----------------------------------------------------------------
>>>
>>>        # Call Type Processing Section
>>>
>>>        # -----------------------------------------------------------------
>>>
>>>        if (!is_uri_host_local()) {
>>>
>>>                if (is_from_local() || allow_trusted()) {
>>>
>>>                        route(4);
>>>
>>>                        route(1);
>>>
>>>                } else {
>>>
>>>                        sl_send_reply("403", "Forbidden");
>>>
>>>                };
>>>
>>>                break;
>>>
>>>        };
>>>
>>>
>>>
>>>        if (method=="ACK") {
>>>
>>>                route(1);
>>>
>>>                break;
>>>
>>>        } else if (method=="CANCEL") {
>>>
>>>                route(1);
>>>
>>>                break;
>>>
>>>        } else if (method=="INVITE") {
>>>
>>>                route(3);
>>>
>>>                break;
>>>
>>>        } else         if (method=="REGISTER") {
>>>
>>>                route(2);
>>>
>>>                break;
>>>
>>>        };
>>>
>>>
>>>
>>>        lookup("aliases");
>>>
>>>        if (!is_uri_host_local()) {
>>>
>>>                route(4);
>>>
>>>                route(1);
>>>
>>>                break;
>>>
>>>        };
>>>
>>>
>>>
>>>        if (!lookup("location")) {
>>>
>>>                sl_send_reply("404", "User Not Found");
>>>
>>>                break;
>>>
>>>        };
>>>
>>>
>>>
>>>        route(1);
>>>
>>> }
>>>
>>>
>>>
>>> route[1] {
>>>
>>>
>>>
>>>        # -----------------------------------------------------------------
>>>
>>>        # Default Message Handler
>>>
>>>        # -----------------------------------------------------------------
>>>
>>>
>>>
>>>        t_on_reply("1");
>>>
>>>
>>>
>>>        if (!t_relay()) {
>>>
>>>
>>>
>>>                if (method=="INVITE" || method=="ACK") {
>>>
>>>                        end_media_session();
>>>
>>>                };
>>>
>>>
>>>
>>>                sl_reply_error();
>>>
>>>        };
>>>
>>> }
>>>
>>>
>>>
>>> route[2] {
>>>
>>>
>>>
>>>        # -----------------------------------------------------------------
>>>
>>>        # REGISTER Message Handler
>>>
>>>        # -----------------------------------------------------------------
>>>
>>>
>>>
>>>        sl_send_reply("100", "Trying");
>>>
>>>
>>>
>>>        if (!search("^Contact:[ ]*\*") && client_nat_test("7")) {
>>>
>>>                setflag(6);
>>>
>>>                fix_nated_register();
>>>
>>>                force_rport();
>>>
>>>        };
>>>
>>>
>>>
>>>        if (!www_authorize("sip2.bigu.edu","subscriber")) {
>>>
>>>                www_challenge("sip2.bigu.edu","0");
>>>
>>>                break;
>>>
>>>        };
>>>
>>>
>>>
>>>        if (!check_to()) {
>>>
>>>                sl_send_reply("401", "Unauthorized");
>>>
>>>                break;
>>>
>>>        };
>>>
>>>
>>>
>>>        consume_credentials();
>>>
>>>
>>>
>>>        if (!save("location")) {
>>>
>>>                sl_reply_error();
>>>
>>>        };
>>>
>>> }
>>>
>>>
>>>
>>> route[3] {
>>>
>>>
>>>
>>>        # -----------------------------------------------------------------
>>>
>>>        # INVITE Message Handler
>>>
>>>        # -----------------------------------------------------------------
>>>
>>>
>>>
>>>        if (client_nat_test("3")) {
>>>
>>>                setflag(7);
>>>
>>>                force_rport();
>>>
>>>                fix_nated_contact();
>>>
>>>        };
>>>
>>>
>>>
>>>        if (!allow_trusted()) {
>>>
>>>
>>>
>>>                if (!proxy_authorize("sip2.bigu.edu","subscriber")) {
>>>
>>>                        proxy_challenge("sip2.bigu.edu","0");
>>>
>>>                        break;
>>>
>>>                } else if (!check_from()) {
>>>
>>>                        sl_send_reply("403", "Use From=ID");
>>>
>>>                        break;
>>>
>>>                };
>>>
>>>
>>>
>>>                consume_credentials();
>>>
>>>        };
>>>
>>>
>>>
>>>        if (uri=~"^sip:1[0-9]{10}@bigu.edu") {
>>>
>>>                strip(1);
>>>
>>>        };
>>>
>>>
>>>
>>>        lookup("aliases");
>>>
>>>        if (!is_uri_host_local()) {
>>>
>>>                route(4);
>>>
>>>                route(1);
>>>
>>>                break;
>>>
>>>        };
>>>
>>>
>>>
>>>        if (uri=~"^sip:011[0-9]*@bigu.edu") {                #   
>>> International PSTN
>>>
>>>                route(4);
>>>
>>>                route(5);
>>>
>>>                break;
>>>
>>>
>>>
>>>        };
>>>
>>>
>>>
>>>        if (!lookup("location")) {
>>>
>>>                if (uri=~"^sip:[0-9]{10}@bigu.edu") {        # Domestic PSTN
>>>
>>>                        route(4);
>>>
>>>                        route(5);
>>>
>>>                        break;
>>>
>>>                };
>>>
>>>
>>>
>>>                sl_send_reply("404", "caller Not Found");
>>>
>>>                break;
>>>
>>>        };
>>>
>>>
>>>
>>>        route(4);
>>>
>>>        route(1);
>>>
>>> }
>>>
>>>
>>>
>>> route[4] {
>>>
>>>
>>>
>>>        # -----------------------------------------------------------------
>>>
>>>        # NAT Traversal Section
>>>
>>>        # -----------------------------------------------------------------
>>>
>>>
>>>
>>>        if (isflagset(6) || isflagset(7)) {
>>>
>>>                if (!isflagset(8)) {
>>>
>>>                        setflag(8);
>>>
>>>                        use_media_proxy();
>>>
>>>                };
>>>
>>>        };
>>>
>>> }
>>>
>>>
>>>
>>> route[5] {
>>>
>>>
>>>
>>>        # -----------------------------------------------------------------
>>>
>>>        # PSTN Handler
>>>
>>>        # -----------------------------------------------------------------
>>>
>>>
>>>
>>>        rewritehost("1xx.x4.8.xx8"); # INSERT YOUR PSTN GATEWAY IP ADDRESS
>>>
>>>
>>>
>>>        avp_write("i:45", "inv_timeout");
>>>
>>>
>>>
>>>        route(1);
>>>
>>> }
>>>
>>>
>>>
>>> onreply_route[1] {
>>>
>>>
>>>
>>>        if ((isflagset(6) || isflagset(7)) &&
>>>
>>>            (status=~"(180)|(183)|2[0-9][0-9]")) {
>>>
>>>
>>>
>>>                if (!search("^Content-Length:[ ]*0")) {
>>>
>>>                        use_media_proxy();
>>>
>>>                };
>>>
>>>        };
>>>
>>>
>>>
>>>        if (client_nat_test("1")) {
>>>
>>>                fix_nated_contact();
>>>
>>>        };
>>>
>>> }
>>>
>>> ------------------------------------------------------------------------
>>>
>>> _______________________________________________
>>> Serusers mailing list
>>> Serusers at lists.iptel.org
>>> http://lists.iptel.org/mailman/listinfo/serusers
>>>
>>>       
>
>
> _______________________________________________
> Serusers mailing list
> Serusers at lists.iptel.org
> http://lists.iptel.org/mailman/listinfo/serusers
>
>
>   
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20070816/d1a4da86/attachment.htm>


More information about the sr-users mailing list