calllog2ical(or iphonelogd)는 아이폰의 통화내역을 iCal로 옮겨주는 역할을 하는 루비 스크립트이다.

아이폰은 내부적으로 sqlite3를 DB로 사용하고 있고 통화목록은 CallHistory라는 이름의 DB로 관리된다.

이 DB는 /private/var/root/Library/CallHistory/call_history.db 에 위치하고 있고 구조는 다음과 같다.


Jail-broken 된 아이폰에 terminal 같은 콘솔 프로그램이 깔려 있으면 아이폰 콘솔에서 다음 명령으로 db를 직접 억세스 할 수도 있다.

% sqlite3 /private/var/mobile/Library/CallHistory/call_history.db

SQLite version 3.5.9

Enter ".help" for instructions

sqlite> SELECT * FROM call;

아이튠에서 sync를 하면 아이폰의 데이터가 백업되면서 이 정보 역시 맥에 저장되게 된다. calllog2ical.rb 스크립트는 이 백업된 내용에서 통화 목록을 읽어 그 내용을 iCal에 개별 이벤트로 집어넣어 준다.


먼저 http://code.google.com/p/iphonelogd/ 에서 프로그램을 다운받는다. 맥에서만 동작하고 현재 버전은 calllog2ical.0.10.pkg  이다.

다운받은 패키지를 실행하면 인스톨러가 실행되어 프로그램이 설치되게 된다. 설치되는 위치는 /usr/local/bin 이다.

설치가 완료되면 먼저 아이폰을 맥에 연결하고 아이튠에서 아이폰을 sync하도록 한다.

싱크가 끝나면 터미널 창을 열고 쉘 프롬프트에서 다음의 명령어를 실행해주면 된다.

% calllog2ical.rb

그러면 백업된 파일에서 통화목록 db를 읽어 각 통화를 위의 화면과 같이 iCal에 이벤트로 넣어준다. 전화번호가 Address Book에 등록되어 있으면 자동으로 이름으로 변환해서 보여주고, 등록되어 있지 않은 번호인 경우 unidentified 로 표시되지만 그래도 url필드에 전화번호는 기록된다.

* 이 스크립트는 디폴트로 'Call Log' 캘린더에 통화목록을 넣어준다. 스크립트를 실행하기 전에 iCal에 'Call Log' 캘린더가 만들어 져 있어야만 한다. 만일 없으면 실행 중 에러를 발생하고 멈춘다.

* 다른 이름의 캘린더를 사용하려면 calllog2ical.rb 뒤에 캘린더 이름을 넣어주면 된다.

Posted by nautes

댓글을 달아 주세요

이전버튼 1 이전버튼