Welcome to the community!
There are no long distance (LD) charges on incoming calls from any destination (domestic or international) -- provided you are within your incoming local calling area (LCA)...
Your incoming LCA is based on the geographical location that is associated with your number. It has nothing to do with your own physical location at the time you receive a call. On the other hand, your outgoing LCA is determined entirely by your physical location at the time of a call, and has no ties to any specific geographical location, other than the one in which you're standing.
All incoming and outgoing calls are considered airtime. Receiving calls while outside of your incoming LCA is considered LD. Making calls while roaming can either be local or LD, depending on whether the call destinations are within or outside of your outgoing LCA.
Since most newer plans include Canada-wide calling, the LCAs would not be relevant for those plans. However, there might be some older plans as well as some of the prepaid plans which only include local calling.
You can verify whether you have Canada-wide calling via My Account --> Usage & Services --> Mobile --> View full plan details. If your plan does have Canada-wide calling, receiving calls while you're anywhere in Canada will not incur LD charges. Additionally, making calls to anywhere in Canada would also not incur LD charges.
**edit** Additionally, since your friend has a Canadian phone number, calling them while they are in the US would still not incur LD charges because it's a Canadian phone number.**
Hope this helps