[Serusers] Questions about strip() and altering ANI/From: numbers
Miklos Tirpak
miklos at iptel.org
Fri Mar 13 10:05:25 CET 2009
Hello,
On 03/11/2009 05:25 PM, Frank Durda IV wrote:
> When using strip() on a E.164 format number (eg +17895551212),
> does strip(2) delete the +1, or is it going to delete "17"
> in the shown example? I seem to be getting the latter
> behavior. If the latter is what is intended, how does one
> get rid of the plus?
strip(2) should strip the first two characters of the user name, no
matter what it is, so "+1" in your case.
>
> Second, is there something equivalent to strip() for editing
> the ANI/From: number? As I am doing PSTN gateway conversions,
> I have to strip the +1 from a E.164 ANI/From: (if sent) at some
> point so that the destination PSTN switch can correctly do
> the Calling Name database lookup. The North American
> Calling Name databases will only match if exactly ten digits
> are provided, so the ANI/From: has to be scrubbed down
> to ten digits if the country code in the ANI/From:
> begins with +1.
If you want to remain compatible with the old SIP RFC, 2543, then you
should not modify the From header. Check which standards/drafts the
gateway supports, you might want to add a Remote-Party-ID, or a
P-Asserted-Identity header instead, these solutions are cleaner in my
opinion. Have a look at etc/ser-oob.cfg.
if (!@from.user =~ "^\+1") {
# move the user name to an AVP
$new_user = @from.user;
# strip the +1
subst_attr("$new_user", "/\+1(.*)$/\1/");
# delete existing RPID header
remove_hf_value("Remote-Party-ID");
# add a new RPID
append_hf_value("Remote-Party-ID",
"<sip:%$new_user@%@from.host>;screen=yes");
del_attr("$new_user");
}
(not tested)
Miklos
>
> Thanks!
>
>
>
> _______________________________________________
> Serusers mailing list
> Serusers at lists.iptel.org
> http://lists.iptel.org/mailman/listinfo/serusers
More information about the sr-users
mailing list