I've pulled out the code and tested it by itself. While different from the other places where this is done, it is formatting the time correctly. The time that comes out is timezone shifted from UTC, and will be the same as if ncidd used the 'date' command. Try comparing the results from 'date' and 'date -u'. You can throw your own empty test calls into ncidd to check the time by connecting with netcat. e.g. I typed this ~~~ netcat localhost 3333 CALL: ###NMBR6137778888...NAMEtime test+++ GOODBYE...
Are the times in ncidd.log also incorrect, or would it just be wrong for that one call record? (The code that formats the CID line for the missing caller ID is a bit different fro the other time formatting.)
When the option gencid=1, which it appears to be here, a CID record will be produced on the second RING, since caller ID is expected to come before the second RING on a POTS call. The timestamp in the record comes from the system clock when ncidd calls gettimeofday(). The same code is used for the timestamps that appear in the ncidd.log file.
Yes, regex=0 is the default. It's not mentioned in the User Manual, but it is in the comments in the ncidd.conf file.
Yes, the quotes will work to allow you to put spaces in the expression text.
I have no idea why my reply has some words coloured green.
The documentation in the code says * store a black or white list expression for strmatch regex=0 * supports ^1?*expression*$ * the resulting abwstr struct stores precomputed flags for the * special matching characters ^ 1? * and $ plus a pointer to * the remaining substring to be matched * black, white lists are implicitly *expression* so that ^419 will match any call from the 419 area code
I don't see it there either, so apparently there isn't a package for arm7l. It's pretty easy to compile from the source code, instructions are here, the hardest part is in installing the dependencies. https://ncid.sourceforge.io/doc/NCID-UserManual.html#instl_deb_comp
We may have reached the point where there are too many features to document in a useful manual . The user manual describes it briefly here: https://ncid.sourceforge.io/doc/NCID-UserManual.html#addedmodems In practice, an entry at the bottom of the ncidd.conf file (with the first modem) points to another config file for the second modem. The installation will give you prototype ncidd.conf and modem2.conf files. The conf files contain hints; minimal information for the second modem is a lineid and...
Multiple modem support went into version 1.13 which was released mid-2022. Version 1.16 is available now. Testing with two modems on the same phone line was fun.
You should be using gmake instead of make. Instructions for freebsd are in the User Manual at https://ncid.sourceforge.io/doc/NCID-UserManual.html
i would do this for a new install: cd /home/galen/src/ncid/ make clobber make ubuntu sudo make ubuntu-install
Full instructions for a Debian (Ubuntu) build and install are in the User Manual
My dumb question: Did you do the install as root? sudo make ubuntu-install
There is a similar tool inside NCID which returns information about a phone number, though it may not be as up-to-date as the API call to this commercial service. The NTYPE field will be empty for an invalid number: + ncidnumberinfo 14158586273 *FNMBR*415-858-6273*NTYPE*FIX/CELL*CTRY*US*LOCA*California*CARI*NEW CINGULAR WIRELESS PCS, LLC + ncidnumberinfo 14150586273 *FNMBR*415-058-6273*NTYPE*-*CTRY*ZZ*LOCA*-*CARI*- +
There's a link hiding at the bottom of the Summary that leads to the front page for NCID and the current documentation. The source files for the documentation can be found in the source code download (that you can get from the big green button at the top of the Summary page). Follow Network Caller ID Network Caller ID Web Site
Problems with finding the external hangup script are logged as errors at startup. Success is logged in /var/log/ncidd.log at verbose=1 and execution of the script is logged at verbose=3 and 4. Perhaps you haven't set the hupmode option in the ncidd.conf file to turn it on ?
The step-by-step instructions are in the User Manual here https://ncid.sourceforge.io/doc/NCID-UserManual.html#instl_deb_comp The piece you're missing is usually obtained with sudo apt install libphonenumber-dev libicu-dev but there's a good chance that the 32 bit distro that you're getting packages from has different versions of libphonenumber and libicu. Editing the server/Makefile to change to the version you actually have might work (e.g. icu57 becomes icu56), but you might find there have been...
i missed seeing this on first reading, but you said you were expecting to use the internal modem on the ThinkPad. It is quite possible that Linux does not have a driver for this modem, so you will need to use the external modem from your raspberry Pi setup. You can comb through the boot sequence messages to see if it found a driver by running sudo dmesg | less
The most likely thing to have failed in your raspberry Pi is the micro SD card. You might get better results for buying a new 32 gb card and putting raspbian on it. On your IBM T40 you need to use sudo to access the /var/log/ directory and to use the modem. e.g. sudo rm /var/log/cidcall.log.new and sudo ncidd -D -v7 |& less The beginning of the log output will show the startup and initialization of the modem. Read through it carefully.
If you're not getting a log file, try running ncidd in a window with sudo ncidd -D -v7 so that the logging shows up in the window.
The ncidd process needs to run as root. The log file will be in /var/log/ncidd.log The end of the log file should tell you why it is stopping. Try putting a higher number like 7 into /etc/ncid/ncidd.conf for verbose=7 to get more detailed logs.
As you noted, the current hangup feature uses a USB voice modem to pick up, optionally make an announcement and then hang up. It might be possible for sip2ncid to be more than an observer but we need someone with more SIP expertise .
The hangup-fakenum extension does exactly what you're asking for, hanging up on callers with numeric names. It applies a few rules to weed out callers with unlikely numbers, and it can also read a list of valid area codes. The user manual has information on setting up extensions.
As ncidd starts, it checks to see if the hangup extension exists, is named hangup-something, and is executable. In unix, "executable" refers to the file's permission bits, which can be examined with ls -l and set with chmod 755 hangup-something. ncidd invokes the hangup script with /bin/sh -c hangup-something, which you might try out to make sure it runs the python interpreter. Adding set verbose=4 to ncidd.conf will log more information when the hangup script ends.
Filtering by line ID is now in ncidAndroid 0.2.0.12 which you can side load from the Files directory. You will see a button for it on the left side of the screen. The Play store should propagate it to devices soon.
NCID Android version 0.2.0.12
ciddata.log gets corrupt
I'm closing this because it appears that stopping ModemManager fixes the complaint. The code for ncidd's modem interaction should also be more resistant to the confusion caused by interference from the ModemManager.
I'm hoping you meant to type ncidd.service instead of ncid.service. If I were you I would go hunting to see where things ended up being installed. On Ubuntu, mine is in /usr/lib/systemd/system/ncidd.service
Having said "not very difficult to add" I couldn't remember how I was going to do it, though I still plan to do it ...
Regex not filtering in blacklist
Need help with blacklist
CID record does not contain the calling number
NCID 1.13 was released 2022-04-30
I have fixed this for NCID Android 0.2.0.11 and I'm having trouble getting it released through the Play Store (the reviewer is doing an OMG! private phone numbers! thing) so it could take a few more days. You could side load the apk from the NCID Android Files directory after uninstalling the play store version.
Newer versions of NCID support extension scripts for hangup, and you will need to upgrade to the newest version of Raspbian. You might like the hangup-greylist extension which gives an announcement and lets the caller through if they listen to it and call back almost immediately.
I do my testing by putting my cell phone number into the blacklist and calling myself. :')
The leading-one option should not be an issue because the blacklist matches parts of strings, e.g. 3456 will match 8883456123 and 8881233456. If you get totally frustrated, you can email me the log file at verbose=7 edit: fixed the 34567 example
The leading-one option should not be an issue because the blacklist matches parts of strings, e.g. 34567 will match 8883456123 and 8881233456. If you get totally frustrated, you can email me the log file at verbose=7
Look at the bottom of your /var/log/ncidd.log file for the options in effect for the most recent starting of ncidd. This will show the file pathnames and number of lines read in. Also check the hangup settings here. If you raise the verbose level in ncidd.conf to 7 and restart ncidd, you can log the file contents and see it handle the call.
I have seen this kind of behavior when a process (like Chrome) uses up all of the memory. I would use "top" to get the list of processes and then hit "<" four times to get it to sort on the virtual memory sizes. Look for one of the processes that gets bigger over time, which usually indicates a leak.
I'm confused, and I think the installer is too. My guess is that it would be easiest for you to install the few -dev packages needed to get the include files, and then compile NCID from a source download. Compile instructions can be found here https://ncid.sourceforge.io/doc/NCID-UserManual.html#instl_deb_comp and you will use "make ubuntu" and "make ubuntu-install" as the last steps.
You will find some extensions already installed in /usr/share/ncid/extensions, as well as an empty prototype. Instructions can be found in this section of the User Manual https://ncid.sourceforge.io/doc/NCID-UserManual.html#ext_top
The processing of the blacklist only applies to the name and nmbr fields. To catch something in the CARI (carrier) field, you will need to add a hangup extension by creating one or modifying an existing one like hangup-fakenum. The operation and setup is described in the User Manual, but you'll have to do some programming.
My program to extract the numbers has a threshold to protect from errors. When the number of lines in the output falls below 4500, it doesn't publish the list. It hasn't published the list since January. The FCC complaints database has been growing year-over-year, but the number of complaints in each year has declined slightly, and the number of complaints about each individual number has declined. I have been filtering the data to remove old numbers that might have been reassigned to real people,...
Theres a nightly program that runs on the ncid-utils web server to extract the numbers from the FCC 's site. Sometimes they change their format or something about their site, and then it quits producing updates. I'll go look at it ...
droid widget display empty until at least 4 calls in log
i think I've seen this behavior in ncidandroid without figuring out what had happened. The launch screen widget shows four lines and apparently expects there will be four calls. I should be able to get it fixed by January.
I have changed the order of the information that comes out in the pop-up and put new files in https://sourceforge.net/projects/ncid/files/ncidpop/0.10.13/ I don't have the tools to build the installer for the Mac but I'm hoping you can find your current NCIDpop.jar file and replace it with a new one. As another thought, have you considered using the ncid client with a module to call your iMessage sender?
I have changed the order of the information that comes out in the pop-up and put new files in https://sourceforge.net/projects/ncid/files/ncidpop/0.10.13/ I don't have the tools to build the installer for the Mac but I'm hoping you can find your current NCIDpop.jar file and replace it with a new one. As another thought, have you considered using the ncid client with a module to call your Imessage sender?
Version 1.7 is quite old; you should be using the current 1.12 version. You can get it here https://sourceforge.net/projects/ncid/files/ncid/1.12/ The version number for one that is running can be found at the top of /var/log/ncidd.log, and all of the options are repeated there. I'm not sure that ^1800 works with the regex=1 setting that you would need for your ^V(etc) expression, but for what you are trying to do, you might prefer to use the hangup-fakenum extension. It catches some oddly formed...
After some checking, and lining up someone who can build the Windows installer, I think this reordering can be done. Are you using the "3rd party notifier" option? When I try it, everything in $POPUP comes out as a string without any line separation.
NCID Android version 0.2.0.10
The added information about the call is a 1.12 feature. There is no upper bound on the size of the aliases file. ncidd keeps the list in memory to make it somewhat faster to search, but the search is linear because the order is important. I would want to set the verbose level to 7 and examine the logs to see why the call isn't showing the alias results.
It looks like I missed one while I was wrapping things in #ifdef's. You could comment that line 301 out, All of this is a work-around until a better way to resolve the versioning is found.
With a loss of the carrier and geographic lookup functionality, it may be possible for you to compile by removing -DHASCARRIERLOOKUP from the server/Makefile.
I had noticed much the same thing. Some emojis work fine and some make the ncid client fail. Removing the emoji line from cidcall.log fixes it for a while.
If I were you, would be using "ps -ef | grep ncid" to see if there was more than one ncid running. The I would try "kill 2690" to see which one disappeared.
It looks like a fix for this didn't make it into the release. Your workaround is good. The problem is that the systemd startup does not set $HOME, and probably a few other environment variables.
Can you post your logs for the $HOME errors for starting from systemctl? i suspect this didn't get fixed.
I'm a little confused here about what you're trying to start and how you're doing it. I think you want to run one of the ncid client modules like ncid-page. You mentioned startup files in /etc/init.d/ and I suspect that this may be the source of my confusion. These files are leftovers from an earlier version of NCID, and from before Ubuntu switched from using init to using systemd for startup. The configuration file for ncid-page (for example) is: /etc/ncid/conf.d/ncid-page.conf The script that starts...
This affects version 1.8 and later; version 1.7 and earlier had the modem try to hang up on calls for any line ID.
Distinctive ring interferes with hangup
The 1.12 release is available, and has the ability to pick up a modem that has been unplugged and plugged back in.
The solution took longer than a few days. A small code change after months of thinking about it will appear in version 1.13.
NCID android is available for the TV in the Play store, it's currently at version 0.2.0.9
It appears that the Sony Bravia TV is putting the NCIDandroid app to sleep in a way that does not close the connection to the server, much like putting the device into airplane mode. The app's Keep Alive timer will make a new connection roughly every five minutes, eventually using up all of the allowed client connections in ncidd. When the connection table is full, ncidd uses -1 as an array index, and may crash. a) On some devices, Keep Alive should be set to 0 minutes to turn it off b) There is...
I will need to see the ncidd log at a high "verbose" level. Send me what you have now, and then set verbose=7 in ncidd.conf, restart it and wait. I'd like to see the first few lines from "Started:" to "Begin: Loading..." for the run that crashed, and I'd like to see a lot of the end as it gets in trouble and crashes. Please remove personal information like phone numbers and names.
The Settings crash seems to come from the package build that tries to make the package smaller. The bad formatting of short numbers came while adding support for $ALL I'll put an 0.2.0.9 version out soon ...
The Settings crash seems to come from the package build that tries to make the package smaller. The bad formatting of short numbers came while adding support for the server formatted number. I'll put an 0.2.0.9 version out soon ...
Ouch. I tried uninstalling and reinstalling on my tablet from the Play store and it has a similar problem with crashing out of the Settings, which is bad for a new install. Anyway, the Play store version appears to be largely broken.
I wasn't seeing any problem on the TV version, so I uninstalled the one I had put on with adb and loaded the one from the Play store. With no previous settings it shows no calls, and as you say crashes out to the android TV home screen for trying to look at Settings. Hopefully the Play store will give me crash logs. I am seeing your problem for formatting short numbers and having them appear as $AREA-$NPA-$NXX. This should have worked properly without installing NCID 1.12, I will fix this. I'm not...
NCIDandroid 0.2.0.8 is in the Play store now,. I hope it helps. NCID 1.12 is available on Sourceforge ff you want to be among the first to try it.
NCID Android version 0.2.0.8
The ncidd server coming in the 1.12 version of NCID has a fix so it won't crash on too many client connections. The current NCIDandroid 0.2.0.7 wasn't supposed to do this any more, but I wasn't able to reliably duplicate it while trying to fix it. I'm going to release 0.2.0.8 this week, so let me know if it is still happening when you get it, and also tell me what it sends when it connects. -- with verbose level 2, ncidd will log client HELLO messages in /var/log/ncidd.log
I have $ALL in for the next version. Meanwhile, all the digits can be shown with "Show Leading Digits" turned on, and "Phone Number Format" set to $AREA$NPA$NXX .
I also think that the first part of this request is a non-starter, because a number shown in cidcall.log could have been affected by several alias lines and then allowed by the whitelist. On Thu, Jul 29, 2021, 09:25 John L. Chmielewski, jlc@users.sourceforge.net wrote: status: open --> closed Comment: 1: Configable columns will be in NCID 1.12 2: Not implementing mysql at this time. The new cidupdate tool is much faster and should resolve your speed problem. [feature-requests:#26] https://sourceforge.net/p/ncid/feature-requests/26/...
In recent reading of documentation for the Connexant modem, I found a feature that might give us indication of another phone going off hook on the line. I was hoping to use it to stop the outgoing hangup message so I didn't have to shout over it to answer a legitimate call from an 800 number.
NCIDandroid has been changed to show the number as formatted with libphonenumber by a 1.12 server. This will appear in its next release (August). It will fall back to the old behaviour for older ncidd servers, and an option will allow staying with the old format. A $ALL format choice will be added to the old behaviour now that I've found the right spot to insert it. (for September?)
NCIDandroid has been changed to show the number as formatted by a 1.12 server. This will appear in its next release (August). It will fall back to the old behaviour for older ncidd servers, and an option will allow staying with the old format.
This is a good idea, and not very difficult to add. I'm not entirely sure how to indicate that it is active, in case the filter is on by accident or the line name(s) is(are) spelled wrong.
NCID Android: new 'PUT' line type for outgoing smartphone calls
Long delay adding alias on RPi
cidupdate was changed from a script to a C program in 1.11
CID record does not contain the calling number
This ncidd crash may be from the whitelist reading bug, where a blank line with a tab character kills it https://sourceforge.net/p/ncid/discussion/275236/thread/b3484d900a/#a50e
Some of the raspbian versions are smaller than others. You can install the missing tclsh and wish pieces with sudo apt-get install tk
NCID Android version 0.2.0.4
It looks fine until it gets interrupted by an INT signal, presumably cntrl-C. On Sun, Mar 21, 2021, 17:15 Dan Essin, essin@users.sourceforge.net wrote: Hi, I've run another test with a current monitor in line with the modem. it is drawing 70ma. Do the log still show disconnects? Modem is fd 4 NCID connection socket is sd 5 pos 1 End of startup: 03/21/2021 14:04:15 Received Signal 2: Interrupt Terminated: 03/21/2021 14:04:19 Sent Modem 6 of 6 characters: ATH0 Skipped read for a modem response roo...
It looks fine until it gets interrupted by an INT signal, presumably cntrl-C. On Sun, Mar 21, 2021, 17:15 Dan Essin, essin@users.sourceforge.net wrote: Hi, I've run another test with a current monitor in line with the modem. it is drawing 70ma. Do the log still show disconnects? root@raspberrypi:/home/pi# cat /var/log/ncidd.log Started: 03/21/2021 14:04:14 Server: ncidd (NCID) 1.11 API: 1.10 Feature Set 1 2 3 4 5 Sysname: Linux Nodename: raspberrypi Machine: armv7l Release: 5.10.17-v7+ Version: #1403...
On a longer look at the log file, I see that the connection to the modem appears to be unstable. The log shows the tty device appearing and disappearing. While it's possible that the plug or wire is defective or being moved, it is more likely that the power supply isn't able to power both the Raspberry Pi and the attached modem. Try a bigger power supply.
The error message says that another process, perhaps another ncidd, is already using port 3333. unable to bind listen socket: Address already in use. socket: Address already in use Terminated: 03/18/2021 18:13:00
The API description is here http://ncid.sourceforge.net/doc/NCID-API.html
I suggested Python because it is popular with people writing for GPIO control. You can use any language you prefer. The easiest way to interface with the ncidd server is to connect to port 3333 as a client and watch for the caller ID text output. The CID: message indicates a regular call, a HUP: indicates a hang-up, and CIDCALL: messages tell when the ringing stops.
Other than that, the raspberry Pi can control many things through the GPIO pins, so you could get a relay module to do things for you. The best way to control relays would be to write a client in python, which would connect to the ncidd server and listen for CID: and CIDCALL: messages, and then use a Python library to drive the GPIO pins. You would need some other mechanism for opening the relay later, because NCID is not aware of when the line becomes idle again.
I think a relay like that would prevent you from making outgoing calls.
I was typing at the same time as John, but here's my version: NCID does not have the ability to prevent the other phones from ringing. It works more like a very alert assistant who can catch the call on the first ring. At my house we hear the first ring, see the extension-in-use light on the phone and let ncidd talk to it. We wait for the second ring before doing anything about it. One could turn off all the phone ringers and rely on getting caller ID notifications from clients running on android...