Opened 8 years ago

Closed 8 years ago

Last modified 7 years ago

#367 closed баг (invalid)

Падение при входящем вызове

Reported by: alx Owned by: dimag
Priority: major Milestone: 2 очередь
Component: ПО MC04-Dispatcher. Пульт диспетчера/техника Keywords:
Cc: san

Description

r377 падает при получении входящего вызова. Сначала на входящий INVITE пульт почему-то отправляет ответ "488 Not Acceptable Here", а затем падает по SIGSEGV:

12:38:33.540   pjsua_core.c  .RX 1318 bytes Request msg INVITE/cseq=95978492 (rdata0x80cca1028) from UDP 192.168.0.63:5060:
INVITE sip:2@192.168.0.75:16762 SIP/2.0
Via: SIP/2.0/UDP 192.168.0.63;rport;branch=z9hG4bKZgmga0KKaQ7gc
Max-Forwards: 70
From: "" <sip:0000000000@192.168.0.63>;tag=eDF8tmKmare3H
To: <sip:2@192.168.0.75:16762>
Call-ID: c2dbf28a-e9f0-1234-41a3-902b3433882b
CSeq: 95978492 INVITE
Contact: <sip:mod_sofia@192.168.0.63:5060>
User-Agent: FreeSWITCH-mod_sofia/1.6.10+git~20160824T215404Z~726448d962~64bit
Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO, UPDATE, REGISTER, REFER, NOTIFY, PUBLISH, SUBSCRIBE
Supported: timer, path, replaces
Allow-Events: talk, hold, conference, presence, as-feature-event, dialog, line-seize, call-info, sla, include-session-description, presence.winfo, message-summary, refer
Content-Type: application/sdp
Content-Disposition: session
Content-Length: 387
X-FS-Support: update_display,send_info
Remote-Party-ID: <sip:0000000000@192.168.0.63>;party=calling;screen=yes;privacy=off

v=0
o=FreeSWITCH 1472607735 1472607736 IN IP4 192.168.0.63
s=FreeSWITCH
c=IN IP4 192.168.0.63
t=0 0
m=audio 21378 RTP/AVP 0 8 18 9 3 101 13
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:18 G729/8000
a=rtpmap:9 G722/8000
a=rtpmap:3 GSM/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=rtpmap:13 CN/8000
a=rtcp-mux
a=rtcp:21378 IN IP4 192.168.0.63
a=ptime:20

--end msg--
12:38:33.540   pjsua_call.c  .Incoming Request msg INVITE/cseq=95978492 (rdata0x80cca1028)
12:38:33.541  pjsua_media.c  ..Call 0: initializing media..
12:38:33.541  pjsua_media.c  ...RTP socket reachable at 192.168.0.75:4000
12:38:33.541  pjsua_media.c  ...RTCP socket reachable at 192.168.0.75:4001
12:38:33.541  pjsua_media.c  ...Media index 0 selected for audio call 0
12:38:33.541   pjsua_core.c  .....TX 285 bytes Response msg 100/INVITE/cseq=95978492 (tdta0x80c830000) to UDP 192.168.0.63:5060:
SIP/2.0 100 Trying
Via: SIP/2.0/UDP 192.168.0.63;rport=5060;received=192.168.0.63;branch=z9hG4bKZgmga0KKaQ7gc
Call-ID: c2dbf28a-e9f0-1234-41a3-902b3433882b
From: <sip:0000000000@192.168.0.63>;tag=eDF8tmKmare3H
To: <sip:2@192.168.0.75>
CSeq: 95978492 INVITE
Content-Length:  0


--end msg--
12:38:33.541      CPJSIPSUA  ..Incoming call from <sip:0000000000@192.168.0.63>!!
12:38:33.541   pjsua_call.c  ..Answering call 0: code=200
12:38:33.541  pjsua_media.c  .....Call 0: updating media..
12:38:33.541    pjsua_aud.c  ......Audio channel update..
12:38:33.541 strm0x80f9c5c2  .......VAD temporarily disabled
12:38:33.541 strm0x80f9c5c2  .......Encoder stream started
12:38:33.541 strm0x80f9c5c2  .......Decoder stream started
12:38:33.542  pjsua_media.c  ......pjsua_aud_channel_update() failed for call_id 0 media 0: Invalid operation (PJ_EINVALIDOP)
12:38:33.542  pjsua_media.c  ......Error updating media call00:0: Invalid operation (PJ_EINVALIDOP)
12:38:33.542   pjsua_call.c  .....Unable to create media session: No active media stream after negotiation (PJMEDIA_SDPNEG_ENOMEDIA) [status=220048]
12:38:33.542   pjsua_core.c  ........TX 485 bytes Response msg 488/INVITE/cseq=95978492 (tdta0x80c830000) to UDP 192.168.0.63:5060:
SIP/2.0 488 Not Acceptable Here
Via: SIP/2.0/UDP 192.168.0.63;rport=5060;received=192.168.0.63;branch=z9hG4bKZgmga0KKaQ7gc
Call-ID: c2dbf28a-e9f0-1234-41a3-902b3433882b
From: <sip:0000000000@192.168.0.63>;tag=eDF8tmKmare3H
To: <sip:2@192.168.0.75>;tag=b3589965-08e3-4227-8812-e7d8d7dcd310
CSeq: 95978492 INVITE
Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, INFO, SUBSCRIBE, NOTIFY, REFER, MESSAGE, OPTIONS
Supported: replaces, 100rel, timer, norefersub
Content-Length:  0


--end msg--
12:38:33.542      CPJSIPSUA  ...........Call 0 state=DISCONNCTD
12:38:33.542  pjsua_media.c  ...........Call 0: deinitializing media..
[New LWP 101813 of process 20026]
[New LWP 101811 of process 20026]
[New LWP 100391 of process 20026]

Thread 3 received signal SIGSEGV, Segmentation fault.
[Switching to LWP 101805 of process 20026]
0x0000000800e9da53 in pj_ioqueue_lock_key () from /usr/local/lib/libpj.so.2
(gdb) bt
#0  0x0000000800e9da53 in pj_ioqueue_lock_key () from /usr/local/lib/libpj.so.2
#1  0x000000080139c07c in transport_detach () from /usr/local/lib/libpjmedia.so.2
#2  0x00000008013991af in transport_detach () from /usr/local/lib/libpjmedia.so.2
#3  0x0000000801392f4d in pjmedia_stream_destroy () from /usr/local/lib/libpjmedia.so.2
#4  0x00000008010e89d6 in pjsua_aud_stop_stream () from /usr/local/lib/libpjsua.so.2
#5  0x00000008010ddb8a in stop_media_stream () from /usr/local/lib/libpjsua.so.2
#6  0x00000008010de90d in pjsua_media_channel_deinit () from /usr/local/lib/libpjsua.so.2
#7  0x00000008010d3b8e in pjsua_call_on_state_changed () from /usr/local/lib/libpjsua.so.2
#8  0x0000000804df096d in inv_set_state () from /usr/local/lib/libpjsip-ua.so.2
#9  0x0000000804dedf46 in mod_inv_on_tsx_state () from /usr/local/lib/libpjsip-ua.so.2
#10 0x00000008015e767b in pjsip_dlg_on_tsx_state () from /usr/local/lib/libpjsip.so.2
#11 0x00000008015e3f5a in tsx_set_state () from /usr/local/lib/libpjsip.so.2
#12 0x00000008015e4e83 in tsx_on_state_proceeding_uas () from /usr/local/lib/libpjsip.so.2
#13 0x00000008015e56cf in pjsip_tsx_send_msg () from /usr/local/lib/libpjsip.so.2
#14 0x00000008015e7802 in pjsip_dlg_send_response () from /usr/local/lib/libpjsip.so.2
#15 0x0000000804def332 in pjsip_inv_send_msg () from /usr/local/lib/libpjsip-ua.so.2
#16 0x00000008010d00d5 in call_disconnect () from /usr/local/lib/libpjsua.so.2
#17 0x00000008010d052e in pjsua_call_on_media_update () from /usr/local/lib/libpjsua.so.2
#18 0x0000000804dee3a4 in inv_negotiate_sdp () from /usr/local/lib/libpjsip-ua.so.2
#19 0x0000000804defc0f in process_answer () from /usr/local/lib/libpjsip-ua.so.2
#20 0x0000000804defd5c in pjsip_inv_answer () from /usr/local/lib/libpjsip-ua.so.2
#21 0x00000008010d4263 in pjsua_call_answer2 () from /usr/local/lib/libpjsua.so.2
#22 0x00000000004b2292 in CPJSIPSUA::on_incoming_call (acc_id=0, call_id=0, rdata=0x80cca1028) at PJSIPSUA.cpp:355
#23 0x00000008010d6132 in pjsua_call_on_incoming () from /usr/local/lib/libpjsua.so.2
#24 0x00000008010daa28 in mod_pjsua_on_rx_request () from /usr/local/lib/libpjsua.so.2
#25 0x00000008015d17ce in pjsip_endpt_process_rx_data () from /usr/local/lib/libpjsip.so.2
#26 0x00000008015d2540 in endpt_on_rx_msg () from /usr/local/lib/libpjsip.so.2
#27 0x00000008015d81c6 in pjsip_tpmgr_receive_packet () from /usr/local/lib/libpjsip.so.2
#28 0x00000008015da199 in udp_on_read_complete () from /usr/local/lib/libpjsip.so.2
#29 0x0000000800e9eb6b in ioqueue_dispatch_read_event () from /usr/local/lib/libpj.so.2
#30 0x0000000800e9f2b0 in pj_ioqueue_poll () from /usr/local/lib/libpj.so.2
#31 0x00000008015d194c in pjsip_endpt_handle_events2 () from /usr/local/lib/libpjsip.so.2
#32 0x00000008010d7ccf in pjsua_handle_events () from /usr/local/lib/libpjsua.so.2
#33 0x00000008010d7d4a in worker_thread () from /usr/local/lib/libpjsua.so.2
#34 0x0000000800ea0886 in thread_main () from /usr/local/lib/libpj.so.2
#35 0x0000000803976dc4 in ?? () from /lib/libthr.so.3
#36 0x0000000000000000 in ?? ()
Backtrace stopped: Cannot access memory at address 0x7fffff7fc000

Проверялось под FreeBSD. Падение происходит каждый раз.

Change History (4)

comment:1 by alx, 8 years ago

Пересобрал PJSIP с отладочной информацией. Вот вывод отладчика:

15:29:00.517   pjsua_core.c  .RX 1324 bytes Request msg INVITE/cseq=95983606 (rdata0x80cca1028) from UDP 192.168.0.63:5060:
INVITE sip:2@192.168.0.75:19412;ob SIP/2.0
Via: SIP/2.0/UDP 192.168.0.63;rport;branch=z9hG4bKyX139Bp2teN8B
Max-Forwards: 70
From: "" <sip:0000000000@192.168.0.63>;tag=7XFrmcg47eyDj
To: <sip:2@192.168.0.75:19412;ob>
Call-ID: 929bf7fe-ea08-1234-41a3-902b3433882b
CSeq: 95983606 INVITE
Contact: <sip:mod_sofia@192.168.0.63:5060>
User-Agent: FreeSWITCH-mod_sofia/1.6.10+git~20160824T215404Z~726448d962~64bit
Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO, UPDATE, REGISTER, REFER, NOTIFY, PUBLISH, SUBSCRIBE
Supported: timer, path, replaces
Allow-Events: talk, hold, conference, presence, as-feature-event, dialog, line-seize, call-info, sla, include-session-description, presence.winfo, message-summary, refer
Content-Type: application/sdp
Content-Disposition: session
Content-Length: 387
X-FS-Support: update_display,send_info
Remote-Party-ID: <sip:0000000000@192.168.0.63>;party=calling;screen=yes;privacy=off

v=0
o=FreeSWITCH 1472607906 1472607907 IN IP4 192.168.0.63
s=FreeSWITCH
c=IN IP4 192.168.0.63
t=0 0
m=audio 31434 RTP/AVP 0 8 18 9 3 101 13
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:18 G729/8000
a=rtpmap:9 G722/8000
a=rtpmap:3 GSM/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=rtpmap:13 CN/8000
a=rtcp-mux
a=rtcp:31434 IN IP4 192.168.0.63
a=ptime:20

--end msg--
15:29:00.517   pjsua_call.c  .Incoming Request msg INVITE/cseq=95983606 (rdata0x80cca1028)
15:29:00.517  pjsua_media.c  ..Call 0: initializing media..
15:29:00.517  pjsua_media.c  ...RTP socket reachable at 192.168.0.75:4000
15:29:00.517  pjsua_media.c  ...RTCP socket reachable at 192.168.0.75:4001
15:29:00.517  pjsua_media.c  ...Media index 0 selected for audio call 0
15:29:00.518   pjsua_core.c  .....TX 288 bytes Response msg 100/INVITE/cseq=95983606 (tdta0x80c831000) to UDP 192.168.0.63:5060:
SIP/2.0 100 Trying
Via: SIP/2.0/UDP 192.168.0.63;rport=5060;received=192.168.0.63;branch=z9hG4bKyX139Bp2teN8B
Call-ID: 929bf7fe-ea08-1234-41a3-902b3433882b
From: <sip:0000000000@192.168.0.63>;tag=7XFrmcg47eyDj
To: <sip:2@192.168.0.75;ob>
CSeq: 95983606 INVITE
Content-Length:  0


--end msg--
15:29:00.518      CPJSIPSUA  ..Incoming call from <sip:0000000000@192.168.0.63>!!
15:29:00.518   pjsua_call.c  ..Answering call 0: code=200
15:29:00.518  pjsua_media.c  .....Call 0: updating media..
15:29:00.518    pjsua_aud.c  ......Audio channel update..
15:29:00.518 strm0x80e7cbc2  .......VAD temporarily disabled
15:29:00.518 strm0x80e7cbc2  .......Encoder stream started
15:29:00.518 strm0x80e7cbc2  .......Decoder stream started
15:29:00.518  pjsua_media.c  ......pjsua_aud_channel_update() failed for call_id 0 media 0: Invalid operation (PJ_EINVALIDOP)
15:29:00.518  pjsua_media.c  ......Error updating media call00:0: Invalid operation (PJ_EINVALIDOP)
15:29:00.518   pjsua_call.c  .....Unable to create media session: No active media stream after negotiation (PJMEDIA_SDPNEG_ENOMEDIA) [status=220048]
15:29:00.518   pjsua_core.c  ........TX 488 bytes Response msg 488/INVITE/cseq=95983606 (tdta0x80c831000) to UDP 192.168.0.63:5060:
SIP/2.0 488 Not Acceptable Here
Via: SIP/2.0/UDP 192.168.0.63;rport=5060;received=192.168.0.63;branch=z9hG4bKyX139Bp2teN8B
Call-ID: 929bf7fe-ea08-1234-41a3-902b3433882b
From: <sip:0000000000@192.168.0.63>;tag=7XFrmcg47eyDj
To: <sip:2@192.168.0.75;ob>;tag=4d8a1fcb-a3ac-4796-a7b2-917ea32cd45c
CSeq: 95983606 INVITE
Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, INFO, SUBSCRIBE, NOTIFY, REFER, MESSAGE, OPTIONS
Supported: replaces, 100rel, timer, norefersub
Content-Length:  0


--end msg--
15:29:00.518      CPJSIPSUA  ...........Call 0 state=DISCONNCTD
15:29:00.518  pjsua_media.c  ...........Call 0: deinitializing media..
[New LWP 101795 of process 75969]
[New LWP 101564 of process 75969]
[New LWP 101391 of process 75969]

Thread 3 received signal SIGSEGV, Segmentation fault.
[Switching to LWP 101786 of process 75969]
0x0000000800e9eea0 in pj_ioqueue_lock_key (key=0x0) at ../src/pj/ioqueue_common_abs.c:1346
1346        if (key->grp_lock)
(gdb) bt
#0  0x0000000800e9eea0 in pj_ioqueue_lock_key (key=0x0) at ../src/pj/ioqueue_common_abs.c:1346
#1  0x00000008013c38c3 in transport_detach (tp=0x80f890028, user_data=0x809460028) at ../src/pjmedia/transport_udp.c:758
#2  0x00000008013c01c6 in pjmedia_transport_detach (tp=0x80f890028, user_data=0x809460028) at ../include/pjmedia/transport.h:658
#3  0x00000008013c0153 in transport_detach (tp=0x809460028, strm=0x80e7cbc28) at ../src/pjmedia/transport_srtp.c:832
#4  0x00000008013b67e6 in pjmedia_transport_detach (tp=0x809460028, user_data=0x80e7cbc28) at ../include/pjmedia/transport.h:658
#5  0x00000008013b66a0 in pjmedia_stream_destroy (stream=0x80e7cbc28) at ../src/pjmedia/stream.c:2530
#6  0x00000008010fc610 in pjsua_aud_stop_stream (call_med=0x801313858 <pjsua_var+35704>) at ../src/pjsua-lib/pjsua_aud.c:533
#7  0x00000008010f1c89 in stop_media_stream (call=0x8013137b8 <pjsua_var+35544>, med_idx=0) at ../src/pjsua-lib/pjsua_media.c:2396
#8  0x00000008010f1df5 in stop_media_session (call_id=0) at ../src/pjsua-lib/pjsua_media.c:2448
#9  0x00000008010f1ed0 in pjsua_media_channel_deinit (call_id=0) at ../src/pjsua-lib/pjsua_media.c:2472
#10 0x00000008010e2efd in pjsua_call_on_state_changed (inv=0x80e462828, e=0x7fffff7f4b20) at ../src/pjsua-lib/pjsua_call.c:3761
#11 0x0000000804e2b0ee in inv_set_state (inv=0x80e462828, state=PJSIP_INV_STATE_DISCONNECTED, e=0x7fffff7f4b20)
    at ../src/pjsip-ua/sip_inv.c:257
#12 0x0000000804e3199a in inv_on_state_incoming (inv=0x80e462828, e=0x7fffff7f4b20) at ../src/pjsip-ua/sip_inv.c:4256
#13 0x0000000804e2ba66 in mod_inv_on_tsx_state (tsx=0x80e4728a8, e=0x7fffff7f4b20) at ../src/pjsip-ua/sip_inv.c:677
#14 0x0000000801623601 in pjsip_dlg_on_tsx_state (dlg=0x80e4730a8, tsx=0x80e4728a8, e=0x7fffff7f4b20) at ../src/pjsip/sip_dialog.c:2060
#15 0x0000000801623dc0 in mod_ua_on_tsx_state (tsx=0x80e4728a8, e=0x7fffff7f4b20) at ../src/pjsip/sip_ua_layer.c:178
#16 0x000000080161c65f in tsx_set_state (tsx=0x80e4728a8, state=PJSIP_TSX_STATE_COMPLETED, event_src_type=PJSIP_EVENT_TX_MSG,
    event_src=0x80c8310a8, flag=0) at ../src/pjsip/sip_transaction.c:1233
#17 0x000000080161effb in tsx_on_state_proceeding_uas (tsx=0x80e4728a8, event=0x7fffff7f4c10) at ../src/pjsip/sip_transaction.c:2817
#18 0x000000080161d3e5 in pjsip_tsx_send_msg (tsx=0x80e4728a8, tdata=0x80c8310a8) at ../src/pjsip/sip_transaction.c:1749
#19 0x0000000801622812 in pjsip_dlg_send_response (dlg=0x80e4730a8, tsx=0x80e4728a8, tdata=0x80c8310a8) at ../src/pjsip/sip_dialog.c:1525
#20 0x0000000804e30002 in pjsip_inv_send_msg (inv=0x80e462828, tdata=0x80c8310a8) at ../src/pjsip-ua/sip_inv.c:3173
#21 0x00000008010e309a in call_disconnect (inv=0x80e462828, code=488) at ../src/pjsua-lib/pjsua_call.c:3870
#22 0x00000008010e3250 in pjsua_call_on_media_update (inv=0x80e462828, status=220048) at ../src/pjsua-lib/pjsua_call.c:3963
#23 0x0000000804e2def6 in inv_negotiate_sdp (inv=0x80e462828) at ../src/pjsip-ua/sip_inv.c:1888
#24 0x0000000804e2e6aa in process_answer (inv=0x80e462828, st_code=200, tdata=0x80c8310a8, local_sdp=0x0) at ../src/pjsip-ua/sip_inv.c:2182
#25 0x0000000804e2ea5f in pjsip_inv_answer (inv=0x80e462828, st_code=200, st_text=0x0, local_sdp=0x0, p_tdata=0x7fffff7f4ea0)
    at ../src/pjsip-ua/sip_inv.c:2339
#26 0x00000008010e00ae in pjsua_call_answer2 (call_id=0, opt=0x0, code=200, reason=0x0, msg_data=0x0) at ../src/pjsua-lib/pjsua_call.c:2280
#27 0x00000008010dfcb1 in pjsua_call_answer (call_id=0, code=200, reason=0x0, msg_data=0x0) at ../src/pjsua-lib/pjsua_call.c:2154
#28 0x00000000004b2292 in CPJSIPSUA::on_incoming_call (acc_id=0, call_id=0, rdata=0x80cca1028) at PJSIPSUA.cpp:355
#29 0x00000008010de686 in pjsua_call_on_incoming (rdata=0x80cca1028) at ../src/pjsua-lib/pjsua_call.c:1636
#30 0x00000008010e6438 in mod_pjsua_on_rx_request (rdata=0x80cca1028) at ../src/pjsua-lib/pjsua_core.c:576
#31 0x0000000801602cbb in pjsip_endpt_process_rx_data (endpt=0x8094730a8, rdata=0x80cca1028, p=0x7fffff7f59b0, p_handled=0x7fffff7f59ec)
    at ../src/pjsip/sip_endpoint.c:886
#32 0x0000000801602fee in endpt_on_rx_msg (endpt=0x8094730a8, status=0, rdata=0x80cca1028) at ../src/pjsip/sip_endpoint.c:1036
#33 0x000000080160bb91 in pjsip_tpmgr_receive_packet (mgr=0x80da55898, rdata=0x80cca1028) at ../src/pjsip/sip_transport.c:1933
#34 0x000000080160d870 in udp_on_read_complete (key=0x80d81b4c8, op_key=0x80cca1040, bytes_read=1324)
    at ../src/pjsip/sip_transport_udp.c:167
#35 0x0000000800e9e03c in ioqueue_dispatch_read_event (ioqueue=0x80d815028, h=0x80d81b4c8) at ../src/pj/ioqueue_common_abs.c:605
#36 0x0000000800e9fe2d in pj_ioqueue_poll (ioqueue=0x80d815028, timeout=0x7fffff7fbef0) at ../src/pj/ioqueue_select.c:981
#37 0x0000000801602977 in pjsip_endpt_handle_events2 (endpt=0x8094730a8, max_timeout=0x7fffff7fbf30, p_count=0x7fffff7fbf4c)
    at ../src/pjsip/sip_endpoint.c:741
#38 0x00000008010e9125 in pjsua_handle_events (msec_timeout=10) at ../src/pjsua-lib/pjsua_core.c:1961
#39 0x00000008010e6758 in worker_thread (arg=0x0) at ../src/pjsua-lib/pjsua_core.c:698
#40 0x0000000800ea0ed5 in thread_main (param=0x8095586e8) at ../src/pj/os_core_unix.c:541
#41 0x00000008039b3dc4 in ?? () from /lib/libthr.so.3
#42 0x0000000000000000 in ?? ()
Backtrace stopped: Cannot access memory at address 0x7fffff7fc000

Здесь, по крайней мере, видно, что программа падает из-за обращения по NULL-указателю key в pj_ioqueue_lock_key() из-за того что в transport_detach() udp->rtp_key почему-то NULL...

comment:2 by alx, 8 years ago

Resolution: invalid
Status: newclosed

Оказалось, что PJSIP был собран без поддержки ресэмплинга. Пересобрал с поддержкой ресэмплинга - падения прекратились.

Саша, может имеет смысл описать где-нибудь на wiki-страничке все требования к зависимостям программы? Чтобы там было написано, например, что PJSIP непременно должен быть собран с поддержкой ресэмплинга...

И было бы совсем хорошо, если бы пульт диспетчера при старте сам проверял (если есть такая возможность), имеется ли поддержка ресэмплинга у PJSIP и т.п., и если что-то не так, выдавал бы, как минимум, предупреждение в лог...

Вот сейчас проверил - наличие поддержки ресэмплинга вполне можно проверить с помощью макроса PJMEDIA_RESAMPLE_IMP... Саша, что скажешь?

comment:3 by san, 8 years ago

Про "добавить в вики что-то полезное", я конечно не возражаю. И насчёт "самопроверки", тоже не возражаю, напиши тикет с предложением.

comment:4 by san, 7 years ago

Milestone: Текущее2 очередь

Milestone renamed

Note: See TracTickets for help on using tickets.