I'm using uac_redirect module to handle redirect and accounting from openser. Redirect works fine so as cdr but I'm not getting how to write redirect reason in cdr. I didn't find any way to find and store redirect reason(call forward, busy, no answer) in CDR. Does anyone know how to do it?
Ruchir napsal(a):
I'm using uac_redirect module to handle redirect and accounting from openser. Redirect works fine so as cdr but I'm not getting how to write redirect reason in cdr. I didn't find any way to find and store redirect reason(call forward, busy, no answer) in CDR. Does anyone know how to do it?
I'm using something like this (shortened):
in config:
modparam("acc", "multi_leg_info", "src_leg=$avp(i:901);dst_leg=$avp(i:902)")
in routing script:
$avp(s:acc_state) = "cfu"; avp_printf("$avp(i:901)", "$avp(s:caller_uuid)|$avp(s:acc_state)");
Works very well :-)
Hope this helps, best regards,
kokoska.rokoska
This is for explicit call forwarding. I'm testing call forwarding from linksys pap2 call forward features which generates "302 moved temporarily" message.
On Fri, Jul 18, 2008 at 6:20 PM, kokoska rokoska kokoska.rokoska@post.cz wrote:
Ruchir napsal(a):
I'm using uac_redirect module to handle redirect and accounting from openser. Redirect works fine so as cdr but I'm not getting how to write redirect reason in cdr. I didn't find any way to find and store redirect reason(call forward, busy, no answer) in CDR. Does anyone know how to do
it?
I'm using something like this (shortened):
in config:
modparam("acc", "multi_leg_info", "src_leg=$avp(i:901);dst_leg=$avp(i:902)")
in routing script:
$avp(s:acc_state) = "cfu"; avp_printf("$avp(i:901)", "$avp(s:caller_uuid)|$avp(s:acc_state)");
Works very well :-)
Hope this helps, best regards,
kokoska.rokoska
Users mailing list Users@lists.openser.org http://lists.openser.org/cgi-bin/mailman/listinfo/users
Hi Ruchir,
You may try the following approach:
1) in onreply_route, if 3xx, store the info from the reply in an AVP (be sure an enable onreply_avp_mode - http://www.openser.org/docs/modules/1.3.x/tm.html#AEN313)
2) in failure route, if the 3xx was selected as final response, use the AVP for extra accouting.
regards, Bogdan
Ruchir wrote:
I'm using uac_redirect module to handle redirect and accounting from openser. Redirect works fine so as cdr but I'm not getting how to write redirect reason in cdr. I didn't find any way to find and store redirect reason(call forward, busy, no answer) in CDR. Does anyone know how to do it?
Users mailing list Users@lists.openser.org http://lists.openser.org/cgi-bin/mailman/listinfo/users
I added "modparam("tm", "onreply_avp_mode", 1)" in config file. I've stored the diversion header in reply route using following code.
if($hdr(Diversion)!=null)
{ avp_delete("$avp(s:src_user_reply)"); $avp(s:src_user_reply) = $hdr(Diversion); xlog("Client call forwarding to $avp(s:src_user_reply)\n "); }
But I always get NUll value in $avp(s:src_user_reply) when I check in script when new invite arrives.
On Mon, Jul 21, 2008 at 1:48 PM, Bogdan-Andrei Iancu bogdan@voice-system.ro wrote:
Hi Ruchir,
You may try the following approach:
- in onreply_route, if 3xx, store the info from the reply in an AVP (be
sure an enable onreply_avp_mode - http://www.openser.org/docs/modules/1.3.x/tm.html#AEN313)
- in failure route, if the 3xx was selected as final response, use the AVP
for extra accouting.
regards, Bogdan
Ruchir wrote:
I'm using uac_redirect module to handle redirect and accounting from openser. Redirect works fine so as cdr but I'm not getting how to write redirect reason in cdr. I didn't find any way to find and store redirect reason(call forward, busy, no answer) in CDR. Does anyone know how to do it?
Users mailing list Users@lists.openser.org http://lists.openser.org/cgi-bin/mailman/listinfo/users
Ruchir wrote:
I added "modparam("tm", "onreply_avp_mode", 1)" in config file. I've stored the diversion header in reply route using following code.
if($hdr(Diversion)!=null) { avp_delete("$avp(s:src_user_reply)"); $avp(s:src_user_reply) = $hdr(Diversion); xlog("Client call forwarding to $avp(s:src_user_reply)\n "); }
But I always get NUll value in $avp(s:src_user_reply) when I check in script when new invite arrives.
The AVP will not be visible in a different transaction (for another invite). The AVP will be present only when doing acc for the transaction you set the AVP for.
Regards, Bogdan
On Mon, Jul 21, 2008 at 1:48 PM, Bogdan-Andrei Iancu <bogdan@voice-system.ro mailto:bogdan@voice-system.ro> wrote:
Hi Ruchir, You may try the following approach: 1) in onreply_route, if 3xx, store the info from the reply in an AVP (be sure an enable onreply_avp_mode - http://www.openser.org/docs/modules/1.3.x/tm.html#AEN313) 2) in failure route, if the 3xx was selected as final response, use the AVP for extra accouting. regards, Bogdan Ruchir wrote: I'm using uac_redirect module to handle redirect and accounting from openser. Redirect works fine so as cdr but I'm not getting how to write redirect reason in cdr. I didn't find any way to find and store redirect reason(call forward, busy, no answer) in CDR. Does anyone know how to do it? ------------------------------------------------------------------------ _______________________________________________ Users mailing list Users@lists.openser.org <mailto:Users@lists.openser.org> http://lists.openser.org/cgi-bin/mailman/listinfo/users
I tried this but no luck. I'm storing avp in onreply route. That avp is set in radius_extra param.
On Mon, Jul 21, 2008 at 10:32 PM, Bogdan-Andrei Iancu < bogdan@voice-system.ro> wrote:
Ruchir wrote:
I added "modparam("tm", "onreply_avp_mode", 1)" in config file. I've stored the diversion header in reply route using following code.
if($hdr(Diversion)!=null) { avp_delete("$avp(s:src_user_reply)"); $avp(s:src_user_reply) = $hdr(Diversion); xlog("Client call forwarding to $avp(s:src_user_reply)\n "); }
But I always get NUll value in $avp(s:src_user_reply) when I check in script when new invite arrives.
The AVP will not be visible in a different transaction (for another invite). The AVP will be present only when doing acc for the transaction you set the AVP for.
Regards, Bogdan
On Mon, Jul 21, 2008 at 1:48 PM, Bogdan-Andrei Iancu < bogdan@voice-system.ro mailto:bogdan@voice-system.ro> wrote:
Hi Ruchir,
You may try the following approach:
- in onreply_route, if 3xx, store the info from the reply in an
AVP (be sure an enable onreply_avp_mode - http://www.openser.org/docs/modules/1.3.x/tm.html#AEN313)
- in failure route, if the 3xx was selected as final response,
use the AVP for extra accouting.
regards, Bogdan
Ruchir wrote:
I'm using uac_redirect module to handle redirect and accounting from openser. Redirect works fine so as cdr but I'm not getting how to write redirect reason in cdr. I didn't find any way to find and store redirect reason(call forward, busy, no answer) in CDR. Does anyone know how to do it?
_______________________________________________ Users mailing list Users@lists.openser.org <mailto:Users@lists.openser.org> http://lists.openser.org/cgi-bin/mailman/listinfo/users
Now I'm getting the forward reason. But still there's problem with CDR. I have set onreply avp by
modparam("tm", "onreply_avp_mode", 1)
I've set following in onreply route
if($hdr(Diversion)!=null)
{ avp_delete("$avp(s:src_call_type)"); $avp(s:src_call_type) = $hdr(Diversion); xlog("Client call forwarding to $avp(s:src_user_reply)\n ");
avp_subst("$avp(s:src_user_reply)", "/(.*)sip:(.*)@(.*);reason=(.*)/\4/");
switch($avp(s:src_call_type)) { case "unconditional": $avp(s:call_type) = "cwfd"; break; case "user-busy": $avp(s:call_type) = "cwfdbusy"; break; case "no-answer": $avp(s:call_type) = "cwfdnoanswer"; break; default: log("no forwarding\n"); }
}
But the problem is that records are not generated the way we expect and the
way it works in normal forwarding using usr_preferences. For example call is forwarded from one user to another, the first leg of the call should be logged as it should normally be($fU in leg source, $rU in leg destination & calltype=call) and in next cdr log, it should log with forwarding details(Forwarding user in leg source, forwarded user in leg destination & calltype=cfwd). But it actually generates 5 records(1 failed invite, 2 ok invites & 2 byes, instead of 2 invites & 2 byes) of the call. Also as we set calltype and leg source in onreply route, it'll store that date for the first leg of the CDR which should not happen. Any advice how to forward the details to next call leg?
On Tue, Jul 22, 2008 at 3:59 PM, Ruchir ruchir.lists@gmail.com wrote:
I tried this but no luck. I'm storing avp in onreply route. That avp is set in radius_extra param.
On Mon, Jul 21, 2008 at 10:32 PM, Bogdan-Andrei Iancu < bogdan@voice-system.ro> wrote:
Ruchir wrote:
I added "modparam("tm", "onreply_avp_mode", 1)" in config file. I've stored the diversion header in reply route using following code.
if($hdr(Diversion)!=null) { avp_delete("$avp(s:src_user_reply)"); $avp(s:src_user_reply) = $hdr(Diversion); xlog("Client call forwarding to $avp(s:src_user_reply)\n "); }
But I always get NUll value in $avp(s:src_user_reply) when I check in script when new invite arrives.
The AVP will not be visible in a different transaction (for another invite). The AVP will be present only when doing acc for the transaction you set the AVP for.
Regards, Bogdan
On Mon, Jul 21, 2008 at 1:48 PM, Bogdan-Andrei Iancu < bogdan@voice-system.ro mailto:bogdan@voice-system.ro> wrote:
Hi Ruchir,
You may try the following approach:
- in onreply_route, if 3xx, store the info from the reply in an
AVP (be sure an enable onreply_avp_mode - http://www.openser.org/docs/modules/1.3.x/tm.html#AEN313)
- in failure route, if the 3xx was selected as final response,
use the AVP for extra accouting.
regards, Bogdan
Ruchir wrote:
I'm using uac_redirect module to handle redirect and accounting from openser. Redirect works fine so as cdr but I'm not getting how to write redirect reason in cdr. I didn't find any way to find and store redirect reason(call forward, busy, no answer) in CDR. Does anyone know how to do it?
_______________________________________________ Users mailing list Users@lists.openser.org <mailto:Users@lists.openser.org> http://lists.openser.org/cgi-bin/mailman/listinfo/users
It seems it is not possible?
On Fri, Jul 25, 2008 at 4:20 PM, Ruchir ruchir.lists@gmail.com wrote:
Now I'm getting the forward reason. But still there's problem with CDR. I have set onreply avp by
modparam("tm", "onreply_avp_mode", 1)
I've set following in onreply route
if($hdr(Diversion)!=null)
{ avp_delete("$avp(s:src_call_type)"); $avp(s:src_call_type) = $hdr(Diversion); xlog("Client call forwarding to $avp(s:src_user_reply)\n ");
avp_subst("$avp(s:src_user_reply)",
"/(.*)sip:(.*)@(.*);reason=(.*)/\4/");
switch($avp(s:src_call_type)) { case "unconditional": $avp(s:call_type) = "cwfd"; break; case "user-busy": $avp(s:call_type) = "cwfdbusy"; break; case "no-answer": $avp(s:call_type) = "cwfdnoanswer"; break; default: log("no forwarding\n"); }
}
But the problem is that records are not generated the way we expect and
the way it works in normal forwarding using usr_preferences. For example call is forwarded from one user to another, the first leg of the call should be logged as it should normally be($fU in leg source, $rU in leg destination & calltype=call) and in next cdr log, it should log with forwarding details(Forwarding user in leg source, forwarded user in leg destination & calltype=cfwd). But it actually generates 5 records(1 failed invite, 2 ok invites & 2 byes, instead of 2 invites & 2 byes) of the call. Also as we set calltype and leg source in onreply route, it'll store that date for the first leg of the CDR which should not happen. Any advice how to forward the details to next call leg?
On Tue, Jul 22, 2008 at 3:59 PM, Ruchir ruchir.lists@gmail.com wrote:
I tried this but no luck. I'm storing avp in onreply route. That avp is set in radius_extra param.
On Mon, Jul 21, 2008 at 10:32 PM, Bogdan-Andrei Iancu < bogdan@voice-system.ro> wrote:
Ruchir wrote:
I added "modparam("tm", "onreply_avp_mode", 1)" in config file. I've stored the diversion header in reply route using following code.
if($hdr(Diversion)!=null) { avp_delete("$avp(s:src_user_reply)"); $avp(s:src_user_reply) = $hdr(Diversion); xlog("Client call forwarding to $avp(s:src_user_reply)\n "); }
But I always get NUll value in $avp(s:src_user_reply) when I check in script when new invite arrives.
The AVP will not be visible in a different transaction (for another invite). The AVP will be present only when doing acc for the transaction you set the AVP for.
Regards, Bogdan
On Mon, Jul 21, 2008 at 1:48 PM, Bogdan-Andrei Iancu < bogdan@voice-system.ro mailto:bogdan@voice-system.ro> wrote:
Hi Ruchir,
You may try the following approach:
- in onreply_route, if 3xx, store the info from the reply in an
AVP (be sure an enable onreply_avp_mode - http://www.openser.org/docs/modules/1.3.x/tm.html#AEN313)
- in failure route, if the 3xx was selected as final response,
use the AVP for extra accouting.
regards, Bogdan
Ruchir wrote:
I'm using uac_redirect module to handle redirect and accounting from openser. Redirect works fine so as cdr but I'm not getting how to write redirect reason in cdr. I didn't find any way to find and store redirect reason(call forward, busy, no answer) in CDR. Does anyone know how to do it?
_______________________________________________ Users mailing list Users@lists.openser.org <mailto:Users@lists.openser.org> http://lists.openser.org/cgi-bin/mailman/listinfo/users
Here it is my failure route where I handle 302 response.
failure_route[1] { xlog("------- failure_route[1] ----- \n "); t_on_branch("1");
if(t_check_status("302")) { xlog("------- t_check_status(302) ----- \n ");
get_redirects("4:1","
Redirected"); route(1); }
if( t_check_status("486") && isbflagset(17)) { xlog("------- t_check_status(486) -- isflagset(17) ----- \n "); end_media_session(); #resetbflag(6); append_hf("SRC-USER: $rU\r\n"); if(avp_pushto("$ruri","$avp(s:cfwdbusy)")) { append_hf("SRC-CALL-TYPE: cfwdbusy\r\n"); append_hf("CFWD: YES\r\n"); avp_delete("$avp(s:cfwdbusy)"); resetbflag(17); append_branch(); append_hf("PREV_STATUS: $T_reply_code\r\n"); #route(5); $avp(i:120) = $avp(s:inv_timeout); route(1); exit; } }
if( t_check_status("408") && isbflagset(18)) { xlog("------- t_check_status(408) -- isflagset(18) ----- \n ");
end_media_session(); #resetbflag(6); append_hf("SRC-USER: $rU\r\n");
if(avp_pushto("$ruri","$avp(s:cfwdnoanswer)")) { append_hf("SRC-CALL-TYPE: cfwdnoanswer\r\n"); append_hf("CFWD: YES\r\n"); avp_delete("$avp(s:cfwdnoanswer)"); resetbflag(18); append_branch(); append_hf("PREV_STATUS: $T_reply_code\r\n"); route(5); $avp(i:120) = $avp(s:inv_timeout); route(1); exit;
} else if(isbflagset(4)) { xlog("------- t_check_status(408) -- Voicemail ----- \n ");
if(!t_write_unix("/tmp/sems_sock","voicemail/voicemail_headers")) { xlog("----------------- Error--- not communicating----------- \n "); exit; } exit; } }
}
On Fri, Aug 1, 2008 at 3:05 PM, Ruchir ruchir.lists@gmail.com wrote:
It seems it is not possible?
On Fri, Jul 25, 2008 at 4:20 PM, Ruchir ruchir.lists@gmail.com wrote:
Now I'm getting the forward reason. But still there's problem with CDR. I have set onreply avp by
modparam("tm", "onreply_avp_mode", 1)
I've set following in onreply route
if($hdr(Diversion)!=null)
{ avp_delete("$avp(s:src_call_type)"); $avp(s:src_call_type) = $hdr(Diversion); xlog("Client call forwarding to $avp(s:src_user_reply)\n ");
avp_subst("$avp(s:src_user_reply)",
"/(.*)sip:(.*)@(.*);reason=(.*)/\4/");
switch($avp(s:src_call_type)) { case "unconditional": $avp(s:call_type) = "cwfd"; break; case "user-busy": $avp(s:call_type) = "cwfdbusy"; break; case "no-answer": $avp(s:call_type) = "cwfdnoanswer"; break; default: log("no forwarding\n"); }
}
But the problem is that records are not generated the way we expect and
the way it works in normal forwarding using usr_preferences. For example call is forwarded from one user to another, the first leg of the call should be logged as it should normally be($fU in leg source, $rU in leg destination & calltype=call) and in next cdr log, it should log with forwarding details(Forwarding user in leg source, forwarded user in leg destination & calltype=cfwd). But it actually generates 5 records(1 failed invite, 2 ok invites & 2 byes, instead of 2 invites & 2 byes) of the call. Also as we set calltype and leg source in onreply route, it'll store that date for the first leg of the CDR which should not happen. Any advice how to forward the details to next call leg?
On Tue, Jul 22, 2008 at 3:59 PM, Ruchir ruchir.lists@gmail.com wrote:
I tried this but no luck. I'm storing avp in onreply route. That avp is set in radius_extra param.
On Mon, Jul 21, 2008 at 10:32 PM, Bogdan-Andrei Iancu < bogdan@voice-system.ro> wrote:
Ruchir wrote:
I added "modparam("tm", "onreply_avp_mode", 1)" in config file. I've stored the diversion header in reply route using following code.
if($hdr(Diversion)!=null) { avp_delete("$avp(s:src_user_reply)"); $avp(s:src_user_reply) = $hdr(Diversion); xlog("Client call forwarding to $avp(s:src_user_reply)\n "); }
But I always get NUll value in $avp(s:src_user_reply) when I check in script when new invite arrives.
The AVP will not be visible in a different transaction (for another invite). The AVP will be present only when doing acc for the transaction you set the AVP for.
Regards, Bogdan
On Mon, Jul 21, 2008 at 1:48 PM, Bogdan-Andrei Iancu < bogdan@voice-system.ro mailto:bogdan@voice-system.ro> wrote:
Hi Ruchir,
You may try the following approach:
- in onreply_route, if 3xx, store the info from the reply in an
AVP (be sure an enable onreply_avp_mode - http://www.openser.org/docs/modules/1.3.x/tm.html#AEN313)
- in failure route, if the 3xx was selected as final response,
use the AVP for extra accouting.
regards, Bogdan
Ruchir wrote:
I'm using uac_redirect module to handle redirect and accounting from openser. Redirect works fine so as cdr but I'm not getting how to write redirect reason in cdr. I didn't find any way to find and store redirect reason(call forward, busy, no answer) in CDR. Does anyone know how to do it?
_______________________________________________ Users mailing list Users@lists.openser.org <mailto:Users@lists.openser.org> http://lists.openser.org/cgi-bin/mailman/listinfo/users