Unable to get video from other client. Its a black window and below are the logs. Even sometimes the video is missing from my side too.
Expected behavior
I should be able to get video window in my local UIVIew.
Actual behavior
I have tried both of the ways to get video view but it still showing me a black window and sometimes giving this error when i receive call from call kit. And when i receive call from inside the app it says Bad RTP pt 102 (expecting 97) pjsip
This is how i am receiving window from call
(void) displayWindow: (UIView *) parent
{
if PJSUA_HAS_VIDEO
int i, last;
pjsua_vid_win_id wid;
i = (wid == PJSUA_INVALID_ID) ? 0 : wid;
last = (wid == PJSUA_INVALID_ID) ? PJSUA_MAX_VID_WINS : wid+1;
for (;i < last; ++i) {
pjsua_vid_win_info wi;
pjsua_call_info callInfo;
pj_status_t status = pjsua_call_get_info((pjsua_call_id)self.callId, &callInfo);
NSLog(@"%@", callInfo.media[i].stream.vid.win_in);
if (pjsua_vid_win_get_info(i, &wi) == PJ_SUCCESS) {
UIView *view = (__bridge UIView *)wi.hwnd.info.ios.window;
if (view) {
dispatch_async(dispatch_get_main_queue(), ^{
/* Add the video window as subview */
if (![view isDescendantOfView:parent])
[parent addSubview:view];
if (!wi.is_native) {
/* Resize it to fit width */
view.bounds = CGRectMake(0, 0, parent.bounds.size.width,
(parent.bounds.size.height *
1.0*parent.bounds.size.width/
view.bounds.size.width));
/* Center it horizontally */
view.center = CGPointMake(parent.bounds.size.width/2.0,
view.bounds.size.height/2.0);
} else {
/* Preview window, move it to the bottom */
view.center = CGPointMake(parent.bounds.size.width/2.0,
parent.bounds.size.height-
view.bounds.size.height/2.0);
}
});
}
}
Version
Using VialerSIPLib Version 3.5.4 codec h264, opus
File / Feature
Unable to get video from other client. Its a black window and below are the logs. Even sometimes the video is missing from my side too.
Expected behavior
I should be able to get video window in my local UIVIew.
Actual behavior
I have tried both of the ways to get video view but it still showing me a black window and sometimes giving this error when i receive call from call kit. And when i receive call from inside the app it says Bad RTP pt 102 (expecting 97) pjsip This is how i am receiving window from call
(void) displayWindow: (UIView *) parent {
if PJSUA_HAS_VIDEO
int i, last;
pjsua_vid_win_id wid; i = (wid == PJSUA_INVALID_ID) ? 0 : wid; last = (wid == PJSUA_INVALID_ID) ? PJSUA_MAX_VID_WINS : wid+1;
for (;i < last; ++i) { pjsua_vid_win_info wi;
}
endif
}
(void) displayWindow: (UIView ) parent call:(VSLCall )call { //#if PJSUA_HAS_VIDEO
int vid_idx; pjsua_vid_win_id wid;
vid_idx = pjsua_call_get_vid_stream_idx(call.callId); if (vid_idx >= 0) { pjsua_call_info ci; pjsua_call_get_info(call.callId, &ci); wid = ci.media[vid_idx].stream.vid.win_in;
} }
Stacktrace / Error message
💜 VERBOSE 16:54:25.792 [VSLEndpoint void onCallState(pjsua_call_id, pjsip_event ):571] onCallState 💛 WARNING 16:54:25.793 [VSLEndpoint void onCallState(pjsua_call_id, pjsip_event ):581] Received updated CallState(VSLCallStateEarly) for UNKNOWN call(id: 0) 💜 VERBOSE 16:54:25.793 [VSLCall -[VSLCall initInboundCallWithCallId:account:]:98] Inbound call init with uuid:FE725555-6C1C-4548-A264-2DBA86F1EF71 and id:0 💜 VERBOSE 16:54:25.793 [VSLCallManager -[VSLCallManager addCall:]:395] Call(FE725555-6C1C-4548-A264-2DBA86F1EF71) added. Calls count:1 💙 INFO 16:54:25.793 [DDLogWrapper +[DDLogWrapper logInfo:]:40] Incoming call block invoked, routing through CallKit. 💜 VERBOSE 16:54:25.794 [CallKitProviderDelegate -[CallKitProviderDelegate reportIncomingCall:]:83] UUID as sent to CallKit provider: FE725555-6C1C-4548-A264-2DBA86F1EF71 💜 VERBOSE 16:54:25.794 [CallKitProviderDelegate -[CallKitProviderDelegate reportIncomingCall:]:84] Call id: 0 💜 VERBOSE 16:54:28.524 [VSLCallManager -[VSLCallManager callWithUUID:]:440] Looking for a call with UUID:FE725555-6C1C-4548-A264-2DBA86F1EF71 💚 DEBUG 16:54:28.524 [VSLCallManager -[VSLCallManager callWithUUID:]:450] VSLCall found for UUID:FE725555-6C1C-4548-A264-2DBA86F1EF71 VSLCall:<VSLCall: 0x2820bc780> 💜 VERBOSE 16:54:28.525 [VSLAudioController -[VSLAudioController configureAudioSession]:60] Setting AVAudioSessionCategory to "Play and Record" 💜 VERBOSE 16:54:28.525 [VSLAudioController -[VSLAudioController configureAudioSession]:69] Setting AVAudioSessionCategory to "Mode Voice Chat" 💚 DEBUG 16:54:28.526 [VSLEndpoint void logCallBack(int, const char , int):536] pjsua_call.c !Answering call 0: code=200 💚 DEBUG 16:54:28.527 [VSLEndpoint void logCallBack(int, const char , int):536] pjsua_media.c ...Call 0: updating media.. 💚 DEBUG 16:54:28.528 [VSLEndpoint void logCallBack(int, const char , int):536] pjsua_media.c .....Media stream call00:0 is destroyed 💚 DEBUG 16:54:28.543 [VSLEndpoint void logCallBack(int, const char , int):536] srtp0x103926400 ....SRTP not active 💚 DEBUG 16:54:28.543 [VSLEndpoint void logCallBack(int, const char , int):536] pjsua_aud.c ....Audio channel update.. 💚 DEBUG 16:54:28.544 [VSLEndpoint void logCallBack(int, const char , int):536] strm0x1030e4828 .....VAD temporarily disabled 💚 DEBUG 16:54:28.544 [VSLEndpoint void logCallBack(int, const char , int):536] strm0x1030e4828 .....Encoder stream started 💚 DEBUG 16:54:28.545 [VSLEndpoint void logCallBack(int, const char , int):536] strm0x1030e4828 .....Decoder stream started 💚 DEBUG 16:54:28.545 [VSLEndpoint void logCallBack(int, const char , int):536] pjsua_media.c ....Audio updated, stream #0: G722 (sendrecv) 💚 DEBUG 16:54:28.546 [VSLEndpoint void logCallBack(int, const char , int):536] pjsua_media.c .....Media stream call00:1 is destroyed 💚 DEBUG 16:54:28.546 [VSLEndpoint void logCallBack(int, const char , int):536] srtp0x103027800 ....SRTP not active 💚 DEBUG 16:54:28.551 [VSLEndpoint void logCallBack(int, const char , int):536] pjsua_vid.c ....Video channel update.. 💚 DEBUG 16:54:28.556 [VSLEndpoint void logCallBack(int, const char , int):536] vstenc0x1038fa428 .....Encoder stream started 💚 DEBUG 16:54:28.556 [VSLEndpoint void logCallBack(int, const char , int):536] vstdec0x1038fa428 .....Decoder stream started 💚 DEBUG 16:54:28.556 [VSLEndpoint void logCallBack(int, const char , int):536] pjsua_vid.c .....Setting up RX.. 💚 DEBUG 16:54:28.557 [VSLEndpoint void logCallBack(int, const char , int):536] pjsua_vid.c ......Creating video window: type=stream, cap_id=-1, rend_id=0 💚 DEBUG 16:54:28.557 [VSLEndpoint void logCallBack(int, const char , int):536] vid_port.c .......Opening device OpenGL renderer [OpenGL] for render: format=I420, size=1920x1920 @22:1 fps 💚 DEBUG 16:54:28.649 [VSLEndpoint void logCallBack(int, const char , int):536] ios_opengl_dev.c .......iOS OpenGL ES renderer successfully created 💚 DEBUG 16:54:28.649 [VSLEndpoint void logCallBack(int, const char , int):536] vid_port.c .......Device OpenGL renderer [OpenGL] opened: format=BGRA, size=1920x1920 @22:1 fps 💚 DEBUG 16:54:28.650 [VSLEndpoint void logCallBack(int, const char , int):536] pjsua_vid.c .......stream window id 0 created for cap_dev=-1 rend_dev=0 💚 DEBUG 16:54:28.650 [VSLEndpoint void logCallBack(int, const char , int):536] pjsua_vid.c .......Window 0 created 💚 DEBUG 16:54:28.650 [VSLEndpoint void logCallBack(int, const char , int):536] ios_opengl_dev.c ......Starting ios opengl stream 💚 DEBUG 16:54:28.651 [VSLEndpoint void logCallBack(int, const char , int):536] pjsua_vid.c .....Setting up TX.. 💚 DEBUG 16:54:28.651 [VSLEndpoint void logCallBack(int, const char , int):536] pjsua_vid.c ......Creating video window: type=preview, cap_id=2, rend_id=0 💚 DEBUG 16:54:28.653 [VSLEndpoint void logCallBack(int, const char , int):536] vid_port.c .......Opening device Front Camera [AVF] for capture: format=I420, size=288x352 @20:1 fps 💚 DEBUG 16:54:28.663 [VSLEndpoint void logCallBack(int, const char , int):536] vid_util.c .......Orientation converter created: 352x288 to 288x236, maintain aspect ratio=yes 💚 DEBUG 16:54:28.664 [VSLEndpoint void logCallBack(int, const char , int):536] vid_port.c .......Device Front Camera [AVF] opened: format=I420, size=288x352 @20:1 fps 💚 DEBUG 16:54:28.665 [VSLEndpoint void logCallBack(int, const char , int):536] darwin_dev.m .......Native preview initialized 💚 DEBUG 16:54:28.666 [VSLEndpoint void logCallBack(int, const char , int):536] pjsua_vid.c .......Preview window id 1 created for cap_dev 2, using built-in preview! 💚 DEBUG 16:54:28.666 [VSLEndpoint void logCallBack(int, const char , int):536] pjsua_vid.c .......Window 1 created 💚 DEBUG 16:54:28.668 [VSLEndpoint void logCallBack(int, const char , int):536] darwin_dev.m ......Starting Darwin video stream 💙 INFO 16:54:28.671 [VSLEndpoint void logCallBack(int, const char , int):533] darwin_dev.m ......Unable to start AVFoundation capture session ❗ ERROR 16:54:28.671 [VSLEndpoint void logCallBack(int, const char , int):527] pjsua_media.c ....pjsua_vid_channel_update() failed for call_id 0 media 1: Unknown Error (PJ_EUNKNOWN) 💚 DEBUG 16:54:28.672 [VSLEndpoint void logCallBack(int, const char , int):536] pjsua_vid.c .....Stopping video stream.. 💚 DEBUG 16:54:28.703 [VSLEndpoint void logCallBack(int, const char , int):536] ios_opengl_dev.c ......Stopping ios opengl stream 💚 DEBUG 16:54:28.704 [VSLEndpoint void logCallBack(int, const char , int):536] pjsua_vid.c ......Window 0: destroying.. 💚 DEBUG 16:54:28.704 [VSLEndpoint void logCallBack(int, const char , int):536] ios_opengl_dev.c .......Stopping ios opengl stream 💚 DEBUG 16:54:28.704 [VSLEndpoint void logCallBack(int, const char , int):536] vid_port.c .......Closing OpenGL renderer.. 💚 DEBUG 16:54:28.706 [VSLEndpoint void logCallBack(int, const char , int):536] pjsua_media.c .....Media stream call00:1 is destroyed ❗ ERROR 16:54:28.706 [VSLEndpoint void logCallBack(int, const char , int):527] pjsua_media.c ....Error updating media call00:1: Unknown Error (PJ_EUNKNOWN) 💜 VERBOSE 16:54:28.707 [VSLEndpoint void onCallMediaState(pjsua_call_id):595] Received MediaState update for call:FE725555-6C1C-4548-A264-2DBA86F1EF71 💜 VERBOSE 16:54:28.707 [VSLCall -[VSLCall mediaStateChanged:]:591] Media State Changed from VSLMediaStateNone to VSLMediaStateActive 💚 DEBUG 16:54:28.707 [VSLCall -[VSLCall setMediaState:]:207] MediaState will change from VSLMediaStateNone(0) to VSLMediaStateActive(1) MyLogger: looping 💚 DEBUG 16:54:28.707 [VSLEndpoint void logCallBack(int, const char , int):536] THIS_FILE ...Call 0 media 0 [type=audio], status is Active MyLogger: case audio MyLogger: looping 💚 DEBUG 16:54:28.707 [VSLEndpoint void logCallBack(int, const char , int):536] THIS_FILE ...Call 0 media 1 [type=video], status is Error MyLogger: case video 2019-06-17 16:54:28.707419+0500 VialerSIPLib_Example[1763:379450] windows id : -1 2019-06-17 16:54:28.707442+0500 VialerSIPLib_Example[1763:379450] media id : 1 2019-06-17 16:54:28.707450+0500 VialerSIPLib_Example[1763:379450] windows id : -1 2019-06-17 16:54:28.707457+0500 VialerSIPLib_Example[1763:379450] media id : 1 💚 DEBUG 16:54:28.707 [VSLEndpoint void logCallBack(int, const char , int):536] pjsua_aud.c ...Conf connect: 1 --> 0 💚 DEBUG 16:54:28.708 [VSLEndpoint void logCallBack(int, const char , int):536] conference.c ....Port 1 (sip:200@3.212.210.74) transmitting to port 0 (Master/sound) 💚 DEBUG 16:54:28.708 [VSLEndpoint void logCallBack(int, const char , int):536] pjsua_aud.c ...Conf connect: 0 --> 1 💚 DEBUG 16:54:28.708 [VSLEndpoint void logCallBack(int, const char , int):536] conference.c ....Port 0 (Master/sound) transmitting to port 1 (sip:200@3.212.210.74) 💚 DEBUG 16:54:28.709 [VSLCall -[VSLCall setCallState:]:128] Call(FE725555-6C1C-4548-A264-2DBA86F1EF71). CallState will change from VSLCallStateIncoming(2) to VSLCallStateEarly(3) 💚 DEBUG 16:54:28.709 [VSLEndpoint void logCallBack(int, const char *, int):536] pjsua_core.c ....TX 1344 bytes Response msg 200/INVITE/cseq=5832440 (tdta0x1030df4a8) to TLS 3.212.141.177:5061:
Other info
Any help or suggestion will be highly appreciated.