if i increase my fr_inv_timer, then the CANCEL is sent after that amount of
time and 408 also gets sent at the same time. both CANCEL and 408 get sent
to callee and caller respectively when the fr_inv_timer expires. how do i
separate the sending of the two messages.
-tulika
From: Iqbal <iqbal(a)gigo.co.uk>
To: Tulika Pradhan <tulikapradhan(a)hotmail.com>
CC: greger(a)teigre.com, serusers(a)lists.iptel.org
Subject: Re: [Serusers] 408 to Caller UA when CANCEL to Callee
Date: Fri, 16 Sep 2005 12:13:45 +0100
what happens if you increase your timeout values, i.e send cancel before
you get the timeout
Iqbal
Tulika Pradhan wrote:
>
>my ser.cfg file is attached below.
>
>any help/pointers for what the problem may be would be great.
>
>the problem comes when i dial anynumber starting with '3'
>
>i want 8001211 to be dialed and if there is failure, then 8001210 to be
>dialed.
>
>thanks,
>
>tulika
>
>#
># $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"
>loadmodule "/usr/lib/ser/modules/acc.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"
>loadmodule "/usr/lib/ser/modules/exec.so"
>loadmodule "/usr/lib/ser/modules/uri.so"
>loadmodule "/usr/lib/ser/modules/textops.so"
>loadmodule "/usr/lib/ser/modules/xlog.so"
># ----------------- setting module-specific parameters ---------------
>
># -- usrloc params --
>
>modparam("usrloc", "db_mode", 2)
>
># -- auth params --
>modparam("auth_db", "db_url",
"sql://ser:heslo@localhost/ser")
>modparam("auth_db", "calculate_ha1", 1)
>#
># 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)
>modparam("acc", "log_level", 1)
>modparam("acc", "db_flag", 1)
>modparam("tm", "fr_inv_timer", 15)
>modparam("tm", "fr_timer", 10)
># 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 # 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) record_route();
> if (uri==myself) {
> if (method=="REGISTER") {
>
> save("location");
> break;
> };
>
> if (method==INVITE) {
> if (uri=~"^sip:0[0-9]*@") {
> log(1, "beginning with 0\n");
> rewritehost("192.168.1.201");
> rewriteport("5060");
> t_relay_to_udp("192.168.1.201","5065");
> break;
> } else if (uri=~"^sip:500@") {
> log(1, "Accessing Voicemail\n");
> setflag(1);
> rewriteport("5065"); } else if
>(uri=~"^sip:3[0-9]*@203.197.212.208") {
> # call hunt numbers beginning with 3
> log(1, "beginning with 3\n");
> seturi("sip:8001211@192.168.1.201");
> append_hf("P-hint: call hunt\r\n");
> xlog("L_ERR", "time [%Tf] method
<%rm>
>r-uri <%ru> <%tu>\n");
> t_on_failure("1");
> t_relay();
>
> }
> if (!lookup("location")) {
> if (search("(P-hint): call hunt")) {
> log(1, "Call Hunt number not in
>location- Hangup\n");
> #exec_msg("echo $SIP_OUSER >>
>/root/temp; echo $SIP_USER >> /root/temp; echo $SIP_OURI >> /root/temp;
>echo $SIP_RURI >> /root/temp");
> # goto next number
> exec_dset("/etc/ser/getnextnumber1
>$SIP_OUSER; echo>/dev/null;");
> xlog("L_ERR", "time [%Tf]
method
><%rm> r-uri <%ru> <%tu>\n");
> t_relay();
> } else {
> log(1, "Asterisk forwarding as user not logged
>in..\n");
> rewritehost("192.168.1.201");
> rewriteport("5065");
> t_relay_to_udp("192.168.1.201","5065");
> break;
> }
>
> }
> t_on_failure("1");
>
> }
> }
> if (!t_relay()) {
> sl_reply_error();
> };
>}
>
>failure_route[1] {
> log(1,"Failure 1\n");
>
> if (search("(P-hint): call hunt")) {
> log(1, "Call Hunt number failure - Hangup\n");
> append_branch("sip:8001210@192.168.1.201");
> t_on_failure("2");
> xlog("L_ERR", "time [%Tf] method <%rm> r-uri
<%ru>
><%tu>\n");
> t_relay();
> } else {
> log(1, "Asterisk forwarding ..\n");
> revert_uri();
> rewritehostport(192.168.1.201:5065");
> append_branch();
> t_relay();
> }
>}
>
>failure_route[2] {
> #
> log (1, "in failure route 2\n");
>}
>
> }
> }
> if (!t_relay()) {
>
> t_relay_to_udp("192.168.1.201","5065");
> break;
>
> if (method!="REGISTER") record_route();
>
>
>
>
>
>
>
>>From: "Greger V. Teigre" <greger(a)teigre.com>
>>To: "Tulika Pradhan" <tulikapradhan(a)hotmail.com>om>,
<serusers(a)lists.iptel.org>
>>Subject: Re: [Serusers] 408 to Caller UA when CANCEL to Callee
>>Date: Fri, 16 Sep 2005 08:36:53 +0200
>>
>>Tulika,
>>This is not a function of SER, but your ser.cfg file. We have just
>>released a new Getting Started document at
onsip.org that you may use as
>>a reference to identify why your ser.cfg causes a 408 to be sent.
>>g-)
>>
>>Tulika Pradhan wrote:
>>
>>>hi,
>>>
>>>i am facing the following situation.
>>>
>>>UA1 calls a user(UA2) who does not answer. the control comes to
>>>failure_route where i try another UA (UA3). but as UA3 rings, SER
>>>sends 408 Request timeout to UA1 and call gets disconnected.
>>>
>>>this is the SIP message flow.
>>>
>>>UA1 SER UA2
>>>UA3
>>>INVITE---------------->
>>> INVITE-------------->
>>> <----------------TRYING
>>> <----------------RINGING
>>><------------------RINGING
>>>
>>>
>>> CANCEL-------------->
>>><---------------------408
>>>
>>>INVITE---------------------------------------->
>>> <---------------------487
>>> ACK------------------->
>>> <-----------------------OK
>>>
>>><-------------------------------------------TRYING
>>>
>>><--------------------------------------------RINGING
>>>
>>>(but UA already has got the busy tone) and does not hear this ringing.
>>>
>>>if 408 was not sent to UA1, then the call could have been established.
>>>
>>>what is going wrong,
>>>
>>>regards,
>>>
>>>tulika
>>>
>>>
>>>_______________________________________________
>>>Serusers mailing list
>>>serusers(a)lists.iptel.org
>>>http://lists.iptel.org/mailman/listinfo/serusers
>>
>>
>
>
>_______________________________________________
>Serusers mailing list
>serusers(a)lists.iptel.org
>http://lists.iptel.org/mailman/listinfo/serusers
>
>.
>