SELECT p.num AS number, p.cardID as voipNumber,gx.description AS description, ip.dialstring,
IF(ip.category = 'F', 'FORWARD',LEFT(ip.dialstring, 3)) AS routingType,
IF(ip.category = 'F', SUBSTRING_INDEX(dialstring, '|', -1),NULL) AS forwardNumber,
IF(ip.category = 'FAX', SUBSTRING(dialstring, 5),NULL) AS forwardEmail
FROM callingcard.pstnnum p
LEFT JOIN callingcard.incomingnum i ON (p.num = i.number)
LEFT JOIN callingcard.incomingnum_dp ip ON (ip.id = i.id)
LEFT JOIN store.geographic_numbers gx ON ( LEFT(p.num,LENGTH(gx.prefix)) = gx.prefix )
WHERE p.num LIKE '%' LIMIT 50;