Obihai,
I would really appreciate the courtesy of a reply. I will summarize my questions and concerns again.
Assuming the default PHONE Port CallReturnDigitMaps, is this an accurate description of the workings of $LCN, *69, and PHONE Port -> LastCallerNumber?:
The OBi processes the number and trunk name (sp1, sp2, li, pp) of the last incoming call to the PHONE Port through the CallReturnDigitMaps, matching the trunk name to one of the rules. The matching rule's embedded DigitMap then causes **n to be added, except in the case where the call came in the PrimaryLine (pli), and the result is stored in $LCN. *69 Call Return calls the number stored in $LCN using the PHONE Port OutboundCallRoute. $LCN is also used to display PHONE Port -> LastCallerNumber.
If this is not accurate, please provide the correct description.
Currently, *69 and LastCallerNumber do not appear to be working correctly.
Regardless of what PrimaryLine is set to:
Only calls coming in from a SIP trunk get **n added and get returned on the same trunk.
Calls coming in from a Google Voice or OBiTALK trunk do not get **n added and get returned on the PrimaryLine trunk.
*69 fails if the last caller number was from an OBiTALK trunk and PrimaryLine is not set to OBiTALK Service.
*69 fails if the last caller number was from a Google Voice trunk and PrimaryLine is set to OBiTALK Service.
There are probably failure scenarios involving the LINE Port, but I don't have CallerID and cannot test them.
If $LCN, *69, and PHONE Port -> LastCallerNumber were handled properly as I described above, I believe all scenarios would work correctly, returning the call on the same trunk it came in on, regardless of what PrimaryLine is set to.
PLEASE respond to this post.