Hi All.
I'm using ser-0.8.99-dev19 and I'm trying to figure out how to get avpops to tell me if (to_uri==from_uri) for INVITE messages.
I want to do a quick test to see if a user is calling their own extension and route them to voicemail accordingly.
I'm having a bit of trouble understanding avpops. Do I need to use the database functionality to do this or can I do it without MySQL?
Anyhow here is about what I've got - but is wrong and I'm unclear on how to get this to work
ser.cfg snippet:
loadmodule "/usr/local/lib/ser/modules/avpops.so"
route {
# usual checks
# REGISTER stuff
if ((method=="INVITE") && is_user_in("Request-URI", "voicemail")) {
if (avp_check("$from", "$to")) { log(1, "Sending to Voicemail"); route(4); }; };
# lookup aliases stuff
# etc }
route [1] { # send to voicemail route }
But starting ser gives these errors
AVPops - initializing ERROR:avpops:parse_check_value: parse error in <$to> pos -135487828 ERROR:avpops:fixup_check_avp: failed to parse checked value ERROR: fix_expr : fix_actions error
Regards, Paul
__________________________________ Do you Yahoo!? Read only the mail you want - Yahoo! Mail SpamGuard. http://promotions.yahoo.com/new_mail
Hello,
no need for MySQL to do this test. Try this:
...
modparam("avpops","avp_aliases","from_addr=i:44") ...
route{ ... avp_write("$ruri","i:33"); avp_write("$from","$from_addr"); if (avp_check("i:33","eq/$from_addr/i")) { # here from_uri==request_uri .... } ... }
It is better to check r-uri than To uri and do the check just before user location lookup, after looking up speeddial and aliases (To uri may contain an alias or a speeddial key and cannot be changed ...)
Hope this helps, Ramona
Java Rockx wrote:
Hi All.
I'm using ser-0.8.99-dev19 and I'm trying to figure out how to get avpops to tell me if (to_uri==from_uri) for INVITE messages.
I want to do a quick test to see if a user is calling their own extension and route them to voicemail accordingly.
I'm having a bit of trouble understanding avpops. Do I need to use the database functionality to do this or can I do it without MySQL?
Anyhow here is about what I've got - but is wrong and I'm unclear on how to get this to work
ser.cfg snippet:
loadmodule "/usr/local/lib/ser/modules/avpops.so"
route {
# usual checks
# REGISTER stuff
if ((method=="INVITE") && is_user_in("Request-URI", "voicemail")) {
if (avp_check("$from", "$to")) { log(1, "Sending to Voicemail"); route(4); };
};
# lookup aliases stuff
# etc }
route [1] { # send to voicemail route }
But starting ser gives these errors
AVPops - initializing ERROR:avpops:parse_check_value: parse error in <$to> pos -135487828 ERROR:avpops:fixup_check_avp: failed to parse checked value ERROR: fix_expr : fix_actions error
Regards, Paul
__________________________________ Do you Yahoo!? Read only the mail you want - Yahoo! Mail SpamGuard. http://promotions.yahoo.com/new_mail
Serusers mailing list serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
Thanks! That got me pointed in the right direction. There was an error reported in syslog so I played with the code you gave me a little and came up with this. I'm not sure I totally understand the two avp_write() calls but it works.
If something is obviously incorrect please let me know. :-)
modparam("avpops", "avp_aliases", "from_addr=i:33;to_addr=i:34")
route { # sanity checks, speed dial checks, alias lookups, etc
avp_write("$ruri","i:33"); avp_write("$from","i:34"); if (avp_check("i:34","eq/$ruri/i")) {
if (isflagset(31)) { # send to voicemail since flag 31 is # set from an acl lookup route(4); break; } else { sl_send_reply("486", "Busy"); break; }; };
if (!lookup("location")) { ...
# continue processing }
Regards, Paul
--- Elena Ramona Modroiu ramona@voice-system.ro wrote:
Hello,
no need for MySQL to do this test. Try this:
...
modparam("avpops","avp_aliases","from_addr=i:44") ...
route{ ... avp_write("$ruri","i:33"); avp_write("$from","$from_addr"); if (avp_check("i:33","eq/$from_addr/i")) { # here from_uri==request_uri .... } ... }
It is better to check r-uri than To uri and do the check just before user location lookup, after looking up speeddial and aliases (To uri may contain an alias or a speeddial key and cannot be changed ...)
Hope this helps, Ramona
Java Rockx wrote:
Hi All.
I'm using ser-0.8.99-dev19 and I'm trying to figure out how to get avpops to tell me if (to_uri==from_uri) for INVITE messages.
I want to do a quick test to see if a user is calling their own extension and route them to voicemail accordingly.
I'm having a bit of trouble understanding avpops. Do I need to use the database functionality
to
do this or can I do it without MySQL?
Anyhow here is about what I've got - but is wrong and I'm unclear on how to get this to work
ser.cfg snippet:
loadmodule "/usr/local/lib/ser/modules/avpops.so"
route {
# usual checks
# REGISTER stuff
if ((method=="INVITE") && is_user_in("Request-URI", "voicemail")) {
if (avp_check("$from", "$to")) { log(1, "Sending to Voicemail"); route(4); };
};
# lookup aliases stuff
# etc }
route [1] { # send to voicemail route }
But starting ser gives these errors
AVPops - initializing ERROR:avpops:parse_check_value: parse error in <$to> pos -135487828 ERROR:avpops:fixup_check_avp: failed to parse checked value ERROR: fix_expr : fix_actions error
Regards, Paul
__________________________________ Do you Yahoo!? Read only the mail you want - Yahoo! Mail SpamGuard. http://promotions.yahoo.com/new_mail
Serusers mailing list serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
__________________________________ Do you Yahoo!? Take Yahoo! Mail with you! Get it on your mobile phone. http://mobile.yahoo.com/maildemo
What is the error you got? It might be a bug and it has to be fixed.
As for your solution, you can remove:
modparam("avpops", "avp_aliases", "from_addr=i:33;to_addr=i:34")
and
avp_write("$ruri","i:33");
if you don't use the 'from_addr', 'to_addr' or 'i:33' somewhere else in your config script.
Ramona
On Tue, Nov 30, 2004 at 03:41:08PM -0800, Java Rockx wrote:
Thanks! That got me pointed in the right direction. There was an error reported in syslog so I played with the code you gave me a little and came up with this. I'm not sure I totally understand the two avp_write() calls but it works.
If something is obviously incorrect please let me know. :-)
modparam("avpops", "avp_aliases", "from_addr=i:33;to_addr=i:34")
route { # sanity checks, speed dial checks, alias lookups, etc
avp_write("$ruri","i:33"); avp_write("$from","i:34"); if (avp_check("i:34","eq/$ruri/i")) { if (isflagset(31)) { # send to voicemail since flag 31 is # set from an acl lookup route(4); break; } else { sl_send_reply("486", "Busy"); break; }; }; if (!lookup("location")) { ... # continue processing
}
Regards, Paul
--- Elena Ramona Modroiu ramona@voice-system.ro wrote:
Hello,
no need for MySQL to do this test. Try this:
...
modparam("avpops","avp_aliases","from_addr=i:44") ...
route{ ... avp_write("$ruri","i:33"); avp_write("$from","$from_addr"); if (avp_check("i:33","eq/$from_addr/i")) { # here from_uri==request_uri .... } ... }
It is better to check r-uri than To uri and do the check just before user location lookup, after looking up speeddial and aliases (To uri may contain an alias or a speeddial key and cannot be changed ...)
Hope this helps, Ramona
Java Rockx wrote:
Hi All.
I'm using ser-0.8.99-dev19 and I'm trying to figure out how to get avpops to tell me if (to_uri==from_uri) for INVITE messages.
I want to do a quick test to see if a user is calling their own extension and route them to voicemail accordingly.
I'm having a bit of trouble understanding avpops. Do I need to use the database functionality
to
do this or can I do it without MySQL?
Anyhow here is about what I've got - but is wrong and I'm unclear on how to get this to work
ser.cfg snippet:
loadmodule "/usr/local/lib/ser/modules/avpops.so"
route {
# usual checks
# REGISTER stuff
if ((method=="INVITE") && is_user_in("Request-URI", "voicemail")) {
if (avp_check("$from", "$to")) { log(1, "Sending to Voicemail"); route(4); };
};
# lookup aliases stuff
# etc }
route [1] { # send to voicemail route }
But starting ser gives these errors
AVPops - initializing ERROR:avpops:parse_check_value: parse error in <$to> pos -135487828 ERROR:avpops:fixup_check_avp: failed to parse checked value ERROR: fix_expr : fix_actions error
Regards, Paul
__________________________________ Do you Yahoo!? Read only the mail you want - Yahoo! Mail SpamGuard. http://promotions.yahoo.com/new_mail
Serusers mailing list serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
__________________________________ Do you Yahoo!? Take Yahoo! Mail with you! Get it on your mobile phone. http://mobile.yahoo.com/maildemo
Thanks. This is the message in syslog when running your original code.
Dec 1 08:40:51 sip01 /usr/local/sbin/ser[3111]: BUG:avpops:get_source_uri: unknow source <33619979> Dec 1 08:40:51 sip01 /usr/local/sbin/ser[3111]: ERROR:avpops:check_avp: cannot get uri
Regards, Paul
--- Elena Ramona Modroiu ramona@voice-system.ro wrote:
What is the error you got? It might be a bug and it has to be fixed.
As for your solution, you can remove:
modparam("avpops", "avp_aliases", "from_addr=i:33;to_addr=i:34")
and
avp_write("$ruri","i:33");
if you don't use the 'from_addr', 'to_addr' or 'i:33' somewhere else in your config script.
Ramona
On Tue, Nov 30, 2004 at 03:41:08PM -0800, Java Rockx wrote:
Thanks! That got me pointed in the right direction. There was an error reported in syslog so I played with the code you gave me a little and came up with this. I'm not sure I totally
understand
the two avp_write() calls but it works.
If something is obviously incorrect please let me know. :-)
modparam("avpops", "avp_aliases", "from_addr=i:33;to_addr=i:34")
route { # sanity checks, speed dial checks, alias lookups, etc
avp_write("$ruri","i:33"); avp_write("$from","i:34"); if (avp_check("i:34","eq/$ruri/i")) { if (isflagset(31)) { # send to voicemail since flag 31 is # set from an acl lookup route(4); break; } else { sl_send_reply("486", "Busy"); break; }; }; if (!lookup("location")) { ... # continue processing
}
Regards, Paul
--- Elena Ramona Modroiu ramona@voice-system.ro wrote:
Hello,
no need for MySQL to do this test. Try this:
...
modparam("avpops","avp_aliases","from_addr=i:44") ...
route{ ... avp_write("$ruri","i:33"); avp_write("$from","$from_addr"); if (avp_check("i:33","eq/$from_addr/i")) { # here from_uri==request_uri .... } ... }
It is better to check r-uri than To uri and do the check just before user location lookup, after looking up speeddial and aliases (To uri may contain an alias or a speeddial key and cannot be changed ...)
Hope this helps, Ramona
Java Rockx wrote:
Hi All.
I'm using ser-0.8.99-dev19 and I'm trying to figure out how to get avpops to tell me if (to_uri==from_uri) for INVITE messages.
I want to do a quick test to see if a user is calling their own extension and route them to voicemail accordingly.
I'm having a bit of trouble understanding avpops. Do I need to use the database
functionality
to
do this or can I do it without MySQL?
Anyhow here is about what I've got - but is wrong and I'm unclear on how to get this to
work
ser.cfg snippet:
loadmodule "/usr/local/lib/ser/modules/avpops.so"
route {
# usual checks
# REGISTER stuff
if ((method=="INVITE") && is_user_in("Request-URI", "voicemail")) {
if (avp_check("$from", "$to")) { log(1, "Sending to Voicemail"); route(4); };
};
# lookup aliases stuff
# etc }
route [1] { # send to voicemail route }
But starting ser gives these errors
AVPops - initializing ERROR:avpops:parse_check_value: parse error in <$to> pos -135487828 ERROR:avpops:fixup_check_avp: failed to parse checked value ERROR: fix_expr : fix_actions error
Regards, Paul
__________________________________ Do you Yahoo!? Read only the mail you want - Yahoo! Mail SpamGuard. http://promotions.yahoo.com/new_mail
Serusers mailing list serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
__________________________________ Do you Yahoo!? Take Yahoo! Mail with you! Get it on your mobile phone. http://mobile.yahoo.com/maildemo
__________________________________ Do you Yahoo!? Read only the mail you want - Yahoo! Mail SpamGuard. http://promotions.yahoo.com/new_mail