2009년 5월 2일 토요일

아이폰 통화목록을 컴퓨터에서 관리하기 (Manage iPhone call log in the Mac by using calllog2ical(iphonelogd))

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

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

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

[View DB structure] <- click here


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 뒤에 캘린더 이름을 넣어주면 된다.

댓글 없음:

댓글 쓰기