[Serusers] Error forwarding calls to Voicemail from SER

Rafael J. Risco G.V. rafael.risco at gmail.com
Wed Nov 10 22:25:56 CET 2004


Girish  
I have just followed your advise and it works perfect now, ser
accounting module reports "Sip-Response-Code=487" and no "invite" goes
to asterisk again, ...thank you very much for your invaluable help .
  
Rafael

On Wed, 10 Nov 2004 04:58:15 -0800 (PST), Girish <gr_sh2003 at yahoo.com> wrote:
> Rafael,
> 
> As i said in my previous mail, it just was a guess. Can you try modifying your route[1] something
> like this. I think this will send only the unanswered calls to voicemail. All other 4** status
> will be ignored. I havent tested it though.
> 
> Also, you were right. It is route[1], not route[4].
> 
> route[1] {
> 
>   if (t_check_status("408")){
>      revert_uri();
>      rewritehostport("200.110.2.132:5060");
>      append_branch();
>      t_relay ();
>      break;
>   }
> 
> }
> 
> Good Luck,
> 
> 
> 
> --- "Rafael J. Risco G.V." <rafael.risco at gmail.com> wrote:
> 
> > hello Girish
> > I did some test using t_check_status ("487") in failure_route[1] like this:
> >
> > failure_route[1] {
> >         if (t_check_status("487")){
> >         revert_uri ();
> >         rewritehostport ("200.110.2.132:5060");
> >         append_branch();
> >         t_relay_to_udp("200.110.2.132", "5060");
> >         }
> >
> > ...but did not work, can you send us more details about how to use
> > t_check_status("487") in route[4]?
> >
> > thanks
> > rafael
> >
> >
> > On Tue, 9 Nov 2004 02:25:26 -0800 (PST), Girish <gr_sh2003 at yahoo.com> wrote:
> > > Hello,
> > >
> > > Just a guess.. Can you add t_check_status (487) in your route[4] and see if the INVITE goes to
> > > Asterisk after cancelling?
> > >
> > >
> > >
> > > --- "Rafael J. Risco G.V." <rafael.risco at gmail.com> wrote:
> > >
> > > > Hello
> > > > I have to insist in this issue since I´ve done several test using Sems
> > > > and asterisk with very simple configuration files including the
> > > > original example from ser-cvs...  in brief: if  I call to a user who
> > > > belongs to voicemail group and I cancel  the call before VM forward
> > > > routine begin  then  an "invite" is sent to a voicemail server
> > > > generating and sending a file with No audio, and I cant account this
> > > > call with "Sip-Response-Code=487" (just an start record without
> > > > stop)...
> > > >
> > > > does someone know how to solve this problem????
> > > >
> > > > thanks in advance
> > > >
> > > > Rafael
> > > >
> > > > PS:
> > > > ser.cfg and asterisk debug for this  test:
> > > >
> > > > #
> > > > # SER SIMPLE CFG for VM without acc...
> > > > # ----------- 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=9
> > > > fork=yes
> > > > log_stderror=yes
> > > > #*/
> > > >
> > > > listen=127.0.0.1
> > > > port=5060
> > > >
> > > > # simple proxy script for forwarding to voicemail server
> > > > # for unavailable users
> > > > #
> > > >
> > > > 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/mysql.so"
> > > > loadmodule "/usr/local/lib/ser/modules/group.so"
> > > > loadmodule "/usr/local/lib/ser/modules/usrloc.so"
> > > > loadmodule "/usr/local/lib/ser/modules/registrar.so"
> > > >
> > > > # time to give up on ringing -- global timer, applies to
> > > > #    all transactions
> > > > modparam("tm", "fr_inv_timer", 90)
> > > >
> > > > # database with user group membership
> > > > modparam("group", "db_url", "mysql://ser:heslo@localhost/ser")
> > > >
> > > >
> > > > # ---------------------  request routing logic -------------------
> > > > route {
> > > >
> > > >         if (!mf_process_maxfwd_header("10")) {
> > > >                 log("LOG: Too many hops\n");
> > > >                 sl_send_reply("483", "Alas Too Many Hops");
> > > >                 break;
> > > >         };
> > > >
> > > >         if (!(method=="REGISTER")) record_route();
> > > >         if (loose_route()) {
> > > >                 t_relay();
> > > >                 break;
> > > >         };
> > > >
> > > >         if (!uri==myself) {
> > > >                 t_relay();
> > > >                 break;
> > > >         };
> > > >
> > > >         if (method == "REGISTER") {
> > > >                 if (!save("location")) {
> > > >                         sl_reply_error();
> > > >                 };
> > > >                 break;
> > > >         };
> > > >
> > > >         # does the user wish redirection on no availability? (i.e., is he
> > > >         # in the voicemail group?) -- determine it now and store it in
> > > >         # flag 4, before we rewrite the flag using UsrLoc
> > > >         if (is_user_in("Request-URI", "voicemail")) {
> > > >                 setflag(4);
> > > >         };
> > > >
> > > >         # native SIP destinations are handled using our USRLOC DB
> > > >         if (!lookup("location")) {
> > > >                 # handle user which was not found
> > > >                 route(4);
> > > >                 break;
> > > >         };
> > > >
> > > >         # if user is on-line and is in voicemail group, enable redirection
> > > >         if (method == "INVITE" && isflagset(4)) {
> > > >                 t_on_failure("1");
> > > >         };
> > > >         t_relay();
> > > > }
> > > >
> > > > # ------------- handling of unavailable user ------------------
> > > > route[4] {
> > > >
> > > >         # non-Voip -- just send "off-line"
> > > >         if (!(method == "INVITE" || method == "ACK" || method == "CANCEL")) {
> > > >                 sl_send_reply("404", "Not Found");
> > > >                 break;
> > > >         };
> > > >
> > > >         # not voicemail subscriber
> > > >         if (!isflagset(4)) {
> > > >                 sl_send_reply("404", "Not Found and no voicemail turned on");
> > > >                 break;
> > > >         };
> > > >
> > > >         # forward to voicemail now
> > > >         rewritehostport("200.110.2.132:5060");
> > > >         t_relay_to_udp("200.110.2.132", "5060");
> > > > }
> > > >
> > > > # if forwarding downstream did not succeed, try voicemail running
> > > > # at 200.110.2.132:5060
> > > >
> > > > failure_route[1] {
> > > >         revert_uri();
> > > >         rewritehostport("200.110.2.132:5060");
> > > >         append_branch();
> > > >         t_relay_to_udp("200.110.2.132", "5060");
> > > > }
> > > >
> > > >
> 
> =====
> Girish Gopinath  <gr_sh2003 at yahoo.com>
> 
> __________________________________________________
> Do You Yahoo!?
> Tired of spam?  Yahoo! Mail has the best spam protection around
> http://mail.yahoo.com
> 


-- 

rrgv




More information about the sr-users mailing list