You have a problem with your attempt - the called Number must be a varchar column so you can use SUBSTRING but you haven't surrounded the number with quotes.
I've assumed the following data schemas:
create table [Call Details]
(
OrigParty1 bigint,
calledNo varchar(50),
DateOfCall Date,
seconds int
)
create table Country
(
id int,
Country varchar(30),
CountryCode int,
RatePerMin decimal(15,2)
)
And this query will get the details for each call:
select OrigParty1, CalledNo, Country, seconds * RatePerMin as TotalCost
from [Call Details] CD
LEFT OUTER JOIN Country C
ON CD.calledNo LIKE '00' + CAST(C.CountryCode AS varchar) + '%'
Note there will be an issue if any of the 2 digit codes start with the same two digits as a 3-digit code. I don't think this can be the case with genuine country codes, it only became apparent because I was using made up data.
[EDIT] - I have noticed another issue in that to call a number you should first use the international dialling code, followed by the country code followed by the number. The solution I've presented here doesn't handle that situation - you would need to replace the hard-coded '00' with the appropriate code