[Serusers] Failed to call to PSTN

Wayne Chen wayne.chen16 at msa.hinet.net
Wed Jan 5 15:22:09 CET 2005


Hi, sir,

I reconfigure the ser.cfg as below:

                if (!lookup("location")) {
                        if(uri =~"sip:2"){
                                log(1,"Forwarding to PSTN\n");
                                strip(1);
                                rewritehostport("220.130.48.254:5060");
                                t_relay_to_udp("220.130.48.245","5060");
                               forward(uri:host,uri:port);
                                break;
                        }else{
                        sl_send_reply("404", "Not Found");
                        log(1,"404 Not found\n");
                        break;
                };
                };

The call looks get down to the if sentence, because I can see the
"Forwarding to PSTN" show on log. However, the still cannot be establish. I
still heard busy tone. Still some things wrong on my ser.cfg?

Following is the running-config of my AS5300 PSTN gateway:

Current configuration : 2553 bytes
!
version 12.2
no service pad
service timestamps debug datetime msec localtime
service timestamps log datetime msec localtime
no service password-encryption
!
hostname AS5300
!
logging buffered 800000 debugging
enable password xxxxx
!
!
!
resource-pool disable
clock timezone Taiwan 8
!
ip subnet-zero
no ip domain-lookup
ip name-server 168.95.1.1
!
!
voice class codec 99
 codec preference 10 g729r8
 codec preference 13 g711ulaw
!
voice class codec 98
 codec preference 10 g711ulaw
 codec preference 13 g729r8
!         
!         
!         
!         
!         
!         
fax interface-type modem
mta receive maximum-recipients 0
!         
controller T1 0
 framing esf
 clock source line primary
 linecode b8zs
 ds0-group 0 timeslots 1-24 type e&m-immediate-start
!         
controller T1 1
 framing esf
 clock source line secondary 1
 linecode b8zs
!         
controller T1 2
 framing esf
 clock source line secondary 2
 linecode b8zs
!
controller T1 3
 framing esf
 clock source line secondary 3
 linecode b8zs
!
!
!
interface Ethernet0
 ip address 220.130.4x.xxx 255.255.255.240
 no ip route-cache
 no ip mroute-cache
!
interface Serial0
 no ip address
 no ip route-cache
 no ip mroute-cache
 shutdown
 no fair-queue
 clockrate 2015232
!
interface Serial1
 no ip address
 no ip route-cache
 no ip mroute-cache
 shutdown
 no fair-queue
 clockrate 2015232
!         
interface Serial2
 no ip address
 no ip route-cache
 no ip mroute-cache
 shutdown
 no fair-queue
 clockrate 2015232
!
interface Serial3
 no ip address
 no ip route-cache
 no ip mroute-cache
 shutdown
 no fair-queue
 clockrate 2015232
!
interface FastEthernet0
 description "VoIP Packet Interface"
 ip address 172.18.66.2 255.255.255.0
 no ip route-cache
 no ip mroute-cache
 duplex auto
 speed auto
!
ip classless
ip route 0.0.0.0 0.0.0.0 220.130.4x.xx
ip route 172.18.0.0 255.255.0.0 172.18.66.254
ip route 172.19.0.0 255.255.0.0 172.18.66.254
no ip http server
!
access-list 100 permit udp any any range 1718 1719
access-list 100 permit tcp any eq 1720 any
access-list 100 permit tcp any any eq 1720
!
snmp-server community changeme RW
snmp-server community public RO
snmp-server enable traps tty
!
call rsvp-sync
!
voice-port 0:0
!
!
mgcp profile default
!
dial-peer voice 300 voip
 destination-pattern 3...
 voice-class codec 99
 session protocol sipv2
 session target sip-server
!
dial-peer voice 400 pots
 application session
 destination-pattern 2T
 no digit-strip
 port 0:0
!         
sip-ua 
 retry response 2
 retry bye 2
 retry cancel 2
 sip-server ipv4:211.23.5x.xxx
!
!
line con 0
 exec-timeout 0 0
line aux 0
line vty 0 4
 no login
!
end


How can I debug this issue?

Regards,
Wayne


On 1/5/2005 2:50 PM, "Atle Samuelsen" <clona at camaro.no> wrote:

> change the whole block with if(!lookup("location")).. to something like
> this:
> 
> 
> if(!lookup("location")){
>    if(uri =~"sip:2"){
>       route[..]
>       break;
>    }else{
>      sl_send_reply("404","Ha. not found");
>      break;
>   };
> };
> 
> The reason to do this, is with your if(!lookup.. you dont get down to
> the next ifsentence you have. so it will never hit it.
> 
> -Atle
> 
> * Wayne Chen <wayne.chen16 at msa.hinet.net> [050105 05:03]:
>> Thanks for quick response from Srbislav.
>> I tried the same method, but still got "404 not found". It looks that the
>> call meet the "if (!lookup("location"))" condition.
>> 
>> Does the placement of IF condition matter?
>> 
>> Thanks & Regards,
>> Wayne
>> 
>> On 1/4/2005 11:35 PM, "Srbislav Cvetkovic" <srbislav at city-net.com> wrote:
>> 
>>> hi chen,
>>> 
>>> Here is how i do it:
>>> 
>>> # Route to PSTN Gateways(s)
>>>        if (uri=~"^sip:9[0-9]*@XX.XX.XX.XX") {        ##  This assumes
>>> that the caller is
>>>            log("Forwarding to PSTN\n");                ##  registered
>>> in our realm
>>>            strip(1);
>>>           rewritehostport("PSTN-GATEWAY-IP:5060");
>>>           forward(uri:host, uri:port);
>>>           break;
>>>        };
>>> 
>>> On Jan 4, 2005, at 10:27 AM, Wayne Chen wrote:
>>> 
>>>> Dear sirs,
>>>> 
>>>> I have a AS5300 setup as PSTN and it works fine to place from PSTN to
>>>> SIP
>>>> gateway in IP network. Now I want to place calls to PSTN with prefix
>>>> '2' and
>>>> the prefix should be striped before forward to PSTN, but I always get
>>>> "404
>>>> not found" from SER server. Could anyone help me to debug my setting on
>>>> ser.cfg?
>>>> I attached my ser.cfg file as below:
>>>> 
>>>> #
>>>> # $Id: ser.cfg,v 1.21.4.1 2003/11/10 15:35:15 andrei Exp $
>>>> #
>>>> # simple quick-start config script
>>>> #
>>>> 
>>>> # ----------- global configuration parameters ------------------------
>>>> 
>>>> #debug=3         # debug level (cmd line: -dddddddddd)
>>>> #fork=yes
>>>> #log_stderror=no  # (cmd line: -E)
>>>> 
>>>> /* Uncomment these lines to enter debugging mode
>>>> debug=7
>>>> fork=no
>>>> log_stderror=yes
>>>> */
>>>> 
>>>> check_via=no      # (cmd. line: -v)
>>>> dns=no           # (cmd. line: -r)
>>>> rev_dns=no      # (cmd. line: -R)
>>>> #port=5060
>>>> #children=4
>>>> fifo="/tmp/ser_fifo"
>>>> 
>>>> # ------------------ module loading ----------------------------------
>>>> 
>>>> # Uncomment this if you want to use SQL database
>>>> loadmodule "/usr/lib/ser/modules/mysql.so"
>>>> 
>>>> loadmodule "/usr/lib/ser/modules/sl.so"
>>>> loadmodule "/usr/lib/ser/modules/tm.so"
>>>> loadmodule "/usr/lib/ser/modules/rr.so"
>>>> loadmodule "/usr/lib/ser/modules/maxfwd.so"
>>>> loadmodule "/usr/lib/ser/modules/usrloc.so"
>>>> loadmodule "/usr/lib/ser/modules/registrar.so"
>>>> 
>>>> # Uncomment this if you want digest authentication
>>>> # mysql.so must be loaded !
>>>> loadmodule "/usr/lib/ser/modules/auth.so"
>>>> loadmodule "/usr/lib/ser/modules/auth_db.so"
>>>> 
>>>> # ----------------- setting module-specific parameters ---------------
>>>> 
>>>> # -- usrloc params --
>>>> 
>>>> #modparam("usrloc", "db_mode",   0)
>>>> 
>>>> # Uncomment this if you want to use SQL database
>>>> # for persistent storage and comment the previous line
>>>> modparam("usrloc", "db_mode", 2)
>>>> 
>>>> # -- auth params --
>>>> # Uncomment if you are using auth module
>>>> #
>>>> modparam("auth_db", "calculate_ha1", yes)
>>>> #
>>>> # If you set "calculate_ha1" parameter to yes (which true in this
>>>> config),
>>>> # uncomment also the following parameter)
>>>> #
>>>> modparam("auth_db", "password_column", "password")
>>>> 
>>>> # -- rr params --
>>>> # add value to ;lr param to make some broken UAs happy
>>>> modparam("rr", "enable_full_lr", 1)
>>>> 
>>>> # -------------------------  request routing logic -------------------
>>>> 
>>>> # main routing logic
>>>> 
>>>> route{
>>>> 
>>>>       # initial sanity checks -- messages with
>>>>       # max_forwards==0, or excessively long requests
>>>>       if (!mf_process_maxfwd_header("10")) {
>>>>             sl_send_reply("483","Too Many Hops");
>>>>             break;
>>>>       };
>>>>       if ( msg:len > max_len ) {
>>>>             sl_send_reply("513", "Message too big");
>>>>             break;
>>>>       };
>>>> 
>>>>       # we record-route all messages -- to make sure that
>>>>       # subsequent messages will go through our proxy; that's
>>>>       # particularly good if upstream and downstream entities
>>>>       # use different transport protocol
>>>>       record_route();
>>>>       # loose-route processing
>>>>       if (loose_route()) {
>>>>             t_relay();
>>>>             break;
>>>>       };
>>>> 
>>>>       # if the request is for other domain use UsrLoc
>>>>       # (in case, it does not work, use the following command
>>>>       # with proper names and addresses in it)
>>>>       if (uri==myself) {
>>>> 
>>>>             if (method=="REGISTER") {
>>>> 
>>>> # Uncomment this if you want to use digest authentication
>>>> #                 if (!www_authorize("iptel.org", "subscriber")) {
>>>> #                       www_challenge("iptel.org", "0");
>>>> #                       break;
>>>> #                 };
>>>> 
>>>>                   save("location");
>>>>                   break;
>>>>             };
>>>> 
>>>>             # native SIP destinations are handled using our USRLOC DB
>>>>             if (!lookup("location")) {
>>>>                   sl_send_reply("404", "Not Found");
>>>>                   break;
>>>>             };
>>>>       };
>>>> 
>>>>         #handle PSTN calls
>>>>         if (uri=~ "^sip:2"){
>>>>                 log(1,"Forwarding to PSTN/n");
>>>>                 strip(1);
>>>>                 rewritehostport("220.XX.XX.XX:5060");
>>>>                 if (!t_relay()) {
>>>>                         sl_reply_error();
>>>>                         break;
>>>>                 };
>>>>         };
>>>> 
>>>> 
>>>> 
>>>>       # forward to current uri now; use stateful forwarding; that
>>>>       # works reliably even if we forward from TCP to UDP
>>>>       if (!t_relay()) {
>>>>             sl_reply_error();
>>>>       };
>>>> 
>>>> }
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> I also try t_relay_to_udp() and forward(), but both can't help to
>>>> forward
>>>> call to PSTN gateway.
>>>> 
>>>> Regards,
>>>> Wayne
>>>> 
>>>> _______________________________________________
>>>> Serusers mailing list
>>>> serusers at lists.iptel.org
>>>> http://lists.iptel.org/mailman/listinfo/serusers
>>>> 
>>> 
>>> Srbo Cvetkovic                  | CityNet, Inc.
>>> srbo at city-net.com            | Pittsburgh, PA
>>> voice: 412.481.5406         | fax: 412.431.1315
>>> 
>>> 
>> 
>> _______________________________________________
>> Serusers mailing list
>> serusers at lists.iptel.org
>> http://lists.iptel.org/mailman/listinfo/serusers
>> 




More information about the sr-users mailing list