{"id":2530,"date":"2009-10-29T13:22:00","date_gmt":"2009-10-29T13:22:00","guid":{"rendered":"http:\/\/www.b.shuttle.de\/hayek\/Hayek\/Jochen\/wp\/blog-en\/2009\/10\/29\/creating-phone-book-and-diary-entries-from-incoming-calls-on-my-router\/"},"modified":"2009-10-29T13:22:00","modified_gmt":"2009-10-29T13:22:00","slug":"creating-phone-book-and-diary-entries-from-incoming-calls-on-my-router","status":"publish","type":"post","link":"https:\/\/wp.jochen.hayek.name\/blog-en\/2009\/10\/29\/creating-phone-book-and-diary-entries-from-incoming-calls-on-my-router\/","title":{"rendered":"creating phone book and diary entries from incoming calls on my router"},"content":{"rendered":"<p>\t\t\t\tIf you read this title, how mad do you think I am? Honest!<\/p>\n<p>Alright, &#8220;as you know&#8221; (so of course this article only applies to some sort of computer <i>nerds<\/i>), my router is a FRITZ!Box 7270, it&#8217;s also the base station for my (wireless) phones, and a lot more &#8230; &#8212; certainly one of my most important toys or gadgets. And I have 2 of them, one for at home, one for anywhere outside, where I can only connect to the Internet through UMTS.<\/p>\n<p>So alright, back to the title of this article!<\/p>\n<ul>\n<li>It&#8217;s nice to record your incoming and outgoing calls in your diary, right? (my diary is <i>emacs style<\/i>)<\/li>\n<li>It&#8217;s nice to get something descriptive displayed on your phone, when somebody calls, right?<\/li>\n<li> It&#8217;s nice to extend your phone book through time as easily as possible, right?<\/li>\n<\/ul>\n<p>\nWell, my router is running Linux as its operating system kernel, and <i>BusyBox<\/i> on top of it. On each incoming phone call it runs a shell script with a few parameters, of course the caller&#8217;s phone# (if available) and also the callee&#8217;s phone#. (I do have more than one phone#, and why not also record the <b>called<\/b> phone#, just for the record?) It tries to associate a name with the caller&#8217;s phone#, if there is a matching entry in the phone book.<\/p>\n<p>Quite a while ago I started implementing such a shell script, and obviously (as it is <b>almost<\/b> an <b>ordinary<\/b> (bash) shell script), I can develop and test it on any of my computers, that can run shell scripts, like any of my openSuSE computers, any WinXP computer running cygwin, a Mac running OS X, &#8230; . Yes, I cannot create a <b>full blown<\/b> shell script, I will not pipe a lot through one-liner perl or ruby scripts on my router, but still: it&#8217;s a handy and useful, not so tiny shell script.<\/p>\n<p>So far it appears to me, as if no such <i>executable<\/i> gets called on the router for <b>outgoing<\/b> calls, but I can still mimic this behaviour by calling that script on my main development box.<\/p>\n<p>Having said this, my script (<i>fritz_box_calllog.sh<\/i>) fulfills all the requirements, that I listed above in that bullet list.<br \/>\nFor incoming calls without caller id and\/or without a matching entry in the phone book it creates a piece of XML text, that I can paste into my FRITZ!Box XML phone book, and where I can fill in a phone# and a name or any descriptive text, so next time, I want to dial that phone# myself, I can select it from the phone book. And maybe another time that person will call you <b>with<\/b> caller id, and then you will be able to greet that person with her\/his name. Wouldn&#8217;t that be nice?<\/p>\n<p>The implementation of this software also got inspired by Matthias H\u00fchne&#8217;s &#8220;<a href=\"http:\/\/hosy.de\/dialfritz\/\">Dial!Fritz<\/a>&#8220;, that I run on my iPhone. But of course his software is far completer and nicer, and it&#8217;s <b>well integrated<\/b>.<br \/><span><\/span>\t\t\t\t<\/p>\n","protected":false},"excerpt":{"rendered":"<p>If you read this title, how mad do you think I am? Honest! Alright, &#8220;as you know&#8221; (so of course this article only applies to some sort of computer nerds), my router is a FRITZ!Box 7270, it&#8217;s also the base station for my (wireless) phones, and a lot more &#8230; &#8212; certainly one of my [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false,"_share_on_mastodon":"0"},"categories":[666],"tags":[],"class_list":["post-2530","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"share_on_mastodon":{"url":"","error":""},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/paO0kP-EO","jetpack_likes_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/wp.jochen.hayek.name\/blog-en\/wp-json\/wp\/v2\/posts\/2530","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wp.jochen.hayek.name\/blog-en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wp.jochen.hayek.name\/blog-en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wp.jochen.hayek.name\/blog-en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wp.jochen.hayek.name\/blog-en\/wp-json\/wp\/v2\/comments?post=2530"}],"version-history":[{"count":0,"href":"https:\/\/wp.jochen.hayek.name\/blog-en\/wp-json\/wp\/v2\/posts\/2530\/revisions"}],"wp:attachment":[{"href":"https:\/\/wp.jochen.hayek.name\/blog-en\/wp-json\/wp\/v2\/media?parent=2530"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wp.jochen.hayek.name\/blog-en\/wp-json\/wp\/v2\/categories?post=2530"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wp.jochen.hayek.name\/blog-en\/wp-json\/wp\/v2\/tags?post=2530"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}