Updated libphonenumber implementation

This commit is contained in:
Trial97
2021-10-21 16:46:51 +03:00
committed by Dan Christian Bogos
parent 7104b5b713
commit a79f1d33aa
3 changed files with 21 additions and 8 deletions

View File

@@ -19,6 +19,8 @@ import (
"fmt"
"github.com/nyaruka/phonenumbers"
"golang.org/x/text/language"
"golang.org/x/text/language/display"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/utils"
@@ -195,10 +197,19 @@ func (dDP *libphonenumberDP) fieldAsInterface(fldPath []string) (val interface{}
case "NumberType":
val = phonenumbers.GetNumberType(dDP.pNumber)
case "GeoLocation":
geoLocation, err := phonenumbers.GetGeocodingForNumber(dDP.pNumber, phonenumbers.GetRegionCodeForNumber(dDP.pNumber))
regCode := phonenumbers.GetRegionCodeForNumber(dDP.pNumber)
geoLocation, err := phonenumbers.GetGeocodingForNumber(dDP.pNumber, regCode)
if err != nil {
utils.Logger.Warning(fmt.Sprintf("Received error: <%+v> when getting GeoLocation for number %+v", err, dDP.pNumber))
}
if geoLocation == utils.EmptyString { // until https://github.com/nyaruka/phonenumbers/issues/100 is fixed
var reg language.Region
if reg, err = language.ParseRegion(regCode); err != nil {
utils.Logger.Warning(fmt.Sprintf("Received error: <%+v> when converting region in GeoLocation for number %+v", err, dDP.pNumber))
} else {
geoLocation = display.English.Regions().Name(reg)
}
}
val = geoLocation
case "Carrier":
carrier, err := phonenumbers.GetCarrierForNumber(dDP.pNumber, phonenumbers.GetRegionCodeForNumber(dDP.pNumber))