phonenumbers.pl 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. use Kamailio::Constants;
  2. use Kamailio::Utils::PhoneNumbers;
  3. # Demonstrate how the PhoneNumbers class works.
  4. sub canonical {
  5. my $m = shift;
  6. if ($m->getMethod() eq "INVITE") {
  7. my $p = new Kamailio::Utils::PhoneNumbers(publicAccessPrefix => "0",
  8. internationalPrefix => "+",
  9. longDistancePrefix => "0",
  10. countryCode => "49",
  11. areaCode => "761",
  12. pbxCode => "456842");
  13. my $u = $m->getRURI();
  14. if ($u =~ m/(.*)sip:([+0-9]+)\@(.*)/) {
  15. my $c = $p->canonicalForm($2);
  16. Kamailio::log(L_INFO, "canonical number in '$u' is '$c'\n");
  17. } else {
  18. Kamailio::log(L_INFO, "Not a POTS number.\n");
  19. }
  20. }
  21. return 1;
  22. }
  23. sub dialnr {
  24. my $m = shift;
  25. if ($m->getMethod() eq "INVITE") {
  26. my $p = new Kamailio::Utils::PhoneNumbers(publicAccessPrefix => "0",
  27. internationalPrefix => "+",
  28. longDistancePrefix => "0",
  29. countryCode => "49",
  30. areaCode => "761",
  31. pbxCode => "456842");
  32. my $u = $m->getRURI();
  33. if ($u =~ m/(.*)sip:([+0-9]+)\@(.*)/) {
  34. my $c = $p->dialNumber($2);
  35. Kamailio::log(L_INFO, "dial number in '$u' is '$c'\n");
  36. } else {
  37. Kamailio::log(L_INFO, "Not a POTS number.\n");
  38. }
  39. }
  40. return 1;
  41. }