[OpenSER-Users]

Martin.Gruber1 at infineon.com Martin.Gruber1 at infineon.com
Wed Sep 26 10:58:11 CEST 2007


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 at 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]+ at .*")
  {
        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






More information about the Users mailing list