Keep in mind that the Auto Attendant is a separate entity. Just like the Phone Port it has its own Primary Line, DigitMap and OutboundCallRoute. These need to be correct for the calls that you intend to use it for. The AA "call-back" does depend on your OBi device receiving CallerID from the cell phone making the original call.
The service you use for the call-back call does not have to be the same service you use for the resulting outgoing international call.
Let's say that your two cell phone numbers are 12222222222 and 13333333333. Put the following rule at the beginning of your SP2 InboundCallRoute:
Voice Services > SP2 Service > X_InboundCallRoute:
{(12222222222|13333333333):aa($1)},{ ... existing rules here ...
It says if 12222222222 or 13333333333 calls, the call is routed to AA.
If caller hangs up before the AA answers, the AA calls the number represented by $1, which is the incoming callers CallerID. In this case the AA will call-back using its Primary Line. You may wish this to be your Canadian local service on SP1, so leaving the SP2 service free for placing the international call.
You can force the AA to use a service that is not its Primary Line by using a rule such as this:
Voice Services > SP2 Service > X_InboundCallRoute:
{(<**2>(12222222222|13333333333)):aa($1)},{ ... existing rules here ...
This would route the call-back call via the SP2 Service.
If there is doubt about matching the incoming call CallerID, you can specify to say match the last nine digits of the incoming CallerID using a rule such as this:
Voice Services > SP2 Service > X_InboundCallRoute:
{(x.222222222|x.333333333):aa($1)},{ ... existing rules here ...
This can be useful particularly when matching calls coming in via international routes where the exact number format might not be known. Look at Call History via the OBi's local ip address page to see the exact format of incoming CallerIDs.
The method detailed in this post instigates a call-back from the AA without the original call being answered, so that call should not be charged for. There is another method by using AA Option 3, but this requires the original call to be answered, so incurring a charge.