the voice/libvoice/Lucent.c file omits code that allows Lucent Modems to detect caller ID information. This two line modification permits the proper AT command to activate caller ID detection. The code was taken from another modem library file. The following two snippets from the vgetty log illustrates the benefits: Prior to patch log entry: 01/31 18:52:43 ##### message keep, length=00:00:12, name='', caller=none, dev=ttyS0, pid=6907 After the patch log entry: 02/01 14:23:35 ##### message keep, length=00:00:10, name='HYMAN PETER ', caller=1234567890, dev=ttyS0, pid=9160 Downstream voicemail apps like tkvoice will pull the caller ID info and use it. Reproducible: Always Steps to Reproduce: Actual Results: Caller ID info shown Patchfile will be attached.
Created attachment 50160 [details, diff] Patch that allows Lucent-chip modems to recognize Caller ID Enjoy!
Thanks Peter, i added it to net-dialup/mgetty-1.1.31-r1 - should be available in an hour. I would appreciate it if you test this version and report every issue. It is package.masked atm.
The 1.1.31-r1 ebuild does not finish installation. The bottom line error is: for i in ; do \ install -c -m 755 $i /var/tmp/portage/mgetty-1.1.31-r1/image//var/spool/voice ;\ done [ -f /var/spool/voice/.code ] || echo '12345' >/var/tmp/portage/mgetty-1.1.31-r1/image//var/spool/voice/.code chgrp fax /var/tmp/portage/mgetty-1.1.31-r1/image//var/spool/voice/.code chgrp: cannot access `/var/tmp/portage/mgetty-1.1.31-r1/image//var/spool/voice/.code': No such file or directory make[1]: *** [vgetty-install] Error 1 make[1]: Leaving directory `/var/tmp/portage/mgetty-1.1.31-r1/work/mgetty-1.1.31/voice' make: *** [vgetty-install] Error 2 !!! ERROR: net-dialup/mgetty-1.1.31-r1 failed. !!! Function src_install, Line 103, Exitcode 2 !!! (no error message) !!! If you need support, post the topmost build error, NOT this status message. 1.1.31 compiled and installed fine
[ -f /var/spool/voice/.code ] || echo '12345' >/var/tmp/portage/mgetty-1.1.31-r1/image//var/spool/voice/.code tests an existing installation. As I was upgrading, .code was not recreated and therefore the ensuing chgrp commang failed since .code was not there! chgrp fax /var/tmp/portage/mgetty-1.1.31-r1/image//var/spool/voice/.code I think the correct way to do this would be to bracket the entire test as an if statement. Something like this: voice/Makefile line 121 if [ -f /var/spool/voice/.code ] echo '12345' >$(VOICE_DIR)/.code chgrp $(PHONE_GROUP) $(VOICE_DIR)/.code chmod $(PHONE_PERMS) $(VOICE_DIR)/.code chmod 660 $(VOICE_DIR)/.code fi if [ -f /var/spool/voice/messages/Index ] echo 'put_filename_here' >$(VOICE_DIR)/messages/Index fi Because the install script assumes it's installing in the final location instead of using DESTDIR. This alleviates that problem!
Created attachment 50952 [details, diff] Makefile patch for voice/ directory These small changes test for the existence of a .code file in /var/spool/voice and for an Index file in /var/spool/messages. If these files DO exist, the current make install breaks. This test will avoid this breakage. (Hope the syntax is OK), works for me!
Lucent patch works, btw.
Thanks for your feedback, Peter! I have two questions. Maybe you can answer them (or don't you use the voice part at all)? 1) Do you use the .code file? I seems to be used by a script not even installed right now. And it seems to be risky to install it with predefined content. | /var/spool/voice/.code | Access code for remote playback of messages using the dtmf.sh | script I would like to remove it. 2) messages/Index -- does it need to be present? The patch doesn't work (as well as my upgrade patch was not correct too): - can't be done at compile time because it can be different machines. - the path must be prefixed with ${ROOT}
Short answer to your two questions: 1) NO 2) NO. However, read on... 1) Do you use the .code file? No, but it IS important. If not there, a user can't call from a remote location to grab messages. I seems to be used by a script not even installed right now. And it seems to be risky to install it with predefined content. | /var/spool/voice/.code | Access code for remote playback of messages using the dtmf.sh | script dtmh.sh in in the voice/scripts directory with many other examples and it IS mentioned in the voice.conf file. It IS needed. I packaged this for slackware and what I did was dump the samples into /usr/share as follows: /usr/share/mgetty /frontends /patches /samples /usr/share/vgetty /contrib /Perl /scripts and I add voice.conf-dist in the /usr/share/vgetty dir also. While you CAN omit installing .code during the initial install, you should not delete or overwrite it. The problem is that the Makefile is broken when it tests for .code AND finds it! That's what my patch was for. If you omit .code installation, that's fine, but you should seriously consider including the share/ directories I noted. 2) messages/Index -- does it need to be present? Technically, no. It IS used to sequence messages that are played back to a caller. It IS documented, and noted in the voice.conf file. I understand your problem and concern though. Happy to help anyway I can...
replaced mgetty-1.1.31-r1 with a new version -- this one will install and it will no longer create/replace /var/spool/voice/.code and /var/spool/voice/message/Index. Additional scripts are installed into /usr/share/mgetty too. Please test again -- feedback is welcome.
Sorry it took me a bit to review the changes. They worked fine, and I liked the message at the bottom -- although it's not really necessary since 1) anyone that already has the files doesn't need to know this, and 2) they are just dummy files anyway, so anyone who needed them would have to add them. However, there is one additional item and that is the ownership and permissions of the /var/spool/voice and /var/spool/fax directories. /var/spool/voice should be root:modem /var/spool/fax should be root:fax currently it looks like you have only /fax/incoming as root:fax, but really all group users will need outgoing too IMO. I'm not an expert on these ebuild macros, but you might want to change ownership for voice and fax as they are being installed. diropts -m 0755 -o root -g modem keepdir /var/spool/voice/incoming keepdir /var/spool/voice/messages diropts -m 0755 -o root -g fax keepdir /var/spool/fax/outgoing/locks keepdir /var/spool/fax/incoming Lastly, you should add an einfo note that users will have to be made members of either or both the fax and modem groups to use fax and voice mail! einfo Note that users who wish to use the fax capabilities must be members of the group fax and users who wish to use the voicemail capabilities must be members of the group modem in order to access files! einfo use usermod joe -G users,....,fax,modem or similar. something like that. I noticed you added the mgetty subdirectories I suggested, but you omitted the vgetty ones. They are important! /usr/share/vgetty /contrib /Perl /scripts I had added them to a unique directory as above, but I suppose you could add them to the mgetty tree too under vgetty. Looks good!
version bumped to 1.1.33 changes are: - group modem is no longer created as it was never used in the first place. - default config files use fax:fax as owner:group - /var/spool directories are created with -m 0750 -o fax -g fax - info messages in postinst note: the requested content of dir /usr/share/vgetty is installed into /usr/share/mgetty/voice