2012-05-10 23 views
6

Tôi đang cố gắng xây dựng một Sip client cho android bằng cách sử dụng pjsip chẳng hạn như dự án CSipSimple. Tuy nhiên, tôi thực sự không biết nhiều về pjsip. Có ai có một hướng dẫn về pjsip hoặc một cái gì đó như thế để xây dựng một Sip softphone trong android bằng cách sử dụng libsip lib? Mọi đề xuất đều được hoan nghênh!PJSip trong android

+1

Có gia sư hay không. Đáng buồn là tôi không thể sử dụng API SIP gốc. Bất kỳ đề xuất bắt đầu từ đâu? –

Trả lời

3

Bạn không cần phải sử dụng thư viện của bên thứ ba để xây dựng chức năng client SIP trong Android. Android bao gồm đầy đủ chính thức SIP API. Bạn có thể xem SIP demo để hiểu cách sử dụng API SIP cho loại triển khai walkie-talkie.

+1

Lưu ý rằng điều này sẽ giới hạn ứng dụng của bạn sang phiên bản Android 2.3 [(API Cấp 9)] (http://developer.android.com/guide/appendix/api-levels.html#level9) và cao hơn, nhưng tôi đoán đó là khoảng 75% số lượng người dùng cơ sở – Paaske

+0

Theo thống kê của Cửa hàng Play trên [Phiên bản nền tảng] (http://developer.android.com/resources/dashboard/platform-versions.html), dự đoán của bạn là đúng (như trong ngày) của điều này bình luận) – Rajesh

+1

điều này cũng giới hạn ứng dụng của bạn để wi-fi chỉ, mà không phải là hữu ích .... bạn có biết bất kỳ cách nào khác để sử dụng pjsip ngoại trừ apjsua vì apjsua không làm việc, tôi đã dành ngày vào nó ... .. –

1

Câu trả lời được chấp nhận không hoàn toàn chính xác. Có nhiều tính năng mong muốn bị thiếu trong API SIP Android mà bạn có thể muốn đạt được thông qua thư viện của bên thứ ba.

Đối với pjsip nói trên, tôi đã dành rất nhiều thời gian thử nghiệm với bản dựng pjsip của Android và trung thực cách duy nhất để đăng ký tức thời đáng tin cậy để làm việc như được lập tài liệu là xây dựng OpenSSL 1.0.2a thư viện và chuyển nó vào thời gian cấu hình. Sau đó, trong Java bạn cần phải cố gắng (và thất bại) để cho phép truyền thông TLS, giống như bạn thấy chúng làm cho UDP và TCP. Dưới đây là ý tôi:

/* Create transports. */ 
    try { transports.add(ep.transportCreate(pjsip_transport_type_e.PJSIP_TRANSPORT_TLS, transportConfig)); } 
    catch (Throwable t2) { SipManager.log().e(t2); } 

    try { transports.add(ep.transportCreate(pjsip_transport_type_e.PJSIP_TRANSPORT_UDP, transportConfig)); } 
    catch (Throwable t) { SipManager.log().e(t); } 

    try { transports.add(ep.transportCreate(pjsip_transport_type_e.PJSIP_TRANSPORT_TCP, transportConfig)); } 
    catch (Throwable t) { SipManager.log().e(t); } 

Thay thế số SipManager.log() gọi cho ứng dụng của riêng bạn.

Tôi không hoàn toàn chắc chắn tại sao, nhưng điều này là cần thiết đối với tôi. Nếu không, quy trình đăng ký bán không xác định, theo nghĩa là nó sẽ hoạt động sau khi thất bại vài lần, hoặc thất bại trong 5 phút sau đó đột nhiên thành công, v.v. Có vẻ như bị lẫn lộn sau lần đăng ký đầu tiên.

Dưới đây là cách tôi cấu hình:

TARGET_ABI=arm64-v8a ./configure-android --use-ndk-cflags --with-ssl=`pwd`/../3rd-party/openssl-1.0.2a 

Và đó là sau khi làm theo proper Android instructions, exrtacting tarball OpenSSL vào một thư mục trên pjsip ../3rd-party/ và xây dựng đầu tiên ở đó. Tôi đã mô tả quá trình đó một cách chi tiết trong một số previous post.

-1

Nếu bạn muốn phát triển chỉ sip khách hàng sau đó bạn có thể sử dụng API sip của android nhưng như đã đề cập ở trên câu trả lời nó sẽ giới hạn các tính năng ứng dụng của bạn. Nhưng nếu bạn muốn phát triển các cơ sở trò chuyện hoặc gọi điện trong ứng dụng của mình thì bạn có thể sử dụng pjsip cung cấp nhiều tính năng phong phú. Để xây dựng pjsip cho android, bạn có thể tìm hiểu từ here(android) và cho ios, tìm hiểu từ here(ios). Về cơ bản, pjsip cung cấp cho bạn nhiều API với các tính năng phong phú mà bạn có thể sử dụng theo yêu cầu như pjlib, pjsip, phương tiện PJ, pjsua, vv pjsua (hoặc pjsua2 cho android) là API cấp cao hơn giúp bạn trích xuất tối đa với tối thiểu complexities.you có thể xem trực tiếp here. bạn có thể tìm hiểu về pjsua từ here. Họ cũng đã cung cấp một ứng dụng demo (pjsua CLI), Pjsua CLI và nguồn của nó sẽ giúp bạn hiểu cấu trúc cơ bản của ứng dụng để xây dựng với pjsip có chức năng trò chuyện và gọi điện.

cho Android, bạn có thể xem ứng dụng demo tại github.

Các vấn đề liên quan