레이블이 리빗인 게시물을 표시합니다. 모든 게시물 표시
레이블이 리빗인 게시물을 표시합니다. 모든 게시물 표시

4/01/2009

Ribbit Killer App Challenge 우승은 "Lucid Viewer"

얼마전에 Ribbit 에서 진행했던 killer app challenge 의 우승은 Lucid Viewer가 차지했습니다.

간단하게 어플리케이션에 대해서 설명드리자면 Google 스트리트뷰 비스무리 + Google Map + Ribbit API 를 이용한 전화걸기 app 입니다.

다만 구글 스트리트뷰를 활용한 것이 아니라 차량에 카메라를 설치해서 직접 달리면서 도로를 촬영한 것 같습니다. (도로를 클릭해보면 사람들이 막 걸어다니면서 차량이 이동함 )


3D 뷰의 구현 자체는 360 파노라마 이미지를 촬영하여(특수카메라) 3차원 공간에 Sphere를 올리고 거기다가 이미지를 씌우면 끝납니다. 뷰어를 구현할때는 카메라를 구 안에다가 위치시키고 키보드/마우스 이벤트에 따라서 구체를 회전시켜주면 되구요.

즉 사용자는 파노라마 이미지가 매핑된 구체 안에 들어가서 벽면을 이리저리 훑어보는 것이죠. 말로는 쉽습니다만 저도 직접 구현해본 적은 없어서 허허…


백문이 불여일견이라고 http://www.lucid.it/phone 에 가서 직접 실행을 시켜보시면 바로 아하~ 하고 감이 올겁니다. ( 네, 우승은 이탈리아 팀에서 했습니다. )

image

짐작가십니까?

구글 스트리트뷰나 다음 로드뷰처럼 어플리케이션 내에서 지도를 돌아다닐 수 있고(물론 일정 지역만이지만) 거리에 보이는 상가나 가게에 직접 Ribbit API로 구현된 VoIP로 전화를 할 수가 있습니다.

우왕ㅋ굳ㅋ


이런 기능을 구글 스트리트뷰나 Daum 로드뷰에 붙여넣으면 지금까지의 키워드 광고등록과는 전혀 다른 또하나의 광고시장이 생겨나게 될 것 같습니다.

궁극적으로 구글이나 Daum이 열심히 지도서비스를 개발하는것도 궁극적으로는 이런걸 목표로 하는걸테구요. 아직은 내지도 서비스(구 포스트맵) 만 하고 있는 네이버도 분발하세요.


도로의 특정 위치에 도달하면 가이드가 뽕~ 하고 나타나며 가이드를 클릭하면 안내음성도 들어볼 수 있습니다.

image

3/18/2009

몇주 안에 나올 새로운 Ribbit 서비스, 그리고 개발자 모델 변경

아무래도 개발자들이 계속 늘어남에 따라 기존의 Ribbit 플랫폼 기반 서비스 개발을 위해 무료로 제공해 주던 free call / free sms 등을 신용카드 결제정보와 연동하도록 바꿀 모양입니다.

다행히도 미리 Ribbit Developer 커뮤니티에 참가한 기존 개발자들은 향후 90일간 현재의 무료 서비스들을 그대로 이용할 수 있게 해주고 추가로 $25 credit 을 준다는군요. ( 그래봐야 개발하고 있는 게 없는데 -_-;; )

단계에 걸친 마이그레이션 후 4월 10일부터는 모든 신규 기능들을 이용할 수 있도록 할 계획이랍니다.

아래는 Ribbit Developer 커뮤니티에서 날라온 이메일 전문.


Dear Ribbit Developer
Thanks for being a part of the Ribbit developer community. Over the next few weeks we will be rolling out a number of new services, a new developer model, a self-service path to monetization as well as significant infrastructure and UI improvements.


New Services and Functionality

  • International Calling

  • Voice-to-Text Transcriptions

  • Public Access Call Tokens (i.e. multi-login and widget deployment) 

  • Add and Manage Sub-Users

  • Self-Service Payments via Credit Cards

  • RESTful API (in Beta) - 2-Way SMS-Enabled Numbers (UK)

New Developer Model

We believe that innovation and new forms of interactivity will come from the ability to create rich, complex interactions using multiple services.  In order to make these services available to all developers, Ribbit will be moving to a model where developer accounts will be charged for overages beyond the free allowances. As our developer community grows, we are doing our best to balance our desire to give developers as much freedom as possible to develop with our services against our need to manage costs, particularly in today’s environment.  We trust that you understand this balance and will engage us in conversation during this process.
As a thank-you for being a part of our early adopter community — for the next 90 days — your Ribbit Developer account will be automatically configured with a special plan to allow continued use of the free services you’ve been receiving as well as an opportunity to add an additional $25 in free credits to try out our new services.


Infrastructure Improvements

As part of this release, we are migrating all developer accounts from the current developer sandbox to the production instance of the Ribbit Platform. This will result in a more robust service, enhanced support options and access to the full-suite of Ribbit Platform capabilities. One side-effect of the migration will be that existing call logs, messages and contacts will not be migrated, however all of your applications, recorded names, recorded greetings and your purpose phone number will not be affected.


Self-Service Path to Monetization

The new release will enable developers to create a billing account with Ribbit using a credit card. Upon establishing a billing relationship with Ribbit, usage and monetization limits placed on developer accounts will be lifted and developers will be free to monetize their applications and access previously restricted international dialing and messaging features.


Timing

This migration will occur in two phases, with the first phase starting on March 17th and completing by March 28th.  Pending completion of final testing, the second part of the migration will be completed by April 10th.  After this date, all of the new services listed above will be available.
We will send out more information on specific features and functionality as we get closer to the final migration dates. In the meantime you can discuss the new features, pricing or other questions in the Ribbit Developer Forums: Platform & Dev Portal Upcoming Releases.


Thank you for your support,
Team Ribbit

12/23/2008

오랫만에 다시 본 Ribbit Flex SDK 2.5.0

간만에 이런저런 리서치도 할 겸 Ribbit 의 Flex SDK 2.5.0 을 다운로드 받았습니다.

image

swc 를 교체하고 나서 초기 베타버전의 SDK로 만들었던 프로젝트를 flex builder 로 열어보니 오류가 주루룩 뜨네요.

살펴보니 그동안 내부적으로 이런저런 많은 변화가 있었던 것 같은데, 대표적으로(기본 예제 중심으로 볼 때) VoIP call 을 할 때 사용하던 RibbitRequest 가 사라지고 대신 com.ribbit.api에 있는 RibbitServices 라는게 생겼군요.

이 RibbitServices라는게 내부적으로 callManager, contactManager 등 각종 XXXManager 등을 갖게 되었고 예전보다 좀 더 그럴듯하게 포장되었습니다.

예전의 phone call 을 하는 예제를 살펴보면 대략

private var ribbitRequest:RibbitRequest;

private function doLogin():void {

    ribbitRequest = RibbitRequest.getInstance();
    ribbitRequest.addEventListener(RibbitResponseEvent.LOGGED_IN, handleLoggedIn);
    ribbitRequest.addEventListener(RibbitResponseEvent.ERROR, handleError);
    ribbitRequest.addEventListener(RibbitResponseEvent.RIBBIT_SERVER_CONNECTED, handleRibbitServerConnected);
    ribbitRequest.login('user', 'password', 'devID', 'appID');

}

private function handleRibbitServerConnected(event:RibbitResponseEvent):void {

    ribbitRequest.makeCall('555-555-5555');

}

이런 식이었습니다만, SDK 2.5.0 버전이라면

public  var rs:RibbitServices = new RibbitServices();

public function doLogin():void {

    rs.addEventListener(AuthenticationEvent.LOGGED_IN, ready);
    rs.callManager.addEventListener(CallEvent.CONNECTED, onCallStatusEvent);
    rs.callManager.addEventListener(CallEvent.CALL_STATE_CHANGE, onCallStatusEvent);
    rs.callManager.addEventListener(CallEvent.ERROR, onCallStatusEvent);

    rs.login('user email', 'password', 'devID', 'appID', null);

}

// addEventListener에서 추가한 함수들에 대한 구현

이런 식입니다.

에전처럼 RIBBIT_SERVER_CONNECTED 에 대한 이벤트 핸들링을 통해 call 을 하는 방식은 이제 쓸 수 없고 RibbitServices 안에 connected 라는 걸로 접속 여부를 체크해서 직접 전화를 걸면 됩니다.

rs.callManager.dial('555-555-5555');

실제로 저기다가 제 회사번호랑 휴대폰 번호, 그리고 동료 3명의 휴대폰 번호(SKT/KTF/LGT)를 넣어봤는데 정상적으로 통화가 잘 됩니다. dial 시 본인의 핸드폰 번호가 010-222-333 이라면 82102223333 으로, 집번호가 031-444-2222 라면 82314442222 와 같은 식으로 넣으면 됩니다.

다만 Ribbit에 개발자 등록할때 purpose number 가 발급되었음에도 불구하고 발신번호는 "002-"  로만 뜨는 부분이 있었고(따로 전화번호 기록을 해줘야 하는지 -_-;;), VoIP의 특성때문이라 그런지 아니면 미국갔다가 이래저래 라우팅 되어 와서 그런지는 몰라도 call 을 시작한 후 약 10~15초가 지나야 전화가 오더군요.

그리고 통화 연결 후 caller 와 receiver 간에 약간의 시간차가 있는듯 하고, 한쪽은 반대쪽의 말하는 게 들리는데 반대쪽에서 말한건 나중에 들린다든가 하는 현상도 좀 있었습니다.

미국서버 걸쳐서 넘어오는 것이고 국제전화니까 그렇지 않을까 싶기도 하지만 뭐 아무튼 국내 myLG070 같은걸 대용으로 쓸만큼은 절대 아니고, Ribbit 네트워크에 자신의 네트워크를 연결시켜서 좀 더 성능개선 등을 할 수 있을 것 같은데 carrier interconnection 어쩌구 하는걸 보니 개인이 서비스 만들어서 하긴 무리겠군요.

MVNO 라면 거의 기존 투자비 없이 Ribbit 에서 필요한거 죄다 구매해서 아~~주 저렴한 가격에 사업 시작할 수도 있겠습니다. ^_^;;


홈페이지를 보니 개발자 account 에 대해서는 무료로 어느정도까지는 SMS/통화를 제공한다고는 하는데 아무래도 테스트 용도로 쓰라고 준 것이니 홈페이지에 붙여놓고 쓸만큼은 아닐 것 같네요.

image

http://developer.ribbit.com/platform/pricing 를 가보면 자신의 Ribbit 어플리케이션에서 쓸 만큼의 seats(user account), voice mailbox, purpose numbers, US domain calling 등의 가격을 알 수가 있습니다. API Transactions 에 대한 항목은 설명에는 추가되어 있는데 (Ribbit API 사용횟수에 따른 과금을 할 모양인 듯) 월 이용금액 산출을 해주는 flash 어플리케이션에는 항목이 아직 없는 상태입니다.

image

기존 인프라에 대한 투자를 한푼도 하지 않고 Transcriptions 를 제외한 대략 위의 그림과 같은 정도의 서비스를 월 8만 달러에 할 수 있습니다. 이쯤되면 앞으로 Ribbit이, 그리고 Ribbit 을 1억 5백만 달러에 인수한 BT(British Telecom) 이 앞으로 뭘 어떻게 할려고 하는건지 대략 짐작이 오는데요 -_-;;

심지어 Ribbit 개발자 홈페이지에 가보면 Flash Toolkit 이라고 해서 플래시 저작툴에서도 쉽게 ribbit 을 사용할 수 있도록 하고 있습니다. 약간의 ActionScript 지식만 있으면 디자이너도 웹사이트에(또는 Air를 통해 PC 어플리케이션에) VoIP 어플리케이션을 올릴 수가 있다는 이야기지요.

스마트폰도 이제 쭉쭉 풀리고, 구글/구글 코리아는 언제 어디서나 자사의 홈페이지(플랫폼)에 고객을 접속시키기 위해서 무료 Wi-Fi 를 뿌리고 있고, 개발자들이 손쉽게 만들 수 있는 Ribbit SDK 같은것도 계속 풀리고 있고... 국내 이통사들도 국내에서만 자꾸 해먹으려 하지말고 점점 작아지는 파이 지킬려고만 하지 말고 잔뜩 긴장하셔야겠습니다. 준비하는 자만이 머지않아 다가올 대재앙을 기회로 바꿀 수 있을 듯 한데, 최소한 현재 시점에서는 그다지 준비된 이통사가 있어보이진 않는군요.( 그나마 3개 이통사 모두 초고속인터넷 제공업체를 하나씩 물고 있다는 것 정도? )

7/18/2008

Ribbit Developer 등록완료 + Ribbit API 로 VoIP app 제작하기

image


Ribbit 에서 개발자등록을 하면 개발용 flex SDK 를 공짜로 받을 수 있다길래 예전에 아이디어를 등록하고 가입승인을 받았었습니다만, API Beta 2 가 나왔다고 하길래 오늘에서야 프로젝트 등록을 마저 완료하고 ( evaluation only 로) SDK를 받았습니다.


RibbitDeveloperComponent_Beta2.zip 이라는 이름으로 제공해주는군요. 언뜻 파란색으로 "Requires Adobe Flex Builder" 라는 항목이 보여서 쫄았는데 다행히도 회사에서 구입해 둔 Adobe Flex Builder 3 의 정식 라이센스가 있는 관계로 즐겁게 놀아볼 생각입니다.

압축을 풀어보니 swc 1개와 sample, 그리고 beta 2 컴포넌트의 향상된 기능에 대해 설명하는 txt 파일이 있네요.


향상된 기능들

- Improved Firewall compatibility
- Improved voice performance
- Improved calling stability

Ribbit 클래스들의 namespace 변경

- com.ribbit.api.*

그 외 변경사항들

- The method getCallLogs replaces getAllMessageIDs and getAllCallLogIDs.
- The method getCallLogs now returns an Array of CallLogDetails.
- The method getCallLog replaces getMessage.
- A new object CallLogTags, is used in getCallLogs to request All calls, Missed calls, Voice Mail, Urgent Voice, Deleted Voice Mail and Sent Voice Mail.
- The object CallLogDetails replaces MessageDetails.
- The object CallLogIndex replaces MessageIndex.
- The method getContacts replaces getAllContactIDs.
- The existing event callLogLoaded replaces the use of messageLoaded
- the existing event callLogsLoaded replaces the use of messageLoaded


베타2에서 추가된 기능들

- A new method getUserSummary, gets the total calls, missed calls, total voice messages and total contacts. - A new event userSummaryLoaded, returns a UserSummary object with total calls, missed calls, total voice messages and total contacts.
- A new method getAPIversion, returns the current version of the API.
- A new method getCallTalkVolume, returns the microphone gain level of the input volume for calls.
- A new method setCallTalVolume, sets the microphone gain level of the input volume for calls.
- A new method getMessageRecordVolume, returns the microphone gain level of the input volume for recording messages.
- A new method setMessageRecordVolume, sets the microphone gain level of the input volume for recording messages.
- A new method sendDTMF, allows you to send digits during a call.
- The method makeCall, in addition to a phone number, now accepts an email address to place a call to.
- The object ContactIndex now includes jobTitle and photoURL, linked to the PersonalPhotoURL property of ContactDetails.
- A new class RibbitAccountRequest, will allow certain settings of Ribbit Account properties.
- A new method changePassword, allows the changing of the user's login password.
- A new method enableTranscription, allows toggling the user's ability to receive transcribed messages.
- A new method getAccountInfo, gets the account info of a user.
- A new event accountInfoLoaded, returns a RibbitUser object for the requested user.
- A new method getNotificationStatus, gets the setting for whether a user can receive email alerts for new voicemail.
- A new method setNotificationStatus, sets the setting for whether a user can receive email alerts for new voicemail.
- A new method saveRecordedGreeting, accepts a CallLogDetails object as a new recorded greeting.
- A new method saveRecordedName, accepts a CallLogDetails object as a new recorded name.
- A new method setFirstName, accepts a new first name for the user.
- A new method setLastName, accepts a new last name for the user.
- A new method setNickName, accpets a new nickname for the user.
- A new method uploadImage, accepts a FileReference to an image and sets the user's photo.
- A new event photoUploadcomplte is sent when a photo upload is complete.
- A new event photoUploadError is sent when there is an error uploading a photo.

압축을 풀고 나면 RibbitAPI_beta2-01.swc 파일이 보이는데 이걸 Flex Builder 3 가 설치된 경로 아래의 sdks/3.0.0/frameworks/libs 에다가 복사합니다.

그 후 Flex Builder 3 를 실행하면 ribbit 관련 API들을 사용할 수가 있습니다.


111


기본적으로 ribbit 으로 통화를 연결하기 위해서는 RibbitRequest 라는 걸 사용하면 되는데, RibbitRequest 객체를 만들고 login 을 호출해서 서버에 접속한 다음에 실제 call 을 호출하면 됩니다.

코드로 작성한다면( 구글링해서 하나 긁었습니다)


private var ribbitRequest:RibbitRequest;

private function doLogin():void {

    ribbitRequest = RibbitRequest.getInstance();
    ribbitRequest.addEventListener(RibbitResponseEvent.LOGGED_IN, handleLoggedIn);
    ribbitRequest.addEventListener(RibbitResponseEvent.ERROR, handleError);
    ribbitRequest.addEventListener(RibbitResponseEvent.RIBBIT_SERVER_CONNECTED, handleRibbitServerConnected);
    ribbitRequest.login('user', 'password', 'devID', 'appID');

}


private function handleRibbitServerConnected(event:RibbitResponseEvent):void {

    ribbitRequest.makeCall('555-555-5555');

}


와 같은 식으로 만들어 두고 doLogin 을 적당한 컴포넌트의 click 이벤트에다가 붙여넣으면 ribbit 을 이용한 전화걸기 끝.

Ribbit API 와 함께 즐거운 VoIP app 제작을 향해 고고싱~

요즘 포스팅을 모두 medium쪽으로 하고 있습니다

안녕하세요? 어쩌다보니 그냥 한번 써보기로 한 medium.com 에다가 죄다 최근 포스팅을 하고 있습니다. 현재 도메인인 potatosoft.com 은 제가 대학때인가 사회 취업한지 얼마 안됐을때부터 유지해 온 도메인이고, 블로그 시스템은 그...