Hi @all,
I have following problem. I have registered all my phones on OpenSER with the full number. e.g. 43 11555 1007 When one employee from one site wants to call an employee from the same site I want them only to dial 1007 not The whole number. I have following perl script, but when I use the "canonical" function, it always adds "+" in front of the number.
I get following message: canonical number in 'sip:1777@server.com' is '+43115551007'
After the execution of the perl script I want to check, if the user with 43115551007: It looks like this:
if (uri=~"sip:[0-9]+@.*") { perl_exec("canonical"); if (does_uri_exist()) { route(2); } else { #route to LCR-Module route(3); }; }
But it does not run well.
The script looks like this: ------------------------------------------------- use OpenSER::Constants; use OpenSER::Utils::PhoneNumbers;
sub canonical { my $m = shift;
if ($m->getMethod() eq "INVITE") { my $p = new OpenSER::Utils::PhoneNumbers(publicAccessPrefix => "",
internationalPrefix => "",
longDistancePrefix => "", countryCode => "43", areaCode => "11555", pbxCode => "");
my $u = $m->getRURI();
if ($u =~ m/(.*)sip:([+0-9]+)@(.*)/) { my $c = $p->canonicalForm($2); OpenSER::log(L_INFO, "canonical number in '$u' is '$c'\n"); } else { OpenSER::log(L_INFO, "Not a POTS number.\n"); } } return 1; }
Can anyone provide me some help?
Thanks
martin