- Siêu lớp và danh mục iOS/Objective-C
- object-c - -1001 lỗi khi NSURLSession vượt qua httpproxy và /etc/hosts
- java - Nhận địa chỉ url bằng lớp mạng
- ios - Âm thanh không phát trong thông báo đẩy
Tôi đang cố gắng thêm PJSip vào dự án tôi đang thực hiện. Tôi có phương pháp này để đăng ký tài khoản của mình nhưng lần nào tôi cũng gặp lỗi "tín hiệu nghiêm trọng 11".
Đây là phương pháp
công khai int setRegistration() {
trạng thái int = pjsuaConstants.PJ_FALSE;
/* Đăng ký máy chủ SIP bằng cách tạo tài khoản SIP */
int[] accId = new int[1];
accId[0] = 1;
Chuỗi uName = getUserName();
Chuỗi passwd = getPassword();
Máy chủ chuỗi = getSIPServer();
pjsua_acc_config acc_cfg = pjsua_acc_config mới();
pjsua.acc_config_default(acc_cfg);
acc_cfg.setId(pjsua.pj_str_copy("sip:" + uName + "@" + server));
acc_cfg.setReg_uri(pjsua.pj_str_copy("sip:" + server));
acc_cfg.setCred_count(1);
acc_cfg.getCred_info().setRealm(pjsua.pj_str_copy(server));
acc_cfg.getCred_info().setScheme(pjsua.pj_str_copy("digest"));
acc_cfg.getCred_info().setUsername(pjsua.pj_str_copy(uName));
acc_cfg.getCred_info().setData_type(pjsip_cred_data_type.PJSIP_CRED_DATA_PLAIN_PASSWD.swigValue());
acc_cfg.getCred_info().setData(pjsua.pj_str_copy(passwd));
Log.d("trạng thái", "acc đang thêm..");
trạng thái = pjsua.acc_add(acc_cfg, pjsuaConstants.PJ_TRUE, accId);
Log.d("trạng thái", "acc đã được thêm");
if (trạng thái == pjsuaConstants.PJ_SUCCESS) {
trạng thái = pjsua.acc_set_online_status(accId[0], 1);
Log.d("acc_set_online_status trả về stauts=", String.valueOf(status));
} khác {
Log.d("Trạng thái lỗi=", String.valueOf(trạng thái));
}
trạng thái trả lại;
}
tôi ở đây trạng thái = pjsua.acc_add(acc_cfg, pjsuaConstants.PJ_TRUE, accId);
Dòng đã nhận được một lỗi. Tôi biết tên người dùng, máy chủ và mật khẩu không trống. Tôi đã xem xét nhiều câu hỏi liên quan đến vấn đề này nhưng không có kết quả.
Làm cách nào để đăng ký tài khoản của tôi?
Cảm ơn
*****CHỈNH SỬA******Sau khi theo dõi qua các blog và diễn đàn, tôi đã khắc phục được lỗi này nhưng lại gặp phải một lỗi khác. Lỗi này xảy ra vì pjsua_init
Không bao giờ thành công. Nó hoạt động vì nó gây ra lỗi này cho tôi
11-04 10:19:20.973: E/AndroidRuntime(2961): NGOẠI LỆ TUYỆT VỜI: chính
04-11 10:19:20.973: E/AndroidRuntime(2961): java.lang.UnsatisfiedLinkError: Không tìm thấy phương thức gốc: org.pjsip.pjsua.pjsuaJNI.init:(JLorg/pjsip/pjsua/pjsua_config;JLorg/pjsip/pjsua/pjsua_logging_config;JLorg/pjsip/pjsua/pjsua_media_config;)I
04-11 10:19:20.973: E/AndroidRuntime(2961): tại org.pjsip.pjsua.pjsuaJNI.init(Phương pháp gốc)
04-11 10:19:20.973: E/AndroidRuntime(2961): tại org.pjsip.pjsua.pjsua.init(pjsua.java:812)
Tôi cũng nhận được cảnh báo này
Không tìm thấy triển khai nào cho Lorg/pjsip/pjsua/pjsuaJNI;.init (JLorg/pjsip/pjsua/pjsua_config;JLorg/pjsip/pjsua/pjsua_logging_config;JLorg/pjsip/pjsua/pjsua_media_config;)I
Tại sao đây không phải là một phương pháp gốc? Tôi đang xem thư viện mà tôi đang gọi, nhưng ngoài ra tôi không biết tại sao nó không hoạt động.
Bất kỳ trợ giúp về vấn đề này sẽ là tuyệt vời. Cảm ơn
mã PJ
pjsua.java
int tĩnh được đồng bộ hóa công khai (pjsua_config ua_cfg, pjsua_logging_config log_cfg, pjsua_media_config media_cfg) {
trả về pjsuaJNI.init(pjsua_config.getCPtr(ua_cfg), ua_cfg, pjsua_logging_config.getCPtr(log_cfg), log_cfg, pjsua_media_config.getCPtr(media_cfg), media_cfg);
}
pjsuaJNI.java
public int int gốc tĩnh cuối cùng(jarg1 dài, pjsua_config jarg1_, jarg2 dài, pjsua_logging_config jarg2_, jarg3 dài, pjsua_media_config jarg3_);
pjsua_wrap.cpp
SWIGEXPORT jint JNICALL Java_org_pjsip_pjsua_pjsuaJNI_init(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg3_) {
jint jresult = 0;
pjsua_config *arg1 = (pjsua_config *) 0;
pjsua_logging_config *arg2 = (pjsua_logging_config *) 0;
pjsua_media_config *arg3 = (pjsua_media_config *) 0;
kết quả pj_status_t;
(void)jenv;
(void)jcls;
(void)jarg1_;
(void)jarg2_;
(void)jarg3_;
arg1 = *(pjsua_config **)&jarg1;
arg2 = *(pjsua_logging_config **)&jarg2;
arg3 = *(pjsua_media_config **)&jarg3;
kết quả = (pj_status_t)pjsua_init((pjsua_config const *)arg1,(pjsua_logging_config const *)arg2,(pjsua_media_config const *)arg3);
jresult = (jint)kết quả;
trả về kết quả jresult;
}
{"init", "(JLorg/pjsip/pjsua/pjsua_config;JLorg/pjsip/pjsua/pjsua_logging_config;JLorg/pjsip/pjsua/pjsua_media_config;)I", (void*)& Java_org_pjsip_pjsua_pjsuaJNI_init},
Chỉnh sửa 2
Vì vậy, sau khi làm điều này, tôi đã thất vọng. Tôi không thấy mình đang làm gì sai nên tôi sẽ đăng toàn bộ quá trình của mình lên đây và xem có ai có đề xuất gì không.
svn co http://svn.pjsip.org/repos/pjproject/trunk pjproject
sudo để cài đặt
Sau đó tôi nhận được mã pjjni thanh toán svn svn://svn.code.sf.net/p/pjsip-jni/code/pjsip-jni-code
Android -> Thư viện -> Thêm
)System.loadLibrary("pjsulib")
-- Tên của thư viện mới.soNhận lỗi
22-11 13:55:44.784: W/dalvikvm(11464): Không tìm thấy triển khai Lorg/pjsip/pjsua/pjsuaJNI gốc; 13:55:48.792: W/dalvikvm(11464): Ngoại lệ Ljava/lang/UnsatisfiedLinkError; bị ném khi khởi tạo Lorg/pjsip/pjsua/pjsuaJNI; 11-22 13:55:51.417: E/AndroidRuntime(11464): java. .Liên kết không hài lòngLỗi: Không tìm thấy phương thức gốc: org.pjsip.pjsua.pjsuaJNI.swig_module_init:()V11-22 13:55:51.417:E/AndroidRuntime(11464): tại org.pjsip.pjsua.pjsuaJNI.swig_module_init(phương thức gốc)11-20 hai 13:55:51.417: E/AndroidRuntime(11464): tại org.pjsip.pjsua.pjsuaJNI.(pjsuaJNI.java:1450)
Mọi trợ giúp đều sẽ tuyệt vời. Cảm ơn!
câu trả lời hay nhất
Có thể tìm thấy ví dụ về các dự án khám phá các cuộc gọi JNI từ Java và C đây .
Lỗi được đề cập trong câu hỏi (java.lang.UnsatisfiedLinkError: Không tìm thấy phương thức gốc: org.pjsip.pjsua.pjsuaJNI) đề cập đến một trong các vấn đề sau:
- Tên phương thức gốc sai hoặc/và các tham số/giá trị trả về của nó.Nếu bạn có quyền truy cập vào mã gốc của thư viện, bạn có thể sửa nó. Theo thông báo lỗi và những cân nhắc của JNI, phương thức gốc phải có tên Java_org_pjsip_pjsua_pjsuaJNI_init(JNIEnv *env, jobject obj, ..), trong đó env là con trỏ tới giao diện JVM, obj là con trỏ "this" và phần còn lại các tham số có thể được lấy từ gói org phương thức init java của lớp pjsuaJNI của .pjsip.pjsua. Các loại tham số đơn giản phải là jint, jstring, v.v. Giá trị trả về cũng phải chính xác. Hãy khắc phục tất cả điều này để cho phép sử dụng phương thức này trong lớp pjsuaJNI. Thông tin chi tiết có thể được tìm thấy trong tài liệu của Oracle Tài liệu Oracle cho Java 6 JNI (Java 7 nếu bạn đang sử dụng Android 4.4).
- Tên/chữ ký/tên phương thức java hoặc tên gói sai. Tình huống này gần như trái ngược với tình huống đầu tiên. Một lần nữa, theo tên lỗi được đề cập, phương thức phải là "init", tên lớp pjsuaJNI và gói org.pjsip.pjsua. Nếu ít nhất một trong số chúng sai thì ngoại lệ trên sẽ xảy ra. Chữ ký hoặc thông số cũng phải chính xác. Về ranh giới của lỗi này, nó có thể được coi là một tham số phương thức (cũng được thấy trong JNIEnv* và jobject gốc). Do đó, nó cũng phải được kiểm tra và sửa chữa khi cần thiết.
Trong trường hợp chữ ký java được gọi từ mã gốc, nó có thể được xem dưới dạng biểu diễn của một phương thức java có đối số là một chuỗi và có thể được xem bằng cách sử dụng lệnh javap -s *.class được áp dụng cho java *.class tài liệu. Chữ ký của phương thức có thể được nhìn thấy trong cảnh báo cuối cùng trong câu hỏi.
Để sử dụng cùng một phương pháp, thư viện pjsip phải được tải. System.loadLibrary()Trong một số phần tĩnh của các lớp Java.
Thật không may, sự cố này xảy ra trong thời gian chạy (sẽ tốt hơn nếu nó xảy ra trong quá trình biên dịch).
Về đăng ký tài khoản android - PJSip, chúng tôi tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/19305777/
Chúng tôi đang phát triển một ứng dụng cho một số phần cứng nhúng chưa có bất kỳ thiết bị âm thanh nào. Hiện tại, chúng tôi chỉ đang đánh giá xem PJSIP có chạy tốt trên phần cứng và có thể gửi dữ liệu âm thanh qua mạng hay không. Để thực hiện việc này, chúng tôi có một ứng dụng khách cần đọc dữ liệu âm thanh từ một tệp, thông qua
pjsua chạy trong openwrt và chúng tôi sử dụng USB SoundCard. Luôn có độ trễ khi trả lời điện thoại và việc ghi và phát lại không dễ sử dụng! Mẹo: Chúng tôi đã sử dụng auddemo để kiểm tra card âm thanh của tôi và việc ghi/phát lại vẫn ổn.
Có ai có thể hướng dẫn tôi một API để tôi có thể yêu cầu pjsip sử dụng cổng cục bộ (UDP) của riêng tôi cho phương tiện truyền thông không? Trong quá trình đàm phán SDP, tôi đọc được rằng bạn có thể tìm hiểu về nó bằng cách gọi pjmedia_sdp_neg_get_act
Tôi đang phát triển ứng dụng quay số điện thoại mềm bằng PJSIP cho Android, iOS, v.v. Tôi cần biết cách tích hợp codec G.729 với dự án của mình. Tôi đã thấy trên trang web PJSIP về việc sử dụng Intel IPP
Tôi đang sử dụng thư viện Pjsip để triển khai cuộc gọi video SIP. Chế độ xem của tôi được chuyển thành công cho người khác, nhưng điều tôi muốn là hiển thị Chế độ xem camera trên màn hình của tôi (tương tự như WhatsApp). Tôi phát hiện ra rằng Pjsip đang sử dụng máy ảnh
Tôi đang phát triển một ứng dụng iOS có chức năng gọi điện thoại bằng PJSUA. Trong khi đó, đồng nghiệp của tôi đang sử dụng PJSUA 2 để tạo ứng dụng tương tự cho Android. Khi chúng ta chuyển từ Android sang iOS hoặc từ Android
Tôi đang thực hiện một dự án để làm cho ứng dụng iOS hoạt động như Viber/Skype bằng giao thức VoIP. Đối với điều này, tôi đang sử dụng SDK pjsip nhưng tôi gặp một số lỗi :( không tìm thấy tệp, tên loại không xác định, v.v.
Tôi phát hiện ra rằng có hai tài khoản cục bộ có ID 0 (địa chỉ IPv4) và ID 1 (địa chỉ IPv6). Vì vậy khi tôi đăng ký thì tài khoản người dùng được đăng ký với id 2. Tôi muốn biết mục đích của các tài khoản địa phương này là gì. Trước khi tôi đăng ký, user id 1
Tôi đang cố gắng tạo một ứng dụng khách dựa trên Android bằng cách sử dụng trình bao bọc pjsip-jni cho nhật thực. Tôi đã cố gắng tìm ra cách biên dịch và sử dụng nó trong nhật thực nhưng vẫn chưa tìm được hướng đi phù hợp.
Tôi muốn phát triển một hệ thống VoIP đơn giản. Tôi muốn sử dụng cùng một thư viện SIP để triển khai máy khách và máy chủ (máy chủ proxy, máy chủ đăng ký...). PJSIP có thể triển khai máy chủ không? Tôi đang sử dụng PJSIP ở phía máy khách, không vấn đề gì. PJSIP phù hợp với thực tế
Tôi đã xây dựng thư viện hỗ trợ video và nó hiển thị 2 codec h263 và h264. Nhưng khi tôi chạy phát video trực tuyến ipjsua thì điều đó không xảy ra, tôi đã thử bật video, bật autorx và autotx nhưng không có kết quả khả quan.
Tôi đang sử dụng PjSIP để thực hiện cuộc gọi SIP. Tôi đã tích hợp dự án PjSIP theo hướng dẫn https://code.google.com/p/siphon/wiki/Compilation & How To
Tôi đang viết một ứng dụng trên Ubuntu 16.04 bằng PJSUA/PJSIP. Tôi cần phát hiện khi cuộc gọi bị treo. Có chức năng call_state() được sắp xếp không? Cảm ơn! Câu trả lời tốt nhất được tìm thấy ở đây và
Tôi muốn mã hóa dữ liệu bằng Bouncy CaSTLe từ thư viện pjsip trước khi gửi qua rtp. Bất cứ ai đã sử dụng pjsip xin hãy giúp tôi, tôi không thân thiện với C vậy tôi nên làm điều đó ở đâu. Thực hiện một số nghiên cứu về tệp lib pjsip
Gần đây tôi phải triển khai một ứng dụng chạy nền bằng voip. Đối với điều này tôi sử dụng PJSip. Bây giờ tôi đã đăng ký và xử lý cuộc gọi hoạt động hoàn hảo trong khi ứng dụng đang chạy. Khi ứng dụng chạy ở chế độ nền, nó hoạt động tốt trong 10 phút đầu tiên -> các cuộc gọi đến mới sẽ được ghi lại và xử lý
Tôi đang cố gắng thêm PJSip vào dự án tôi đang thực hiện. Tôi có phương pháp này để đăng ký tài khoản của mình nhưng lần nào tôi cũng gặp lỗi "tín hiệu nghiêm trọng 11". Đây là phương thức public int setRegistration() {
Môi trường: Hệ điều hành
Vì vậy, tôi có một ứng dụng Siphon được biên dịch và chạy, nhưng nó không thực hiện được cuộc gọi. Tôi nhận được: Lỗi đăng ký - thông báo lỗi mặc định. Lỗi hoàn toàn là thế này: 15:04:02.032 pjsua_call.c sử dụng
Đối với ứng dụng iOS, tôi cần biết thời điểm bên từ xa dừng video cuộc gọi hiện tại. Có bất kỳ API hoặc sự kiện nào được thư viện pjsip kích hoạt không? Cảm ơn trước sự giúp đỡ của bạn. Câu trả lời hay nhất pjsua_call_vid_stream_is
Tôi đang cố gắng lấy luồng âm thanh từ phương tiện âm thanh cuộc gọi để gửi nó đến công cụ chuyển giọng nói thành văn bản (chuyển âm thanh từ đầu vào luồng). Bất kỳ ý tưởng nào về cách đạt được điều này? Thông tin phiên bản: POSIX pjlib 2.8-svn Cảm ơn bạn trước. câu trả lời hay nhất
Tôi là một lập trình viên xuất sắc, rất giỏi!