On Tue, Jan 05, 2016 at 03:38:58PM +0000, Jonathan Hunter wrote:
sql_pvquery("cd","select DestinationMsisdn,SourceMsisdn from MsisdnPoolAllocations where PoolMsisdn='$rU'","$var(MOdest),$var(NewSourceMSISDN)"); However this returns a value of -509264926 for $var(MOdest) which should just be the 3785702370 number. What can cause kamailio to interpret this as a negative value? Has anyone seen this before?
What you are seeing is an integer overflow, in this case you are trying to store a number greater than 2^31 in a signed 32bit int. -509264926 (3785702370-2^32) is the correct answer if the var is a signed 32bit int.
I treat phonenumbers as strings (both in the database and kamailio) since I store them as E.164 with a leading + (which results in a bit more diskspace)
If you don't need the number as int in kamailio, try casting it to a string in the query.