[Serusers] Error forwarding calls to Voicemail from SER
Girish
gr_sh2003 at yahoo.com
Wed Nov 10 13:58:15 CET 2004
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
More information about the sr-users
mailing list