News:

On Tuesday September 6th the forum will be down for maintenance from 9:30 PM to 11:59 PM PDT

Main Menu

Detect caller ID from PSTN

Started by Islander48, October 25, 2014, 11:57:09 PM

Previous topic - Next topic

Islander48

Our telco sends out caller IDs from both landlines and mobile devices. We know this because whenever we receive a call on a mobile device we can see the caller ID (number).
I want to route certain incoming caller IDs through the AA but the Obi110 does not seem to recognize incoming caller IDs. I know this because the call history (accessed through the local portal) does not show any CID for such calls. How can I access the CID from the PSTN line? And is it possible to route it through the AA?

ianobi

QuoteOur telco sends out caller IDs from both landlines and mobile devices. We know this because whenever we receive a call on a mobile device we can see the caller ID (number).

This does not necessarily mean that your Telco is sending CallerID on PSTN landlines to your phone / OBi. Many companies charge for that facility.

How CallerID is sent on a landline will also vary depending on where you live. FSK (Bell 202) is common in North America, FSK (V.23) in UK and there are others.

After a call through an OBi look at Status > PHONE & LINE Status > LastCallerInfo. If CallerID is present, then it should show it there even if the OBi is not set up correctly to process it. If it is there, then try the options under Physical Interfaces > LINE Port > Port Settings > CallerIDDetectMethod. If the method is  FSK (Bell 202), then you may need to make sure that Physical Interfaces > LINE Port > LINE Port > RingDelay is long enough to process CallerID, which arrives after the first ring - at least 4000 (4 seconds).

If CallerID is received and processed by the OBi, then it can be used to route those calls through the AA and other routing tricks.

Islander48

LastCallerInfo says .. so I suppose caller ID is not available?

drgeoff

Quote from: ianobi on October 26, 2014, 02:53:16 AMAfter a call through an OBi look at Status > PHONE & LINE Status > LastCallerInfo. If CallerID is present, then it should show it there even if the OBi is not set up correctly to process it.
That's counter-intuitive!  As to whether it is true or not I don't have any evidence but ianobi 's words are never to be treated lightly.

ianobi

Try disconnecting the OBi110 and connecting a different device that can receive CallerID. For example, most DECT phones will decode CallerID.

Also, ask your Telco if they send CallerID on PSTN lines and if so, what format is it sent in.

ianobi

@ drgeoff

QuoteAfter a call through an OBi look at Status > PHONE & LINE Status > LastCallerInfo. If CallerID is present, then it should show it there even if the OBi is not set up correctly to process it.
That's counter-intuitive!

I agree! I'm working from memory, but I'm sure that I have found that in the past. I do have a British Telecom line, but I don't use it for anything much and refuse to pay for CallerID, so I can't really test it.

It would be interesting to see a test where CallerID works, then change the CallerIDDetectMethod, so it does not get decoded and does not appear in Call History, then see if CallerID shows in LastCallerInfo.

drgeoff

Quote from: ianobi on October 27, 2014, 01:51:28 AM
@ drgeoff

QuoteAfter a call through an OBi look at Status > PHONE & LINE Status > LastCallerInfo. If CallerID is present, then it should show it there even if the OBi is not set up correctly to process it.
That's counter-intuitive!

I agree! I'm working from memory, but I'm sure that I have found that in the past. I do have a British Telecom line, but I don't use it for anything much and refuse to pay for CallerID, so I can't really test it.

It would be interesting to see a test where CallerID works, then change the CallerIDDetectMethod, so it does not get decoded and does not appear in Call History, then see if CallerID shows in LastCallerInfo.
My interest was piqued enough to do the experiment.  I do have a British Telecom PSTN line with Caller ID.  My 110 normally has CallerIDDetectMethod set to 'FSK(V.23)'.

I changed that to 'FSK(Bell 202) and made a call in to the PSTN line.  OBi's call history and the phone display showed the calling number perfectly.

I then changed it to 'DTMF(Finland,Sweden)' and called again.  Call history showed nothing for Peer number and nothing was passed to the phone.  Nothing in LastCallerInfo.

I then changed it to 'DTMF(Denmark)' and called again.  No peer number in call history and nothing passed to the phone.  Nothing in LastCallerInfo.

Not having access to a line with the other 3 types of Caller ID signalling, I cannot complete the 4 by 4 matrix.  However it would appear that ianobi's earlier assertion is not completely true.  Although there is at least one 'wrong' combination which does work, there are at least two which do not.

Would be interesting if those with a POTS line with FSK(Bell202) or one of the two DTMF versions could also perform the experiment and report the results.


azrobert

I have a US PSTN line connected to an OBi110.
I changed the CallerIDDetectMethod to: FSK(V.23)

The wife is home and hates when I start making test calls, so I waited for a call.
The OBi110 Call History and LastCallerInfo showed to inbound callerid correctly.

I have not tried the other methods, but I assume they will fail.

ianobi

@ drgeoff & azrobert

Thanks for doing the experiment. Sorry for the delayed reply, I have been away from home for two days.

Looks like I was wrong on this one! I hope the OP takes note of my Reply #4 and checks using alternative methods.

Slightly in my defence, there does seem to be room for some confusion. It looks like the OBi recognises both FSK methods using either FSK setting. I cannot remember for sure, but I may have had an XLink device set up on my Line Port. If I had set the detect method to FSK (Bell 202) to suit the XLink, but left the RingDelay at 0 (normal for FSK (V.23) in the UK), then I'm guessing LastCallerInfo would record a number, but the OBi would not have time to decode it, so it would not appear in Call History.



drgeoff

Quote from: ianobi on October 29, 2014, 06:12:51 AM
.... then I'm guessing LastCallerInfo would record a number, but the OBi would not have time to decode it, so it would not appear in Call History.
That's the bit I don't understand.  If the OBi wouldn't have time to decode the Caller ID how could it have a number to put in LastCallerInfo?  For an incoming PSTN/POTS call the only possible source of info is the Caller ID.

ianobi

I agree that there are still unanswered questions here. If I get time (might be next week) I will set up my original config using XLink and see if I can replicate my findings.

Meanwhile, someone in the US (azrobert?) may try using detect method FSK (Bell 202) and RingDelay 0 and see what happens.

This may be a timing issue. If RingDelay is set to 0 then the call is processed and routed before CallerID has been received (after first ring with Bell 202), so that it does not appear in Call History, but maybe the OBi carries on and processes the CallerID and records it in LastNumberInfo. That's all guesswork on my part!

azrobert

#11
I thought there was a fix that would send the callerid to the phone port when it became available, even if the InboundCallRoute didn't see the callerid. I looked through the firmware enhancements/bug fixes and didn't see it listed. Maybe I'm just remembering a feature I wanted. I will test this and report back.

azrobert

With RingDelay=0 the Call History does not show CallerID, but my phone displayed the CallerName and CallerID.  LastCallerInfo also showed CallerName and CallerID under both Phone And Line Port Status.


ianobi

azrobert - thanks for doing the testing. It does at least prove that it is possible for CallerID to be recorded in LastNumberInfo and not in Call History.

I believe that my guesswork in Reply #10 is the explanation.

Islander48

Yes Ianobi, I was wrong in assuming that CID is always sent. If we want CID to be sent to a landline we have to pay a setup fee and a monthly fee which we did. For our telco it turns out that when a call is received from a mobile, the CID consists of two single apostrophes ('') followed by a space and then the number including country code. When a CID is received from a landline the country code is omitted and SOMETIMES the apostrophes are preceded by a Tab character.
The Obitalk Service seems to look at the raw CID received so the unwanted characters have to be entered into the InboundCallRoute. It would be nicer if the Obitalk Service would use the processed CID appearing in the call history. Or can we filter them ourselves?

ianobi

With regard to an OBi110, routing a call using an InboundCallRoute is done using the CallerID shown in the OBi110 Call History as "Peer Number". There may also be some information shown in "Peer Name", but this is not used to route calls.

Going back to your original post, there are several ways to achieve what you want. After you have arranged for CallerID to be sent, have a look at what Status > Call History > Peer Number shows for the incoming call, then use that specific information:

Physical Interfaces > LINE Port > InboundCallRoute:
{(12345678901|10987654321):aa},{ph}

In this case calls from 12345678901 and 10987654321 will be routed to the auto attendant. All other calls will ring the phone attached to the OBi110 Phone Port.


Alternatively, something like this:

Physical Interfaces > LINE Port > InboundCallRoute:
{(x.5678901|x.7654321):aa},{ph}

The "x." means any number of digits or no digits. Any calls from numbers where the last seven digits are 5678901 or 7654321 will be routed to the auto attendant. This is a way of accepting the number with or without country code. All other calls will ring the phone attached to the OBi110 Phone Port.

It's rare for characters other than numbers to show up in the actual CallerID as recorded in Call History > Peer Number. If this is the case in your country, then you might try something like:

Physical Interfaces > LINE Port > InboundCallRoute:
{(@.5678901|@.7654321):aa},{ph}

The "@." should accept any alphanumeric character or none at all. I should say that I have not tried this last suggestion.

Islander48

Although Call History strips off the unwanted characters it did not work to specify the number only in the InboundCallRoute, But your last suggestion, @.123..., works very well. Thanks.