[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