OK so I connected a 1 year old USB modem (driverless, proper hardware modem - CX93010, firmware CX93001-EIS_V0.2013-V92) to the OBI200 with an RJ11-RJ11 cable.
The modem is set to the UK country code, and caller ID is both supported and enabled (AT+VCID=1 or 2). The OBI web pages continue to reliably show the CLI every time.
With the modem set to AT+VCID=1 (formatted CLI) and the OBI set to after first ring or before first ring or after polarity reversal, I see no caller ID.
With AT+VCID=2 (modem prints raw unformatted CLI) and
only when the OBI is set to "after polarity reversal" I saw a CLI string from the modem which (according to
http://melabs.com/resources/callerid.htm ) contained sensible data including caller ID (including the checksum). But I could not recreate this with AT+VCID=1 (modem should print formatted CLI); what is more, once I had tried that, if I switched the modem back to AT+VCID=2 in the modem, it no longer would show any caller id until the phone line was disconnected from the modem and reconnected.
The DECT phone continued to refuse to show any CLI.
It really feels like the OBI is not doing something quite correctly. I am pretty much out of ideas and cannot see anything worth changing - time to escalate to Obihai...