I am experiencing an issue with server side call forward always which I didn't see
before but I now believe has always existed. Call forward always has been working. We
recently switched phone manufacturers and now have the ability to offer bridged line
appearance (BLA). Part of the process for offering BLA is to have the phones register with
the shared attribute for a given line. When we enable this attribute server side call
forward always breaks. When I say break I mean that the call forwards OK but the
intermediate IP phone now rings which it never did before.
Using ngrep I see that even with the old config (non-BLA setup) we had the same message
flow:
Invite (from PSTN gateway)->
Invite received at proxy->
Proxy responds to gateway with 200 OK->
Proxy loads forward address from mysql usr_preferences table
Proxy rewrite R-URI to the forward address -
avp_pushto("$ruri/username", "s:fwdaaddr");
Proxy send invite to this new address - but...
Proxy also sends invite to each contact address registered to the original
AOR. This should not happen but I think it was
Always happening and the old phones just ignored it. Any thoughts on why and
how to correct this behavior?
The ser.cfg snippets involved are included below:
Determine if call forward all is on:
# call forward always
if (avp_db_load("$ruri/username", "s:callfwdall")) {
if (avp_check("s:callfwdall","eq/y/i")) {
xlog("L_INFO", "\n[SER]: [%Tf] [%ci] User <%ru> has
enabled Call Forward Always\n");
avp_write("$ruri", "$ocn"); - save original RURI for
voicemail access if needed
if (avp_db_load("$ruri/username", "s:fwdaaddr")) {
avp_pushto("$ruri/username", "s:fwdaaddr");
rewritehostport("mydomain.edu");
xlog("L_INFO", "\n[SER]: [%Tf] [%ci] Calls for user
<%tu> FORWARDING to <%ru>\n");
route(2);
break;
};
And call relaying is done by:
route[2] {
xlog("L_INFO", "\n[SER]: Route block #2 campus 5-digit
extensions:\n\n");
xlog("L_INFO", "\n[SER]: [%Tf] [%ci] Route block #2: sending
oncampus call from <%fu> to local gateway\n");
avp_write("65", "inv_timeout");
rewritehostport("my-gwy-ip-address:5060");
t_on_failure("1"); # for gwy failover
t_relay();
break;
};
Thanks,Steve
Senior Network Engineer,
Information Systems and Computing
Networking and Telecommunications , Suite 221A /6228
University of Pennsylvania
Voice:215-573-8396
FAX:215-898-9348