No TVIRoomDelegate methods called on Twilio Video for iOS

Description
I have a simple Video Calling scenario setup. I am using Twilio Video iOS and the Web API for Access Tokens and Rooms creation. The Web API is consumed from a ASP.NET application.
The iOS app communicates with my web app to get access tokens and create rooms.
Currently only one user joins and creates a new room. The flow of the app is as follows
1 - User on iOS initiates call
2 - iOS app calls my Web API to create a room and get access token
3 - my Web API calls Twilio API to get Room and then Access token
4 - Access Token and Room details are returned to the iOS app
5 - iOS app uses these to join the room
The problem is that once I call the TwilioVideo.connect(with: connectOptions, delegate: self), no delegate method of the TVIRoomDelegate is called.
As per the docs, the didConnect(to room: TVIRoom) delegate method should get called.
I know the rooms are being created as they are visible in the Twilio Web Console (Though the logs there get updated after 10-15 mins)
Also the Twilio Console debugger is not logging any errors.
Here are the relevant chunks of the iOS code
`
class TwilioVideoViewController: UIViewController, TVICameraCapturerDelegate, TVIRoomDelegate {
func didConnect(to room: TVIRoom)
{
    print("Did connect to room: " + room.name)
}

func room(_ room: TVIRoom, participantDidConnect participant: TVIParticipant)
{
    print("Participant Did connect to room: " + room.name)
}

func room(_ room: TVIRoom, participantDidDisconnect participant: TVIParticipant)
{
    print("Disconnected from room: " + room.name)
}

func room(_ room: TVIRoom, didDisconnectWithError error: Error?)
{
    print("Did disconnect from room: " + room.name)
}

func room(_ room: TVIRoom, didFailToConnectWithError error: Error)
{
    print("Failed to connect to room: " + room.name + ", error: " + error.localizedDescription)
}

func roomDidStartRecording(_ room: TVIRoom)
{
    print("Room: " + room.name + " started recording")
}

func roomDidStopRecording(_ room: TVIRoom)
{
    print("Room: " + room.name + " stopped recording")
}

let connectOptions = TVIConnectOptions.init(token: accessToken)
{
(builder) in
                                // Use the local media that we prepared earlier.
                                builder.audioTracks = self.localAudioTrack != nil ? [self.localAudioTrack!] : [TVILocalAudioTrack]()
                                builder.videoTracks = self.localVideoTrack != nil ? [self.localVideoTrack!] : [TVILocalVideoTrack]()

                                // The name of the Room where the Client will attempt to connect to. Please note that if you pass an empty
                                // Room `name`, the Client will create one for you. You can get the name or sid from any connected Room.
                                let roomName = responseDict["roomName"] as! String
                                builder.roomName = roomName

                            }

                            // Connect to the Room using the options we provided.
                            let room1 = TwilioVideo.connect(with: connectOptions, delegate: self)

`
Here is the code of the Web API for room and access token creation
`
public Token GetAccessToken(long debateId, long userId, string roomSid)
{
try
{
string identity = userId.ToString();
            var grant = new VideoGrant();
            grant.Room = roomSid;

            var grants = new HashSet<IGrant> { grant };

            var token = new Token(
                            twilioSid,
                            twilioApiKeySid,
                            twilioApiSecretKey,
                            identity: identity,
                            grants: grants);

            return token;
        }
        catch (Exception e)
        {
            ErrorLogger.InsertLog("Exception thrown in GetAccessToken: AlphaChatTwilioClient", e, userId);
            return null;
        }
    }

public RoomResource CreateRoom(long debateId, long userId)
{
try
{
var timeStamp = DateTime.UtcNow.Ticks;
            var room = RoomResource.Create(
                uniqueName: "Debate-" + debateId.ToString() + "-" + userId.ToString() + "-" + timeStamp.ToString()
                , enableTurn: true
                , recordParticipantsOnConnect: true
                , type: RoomResource.RoomTypeEnum.Group
                //,statusCallback: ""
                );

            return room;
        }
        catch (Exception e)
        {
            ErrorLogger.InsertLog("Exception thrown in CreateRoom: AlphaChatTwilioClient", e, userId);
            return null;
        }
    }

`
Here is the Log on the iOS Device
2018-05-19 01:47:12.880860+0500 AlphaChat[4865:2026062] INFO:TwilioVideo:[Platform]:Tried to copy a frame while stopped.
2018-05-19 01:47:12.945757+0500 AlphaChat[4865:2026188] INFO:TwilioVideo:[Platform]:Tried to copy a frame while stopped.
2018-05-19 01:47:12.948116+0500 AlphaChat[4865:2026188] INFO:TwilioVideo:[Platform]:Tried to copy a frame while stopped.
2018-05-19 01:47:12.951580+0500 AlphaChat[4865:2026189] INFO:TwilioVideo:[Platform]:Tried to copy a frame while stopped.
2018-05-19 01:47:12.953194+0500 AlphaChat[4865:2026189] INFO:TwilioVideo:[Platform]:Tried to copy a frame while stopped.
2018-05-19 01:47:12.955578+0500 AlphaChat[4865:2026189] INFO:TwilioVideo:[Platform]:Tried to copy a frame while stopped.
2018-05-19 01:47:12.957160+0500 AlphaChat[4865:2026189] INFO:TwilioVideo:[Platform]:Tried to copy a frame while stopped.
2018-05-19 01:47:12.958727+0500 AlphaChat[4865:2026189] INFO:TwilioVideo:[Platform]:Tried to copy a frame while stopped.
2018-05-19 01:47:12.960024+0500 AlphaChat[4865:2026189] INFO:TwilioVideo:[Platform]:Tried to copy a frame while stopped.
2018-05-19 01:47:12.961266+0500 AlphaChat[4865:2026189] INFO:TwilioVideo:[Platform]:Tried to copy a frame while stopped.
2018-05-19 01:47:12.961613+0500 AlphaChat[4865:2026189] DEBUG:TwilioVideo:[Platform]:Capture video output dropped a sample buffer. Reason = OutOfBuffers
2018-05-19 01:47:12.961852+0500 AlphaChat[4865:2026189] DEBUG:TwilioVideo:[Platform]:Capture video output dropped a sample buffer. Reason = OutOfBuffers
2018-05-19 01:47:12.966308+0500 AlphaChat[4865:2026189] DEBUG:TwilioVideo:[Platform]:Capture video output dropped a sample buffer. Reason = OutOfBuffers
2018-05-19 01:47:12.966612+0500 AlphaChat[4865:2026189] DEBUG:TwilioVideo:[Platform]:Capture video output dropped a sample buffer. Reason = OutOfBuffers
2018-05-19 01:47:12.966896+0500 AlphaChat[4865:2026189] DEBUG:TwilioVideo:[Platform]:Capture video output dropped a sample buffer. Reason = OutOfBuffers
2018-05-19 01:47:12.967093+0500 AlphaChat[4865:2026189] DEBUG:TwilioVideo:[Platform]:Capture video output dropped a sample buffer. Reason = OutOfBuffers
2018-05-19 01:47:12.967394+0500 AlphaChat[4865:2026189] DEBUG:TwilioVideo:[Platform]:Capture video output dropped a sample buffer. Reason = OutOfBuffers
2018-05-19 01:47:12.967760+0500 AlphaChat[4865:2026189] DEBUG:TwilioVideo:[Platform]:Capture video output dropped a sample buffer. Reason = OutOfBuffers
2018-05-19 01:47:12.967951+0500 AlphaChat[4865:2026189] DEBUG:TwilioVideo:[Platform]:Capture video output dropped a sample buffer. Reason = OutOfBuffers
2018-05-19 01:47:12.971573+0500 AlphaChat[4865:2026189] DEBUG:TwilioVideo:[Platform]:Capture video output dropped a sample buffer. Reason = OutOfBuffers
2018-05-19 01:47:12.972050+0500 AlphaChat[4865:2026189] DEBUG:TwilioVideo:[Platform]:Capture video output dropped a sample buffer. Reason = OutOfBuffers
2018-05-19 01:47:12.972415+0500 AlphaChat[4865:2026189] DEBUG:TwilioVideo:[Platform]:Capture video output dropped a sample buffer. Reason = OutOfBuffers
2018-05-19 01:47:12.972686+0500 AlphaChat[4865:2026189] DEBUG:TwilioVideo:[Platform]:Capture video output dropped a sample buffer. Reason = OutOfBuffers
2018-05-19 01:47:12.972953+0500 AlphaChat[4865:2026189] DEBUG:TwilioVideo:[Platform]:Capture video output dropped a sample buffer. Reason = OutOfBuffers
2018-05-19 01:47:12.973141+0500 AlphaChat[4865:2026189] DEBUG:TwilioVideo:[Platform]:Capture video output dropped a sample buffer. Reason = OutOfBuffers
2018-05-19 01:47:12.973314+0500 AlphaChat[4865:2026189] DEBUG:TwilioVideo:[Platform]:Capture video output dropped a sample buffer. Reason = OutOfBuffers
2018-05-19 01:47:12.973584+0500 AlphaChat[4865:2026189] DEBUG:TwilioVideo:[Platform]:Capture video output dropped a sample buffer. Reason = OutOfBuffers
2018-05-19 01:47:12.973849+0500 AlphaChat[4865:2026189] DEBUG:TwilioVideo:[Platform]:Capture video output dropped a sample buffer. Reason = OutOfBuffers
2018-05-19 01:47:12.974023+0500 AlphaChat[4865:2026189] DEBUG:TwilioVideo:[Platform]:Capture video output dropped a sample buffer. Reason = OutOfBuffers
2018-05-19 01:47:12.974828+0500 AlphaChat[4865:2026189] DEBUG:TwilioVideo:[Platform]:Capture video output dropped a sample buffer. Reason = OutOfBuffers
2018-05-19 01:47:12.974971+0500 AlphaChat[4865:2026129] DEBUG:TwilioVideo:[Platform]:Capture start completed
2018-05-19 01:47:12.975000+0500 AlphaChat[4865:2026189] DEBUG:TwilioVideo:[Platform]:Capture video output dropped a sample buffer. Reason = OutOfBuffers
2018-05-19 01:47:12.975063+0500 AlphaChat[4865:2026129] INFO:TwilioVideo:[Platform]:... Finished starting capture.
2018-05-19 01:47:12.975182+0500 AlphaChat[4865:2026129] INFO:TwilioVideo:[Platform]:Session started running
2018-05-19 01:47:13.000964+0500 AlphaChat[4865:2025971] DEBUG:TwilioVideo:[Platform]:Detected a pixel format change. Preparing the rendering pipeline. Old = none, New = 420f
2018-05-19 01:47:19.247963+0500 AlphaChat[4865:2025971] INFO:TwilioVideo:[Core]:Creating dedicated notifier queue ...
2018-05-19 01:47:19.249464+0500 AlphaChat[4865:2025971] DEBUG:TwilioVideo:[Core]:RoomSignalingImpl::RoomSignalingImpl()
2018-05-19 01:47:19.249677+0500 AlphaChat[4865:2025971] INFO:TwilioVideo:[Core]:Initializing SIP signaling stack and worker thread ...
2018-05-19 01:47:19.256738+0500 AlphaChat[4865:2025971] INFO:TwilioVideo:[Core]:Creating SIP stack ...
2018-05-19 01:47:19.260171+0500 AlphaChat[4865:2025971] INFO:TwilioVideo:[Core]:Adding IPv4/IPv6 TLS transports ...
2018-05-19 01:47:19.260550+0500 AlphaChat[4865:2025971] INFO:TwilioVideo:[Signaling]:RESIP::TRANSPORT: Connection::Connection: new connection created to who: [ V4 <IP_ADDRESS>:0 UNKNOWN_TRANSPORT target domain=unspecified mFlowKey=0 ]
2018-05-19 01:47:19.260715+0500 AlphaChat[4865:2025971] INFO:TwilioVideo:[Signaling]:RESIP::TRANSPORT: Creating TLS transport for domain  interface= port=0
2018-05-19 01:47:19.261472+0500 AlphaChat[4865:2025971] INFO:TwilioVideo:[Signaling]:RESIP::TRANSPORT: Connection::Connection: new connection created to who: [ V4 <IP_ADDRESS>:0 UNKNOWN_TRANSPORT target domain=unspecified mFlowKey=0 ]
2018-05-19 01:47:19.280719+0500 AlphaChat[4865:2025971] INFO:TwilioVideo:[Signaling]:RESIP::TRANSPORT: Creating TLS transport for domain  interface= port=0
2018-05-19 01:47:19.281390+0500 AlphaChat[4865:2025971] INFO:TwilioVideo:[Core]:Creating SipTU (Transaction User) ...
2018-05-19 01:47:19.281639+0500 AlphaChat[4865:2025971] INFO:TwilioVideo:[Core]:Creating SIP signaling stack worker thread ...
2018-05-19 01:47:19.281651+0500 AlphaChat[4865:2026188] DEBUG:TwilioVideo:[Platform]:Capture video output dropped a sample buffer. Reason = OutOfBuffers
2018-05-19 01:47:19.281780+0500 AlphaChat[4865:2025971] DEBUG:TwilioVideo:[Core]:SipSignalingStackSocketServer::SipSignalingStackSocketServer()
2018-05-19 01:47:19.282000+0500 AlphaChat[4865:2025971] INFO:TwilioVideo:[Core]:Starting SIP signaling stack worker thread ...
2018-05-19 01:47:19.282337+0500 AlphaChat[4865:2025971] DEBUG:TwilioVideo:[Core]:AppleReachability::AppleReachability()
2018-05-19 01:47:19.282605+0500 AlphaChat[4865:2025971] DEBUG:TwilioVideo:[Core]:Creating zeroAddrReachability
2018-05-19 01:47:19.282141+0500 AlphaChat[4865:2026188] DEBUG:TwilioVideo:[Platform]:Capture video output dropped a sample buffer. Reason = OutOfBuffers
2018-05-19 01:47:19.286510+0500 AlphaChat[4865:2026188] DEBUG:TwilioVideo:[Platform]:Capture video output dropped a sample buffer. Reason = OutOfBuffers
2018-05-19 01:47:19.287049+0500 AlphaChat[4865:2026188] DEBUG:TwilioVideo:[Platform]:Capture video output dropped a sample buffer. Reason = OutOfBuffers
2018-05-19 01:47:19.288364+0500 AlphaChat[4865:2026188] DEBUG:TwilioVideo:[Platform]:Capture video output dropped a sample buffer. Reason = OutOfBuffers
2018-05-19 01:47:19.289376+0500 AlphaChat[4865:2026188] DEBUG:TwilioVideo:[Platform]:Capture video output dropped a sample buffer. Reason = OutOfBuffers
2018-05-19 01:47:19.290182+0500 AlphaChat[4865:2026188] DEBUG:TwilioVideo:[Platform]:Capture video output dropped a sample buffer. Reason = OutOfBuffers
2018-05-19 01:47:19.290650+0500 AlphaChat[4865:2026188] DEBUG:TwilioVideo:[Platform]:Capture video output dropped a sample buffer. Reason = OutOfBuffers
2018-05-19 01:47:19.291337+0500 AlphaChat[4865:2026188] DEBUG:TwilioVideo:[Platform]:Capture video output dropped a sample buffer. Reason = OutOfBuffers
2018-05-19 01:47:19.296822+0500 AlphaChat[4865:2026188] DEBUG:TwilioVideo:[Platform]:Capture video output dropped a sample buffer. Reason = OutOfBuffers
2018-05-19 01:47:19.297664+0500 AlphaChat[4865:2026188] DEBUG:TwilioVideo:[Platform]:Capture video output dropped a sample buffer. Reason = OutOfBuffers
2018-05-19 01:47:19.298159+0500 AlphaChat[4865:2026188] DEBUG:TwilioVideo:[Platform]:Capture video output dropped a sample buffer. Reason = OutOfBuffers
2018-05-19 01:47:19.298829+0500 AlphaChat[4865:2026188] DEBUG:TwilioVideo:[Platform]:Capture video oAttempting to connect to room
2018-05-19 01:47:19.304126+0500 AlphaChat[4865:2025971] DEBUG:TwilioVideo:[Core]:RoomSignalingImpl: State transition successful: kInit -> kDisconnecting
2018-05-19 01:47:19.304877+0500 AlphaChat[4865:2026191] DEBUG:TwilioVideo:[Core]:RoomSignalingImpl::~RoomSignalingImpl()
utput dropped a sample buffer. Reason = OutOfBuffers
2018-05-19 01:47:19.319524+0500 AlphaChat[4865:2026188] DEBUG:TwilioVideo:[Platform]:Capture video output dropped a sample buffer. Reason = OutOfBuffers
2018-05-19 01:47:19.320279+0500 AlphaChat[4865:2026188] DEBUG:TwilioVideo:[Platform]:Capture video output dropped a sample buffer. Reason = OutOfBuffers
2018-05-19 01:47:19.320837+0500 AlphaChat[4865:2026188] DEBUG:TwilioVideo:[Platform]:Capture video output dropped a sample buffer. Reason = OutOfBuffers
2018-05-19 01:47:19.322149+0500 AlphaChat[4865:2026188] DEBUG:TwilioVideo:[Platform]:Capture video output dropped a sample buffer. Reason = OutOfBuffers
2018-05-19 01:47:19.337742+0500 AlphaChat[4865:2026188] DEBUG:TwilioVideo:[Platform]:Capture video output dropped a sample buffer. Reason = OutOfBuffers
2018-05-19 01:47:19.339743+0500 AlphaChat[4865:2026188] DEBUG:TwilioVideo:[Platform]:Capture video output dropped a sample buffer. Reason = OutOfBuffers
2018-05-19 01:47:19.341151+0500 AlphaChat[4865:2026188] DEBUG:TwilioVideo:[Platform]:Capture video output dropped a sample buffer. Reason = OutOfBuffers
2018-05-19 01:47:19.403404+0500 AlphaChat[4865:2026188] DEBUG:TwilioVideo:[Platform]:Capture video output dropped a sample buffer. Reason = OutOfBuffers
2018-05-19 01:47:19.404595+0500 AlphaChat[4865:2026188] DEBUG:TwilioVideo:[Platform]:Capture video output dropped a sample buffer. Reason = OutOfBuffers
2018-05-19 01:47:19.405418+0500 AlphaChat[4865:2026188] DEBUG:TwilioVideo:[Platform]:Capture video output dropped a sample buffer. Reason = OutOfBuffers
2018-05-19 01:47:19.409505+0500 AlphaChat[4865:2026188] DEBUG:TwilioVideo:[Platform]:Capture video output dropped a sample buffer. Reason = OutOfBuffers
2018-05-19 01:47:19.409968+0500 AlphaChat[4865:2026188] DEBUG:TwilioVideo:[Platform]:Capture video output dropped a sample buffer. Reason = OutOfBuffers
2018-05-19 01:47:19.410572+0500 AlphaChat[4865:2026188] DEBUG:TwilioVideo:[Platform]:Capture video output dropped a sample buffer. Reason = OutOfBuffers
2018-05-19 01:47:19.410898+0500 AlphaChat[4865:2026188] DEBUG:TwilioVideo:[Platform]:Capture video output dropped a sample buffer. Reason = OutOfBuffers
2018-05-19 01:47:19.299313+0500 AlphaChat[4865:2026252] DEBUG:TwilioVideo:[Core]: SipSignalingStackSocketServer::resolveOutboundProxy()
2018-05-19 01:47:19.416420+0500 AlphaChat[4865:2026252] INFO:TwilioVideo:[Core]:Initializing Twilio SIP edge (outbound proxy) ...
2018-05-19 01:47:19.416544+0500 AlphaChat[4865:2026252] INFO:TwilioVideo:[Core]:Querying Twilio SIP edge (mobile-endpoint.twilio.com) IP addresses ...
2018-05-19 01:47:19.416646+0500 AlphaChat[4865:2026252] INFO:TwilioVideo:[Core]:Looking up: mobile-endpoint.twilio.com
2018-05-19 01:47:19.583600+0500 AlphaChat[4865:2026252] INFO:TwilioVideo:[Core]:Address family: 2: <IP_ADDRESS>
2018-05-19 01:47:19.583931+0500 AlphaChat[4865:2026252] INFO:TwilioVideo:[Core]:Address family: 2: <IP_ADDRESS>
2018-05-19 01:47:19.584083+0500 AlphaChat[4865:2026252] INFO:TwilioVideo:[Core]:Setting Twilio SIP edge (outbound proxy) to: sips:<IP_ADDRESS>:443
2018-05-19 01:47:19.584247+0500 AlphaChat[4865:2026252] INFO:TwilioVideo:[Core]:DNS resolution was successful
2018-05-19 01:47:19.584305+0500 AlphaChat[4865:2026252] INFO:TwilioVideo:[Core]:Entering SIP signaling stack message processing loop ...
2018-05-19 01:47:19.584464+0500 AlphaChat[4865:2026252] DEBUG:TwilioVideo:[Core]:Sending a ping message..
2018-05-19 01:47:19.584905+0500 AlphaChat[4865:2026252] TRACE:TwilioVideo:[Core]:Perform SipTU processing ...
2018-05-19 01:47:19.585061+0500 AlphaChat[4865:2026252] TRACE:TwilioVideo:[Core]:Queue requests at transport level ...
2018-05-19 01:47:19.585649+0500 AlphaChat[4865:2026252] DEBUG:TwilioVideo:[Core]:Socket created in ../resiprocate-1.8/resip/stack/TcpBaseTransport.cxx at line 223, transport: 1, socket: 45
2018-05-19 01:47:19.585988+0500 AlphaChat[4865:2026252] INFO:TwilioVideo:[Signaling]:RESIP::TRANSPORT: Connection::Connection: new connection created to who: [ V4 <IP_ADDRESS>:443 TLS target domain=unspecified mFlowKey=45 ]
2018-05-19 01:47:19.586090+0500 AlphaChat[4865:2026252] INFO:TwilioVideo:[Signaling]:RESIP::TRANSPORT: Creating TLS connection for domain  [ V4 <IP_ADDRESS>:443 TLS target domain=unspecified mFlowKey=0 ] on 45
2018-05-19 01:47:19.586247+0500 AlphaChat[4865:2026252] TRACE:TwilioVideo:[Core]:Select for 29999 ms.
2018-05-19 01:47:19.586328+0500 AlphaChat[4865:2026252] TRACE:TwilioVideo:[Core]:Process outstanding I/O ...
2018-05-19 01:47:19.586405+0500 AlphaChat[4865:2026252] TRACE:TwilioVideo:[Core]:Perform SipTU processing ...
2018-05-19 01:47:19.586604+0500 AlphaChat[4865:2026252] TRACE:TwilioVideo:[Core]:Queue requests at transport level ...
2018-05-19 01:47:19.586655+0500 AlphaChat[4865:2026252] TRACE:TwilioVideo:[Core]:Select for 29998 ms.
2018-05-19 01:47:19.867373+0500 AlphaChat[4865:2026252] TRACE:TwilioVideo:[Core]:Process outstanding I/O ...
2018-05-19 01:47:19.867506+0500 AlphaChat[4865:2026252] INFO:TwilioVideo:[Signaling]:RESIP::TRANSPORT: TLS handshake starting (client mode)
2018-05-19 01:47:19.867603+0500 AlphaChat[4865:2026252] INFO:TwilioVideo:[Signaling]:RESIP::TRANSPORT: TLS connected
2018-05-19 01:47:19.868003+0500 AlphaChat[4865:2026252] TRACE:TwilioVideo:[Core]:Perform SipTU processing ...
2018-05-19 01:47:19.868317+0500 AlphaChat[4865:2026252] TRACE:TwilioVideo:[Core]:Queue requests at transport level ...
2018-05-19 01:47:19.868402+0500 AlphaChat[4865:2026252] TRACE:TwilioVideo:[Core]:Select for 29717 ms.
2018-05-19 01:47:20.178174+0500 AlphaChat[4865:2026252] TRACE:TwilioVideo:[Core]:Process outstanding I/O ...
2018-05-19 01:47:20.202628+0500 AlphaChat[4865:2026252] TRACE:TwilioVideo:[Core]:Perform SipTU processing ...
2018-05-19 01:47:20.202786+0500 AlphaChat[4865:2026252] TRACE:TwilioVideo:[Core]:Queue requests at transport level ...
2018-05-19 01:47:20.202888+0500 AlphaChat[4865:2026252] TRACE:TwilioVideo:[Core]:Select for 29382 ms.
2018-05-19 01:47:20.482869+0500 AlphaChat[4865:2026252] TRACE:TwilioVideo:[Core]:Process outstanding I/O ...
2018-05-19 01:47:20.484696+0500 AlphaChat[4865:2026252] INFO:TwilioVideo:[Signaling]:RESIP::TRANSPORT: TLS connected
2018-05-19 01:47:20.485057+0500 AlphaChat[4865:2026252] INFO:TwilioVideo:[Signaling]:RESIP::TRANSPORT: TLS sessions set up with TLSv1.2 TLSv1/SSLv3 AES256-GCM-SHA384
2018-05-19 01:47:20.485473+0500 AlphaChat[4865:2026252] INFO:TwilioVideo:[Signaling]:RESIP::SIP: subjectAltName of TLS session cert contains DNS <mobile-endpoint.twilio.com>
2018-05-19 01:47:20.486416+0500 AlphaChat[4865:2026252] INFO:TwilioVideo:[Signaling]:RESIP::SIP: subjectAltName of TLS session cert contains DNS <mobile-endpoint.us1.twilio.com>
2018-05-19 01:47:20.489240+0500 AlphaChat[4865:2026252] INFO:TwilioVideo:[Signaling]:RESIP::TRANSPORT: TLS handshake done for peer mobile-endpoint.twilio.com, mobile-endpoint.us1.twilio.com
2018-05-19 01:47:20.490778+0500 AlphaChat[4865:2026252] TRACE:TwilioVideo:[Core]:Perform SipTU processing ...
2018-05-19 01:47:20.491058+0500 AlphaChat[4865:2026252] TRACE:TwilioVideo:[Core]:Queue requests at transport level ...
2018-05-19 01:47:20.491358+0500 AlphaChat[4865:2026252] TRACE:TwilioVideo:[Core]:Select for 29094 ms.
2018-05-19 01:47:20.491614+0500 AlphaChat[4865:2026252] TRACE:TwilioVideo:[Core]:Process outstanding I/O ...
2018-05-19 01:47:20.492252+0500 AlphaChat[4865:2026252] TRACE:TwilioVideo:[Core]:Perform SipTU processing ...
2018-05-19 01:47:20.492405+0500 AlphaChat[4865:2026252] TRACE:TwilioVideo:[Core]:Queue requests at transport level ...
2018-05-19 01:47:20.492541+0500 AlphaChat[4865:2026252] TRACE:TwilioVideo:[Core]:Select for 29093 ms.
2018-05-19 01:47:20.796770+0500 AlphaChat[4865:2026190] TRACE:TwilioVideo:[Core]:Response: OK, code: 200
2018-05-19 01:47:20.798000+0500 AlphaChat[4865:2026190] DEBUG:TwilioVideo:[Core]:Parsing 'video' endpoint config: {"video":{"network_traversal_service":{"ttl":3600,"date_created":"Fri, 18 May 2018 20:47:20 +0000","date_updated":"Fri, 18 May 2018 20:47:20 +0000","ice_servers":[{"username":"9c92b622b0bb934c2390b8e909cbd1b16375876d03b67fee8d7c5052d80088c2","credential":"iSkYKGFpdnPRVPssyxMtH5AeLPc2Yk+mqX3V9U/ELy0=","urls":"turn:global.turn.twilio.com:3478?transport=udp"},{"username":"9c92b622b0bb934c2390b8e909cbd1b16375876d03b67fee8d7c5052d80088c2","credential":"iSkYKGFpdnPRVPssyxMtH5AeLPc2Yk+mqX3V9U/ELy0=","urls":"turns:global.turn.twilio.com:443?transport=tcp"}]}}}
2018-05-19 01:47:20.800562+0500 AlphaChat[4865:2026252] TRACE:TwilioVideo:[Core]:Process outstanding I/O ...
2018-05-19 01:47:20.801014+0500 AlphaChat[4865:2026252] TRACE:TwilioVideo:[Core]:Perform SipTU processing ...
2018-05-19 01:47:20.801150+0500 AlphaChat[4865:2026252] TRACE:TwilioVideo:[Core]:Queue requests at transport level ...
2018-05-19 01:47:20.805504+0500 AlphaChat[4865:2026252] TRACE:TwilioVideo:[Core]:Select for 28780 ms.
2018-05-19 01:47:20.805688+0500 AlphaChat[4865:2026252] TRACE:TwilioVideo:[Core]:Process outstanding I/O ...
2018-05-19 01:47:20.805831+0500 AlphaChat[4865:2026252] TRACE:TwilioVideo:[Core]:Perform SipTU processing ...
2018-05-19 01:47:20.805959+0500 AlphaChat[4865:2026252] TRACE:TwilioVideo:[Core]:Queue requests at transport level ...
2018-05-19 01:47:20.806093+0500 AlphaChat[4865:2026252] TRACE:TwilioVideo:[Core]:Select for 28779 ms.
Versions
Xcode Version 9.1
iOS Version 11.1.2
Device iPhone 6
Video iOS SDK
Twilio iOS SDK Versio 1.4.0 (I have also tried on 2.0.1 but the same happens there as well)
Am I missing something here? I will really appreciate if someone can help me out, I am on a timeline here

@shayanjalil Thanks for reaching out. What do you observe when you run our QuickStart ?  Try using your token here. Let me know if you have any question.

@piyushtank I will do that and then report here. Do you think it has got something to do with the access token?
Because from the iOS logs I think it is connecting fine , there was no error there

@shayanjalil From the logs that you have provided, I noticed, there are two overlapping video capturer app had created, this made me think you may be accidentally connecting to two Rooms and one of them gets destroyed which deletes the delegate, and so, you don't see delegates invoked for the second one. But again, it is hard to say without looking at the code. To debug this further I recommend -

If possible, can you share the code with us.
Try out our Quickstart sample app.
I noticed some of the logs are missing in your post. Collect the complete SDK logs from beginning to the end and let us know.

Also, I recommend using our 2.0.1 SDK which has more features and bugfixes in it.
Let me know if you have any questions.

@piyushtank thankyou for your time and concern.
I did copy my access token to the quickstart app and it worked there. The delegates got called.
I do not know what is causing the problem in my app. I took your sugesstion and you were right, the videocapturer was being initialized twice, but even fixing that did not work for me.
Following are the complete logs
2018-05-19 14:03:11.773813+0500 AlphaChat[4950:2070376] INFO:TwilioVideo:[Core]:Creating peer connection signaling thread ... 2018-05-19 14:03:11.775021+0500 AlphaChat[4950:2070376] INFO:TwilioVideo:[Core]:Creating peer connection worker thread ... 2018-05-19 14:03:11.775309+0500 AlphaChat[4950:2070376] INFO:TwilioVideo:[Core]:Creating peer connection networking thread ... 2018-05-19 14:03:11.775498+0500 AlphaChat[4950:2070376] INFO:TwilioVideo:[Core]:Creating peer connection factory ... 2018-05-19 14:03:11.796314+0500 AlphaChat[4950:2070376] INFO:TwilioVideo:[Core]:Done creating peer connection factory. 2018-05-19 14:03:11.798463+0500 AlphaChat[4950:2070376] INFO:TwilioVideo:[Core]:Adding audio track ... 2018-05-19 14:03:11.799185+0500 AlphaChat[4950:2070376] DEBUG:TwilioVideo:[Core]:AudioTrackImpl::AudioTrackImpl() 2018-05-19 14:03:11.822469+0500 AlphaChat[4950:2070376] DEBUG:TwilioVideo:[Platform]:Supported formats were: (     "<<TVIVideoFormat: 0x1c0432780> size: {192, 144}, fps: 30, format: 420f>",     "<<TVIVideoFormat: 0x1c0432760> size: {352, 288}, fps: 30, format: 420f>",     "<<TVIVideoFormat: 0x1c0432880> size: {480, 360}, fps: 30, format: 420f>",     "<<TVIVideoFormat: 0x1c0432840> size: {640, 480}, fps: 30, format: 420f>",     "<<TVIVideoFormat: 0x1c0432800> size: {960, 540}, fps: 30, format: 420f>",     "<<TVIVideoFormat: 0x1c0432860> size: {1280, 720}, fps: 30, format: 420f>",     "<<TVIVideoFormat: 0x1c04327e0> size: {1280, 960}, fps: 30, format: 420f>" ) 2018-05-19 14:03:11.822790+0500 AlphaChat[4950:2070376] INFO:TwilioVideo:[Core]:Adding video source ... 2018-05-19 14:03:11.826210+0500 AlphaChat[4950:2070552] DEBUG:TwilioVideo:[Platform]:Start TVIVideoCapturer. <TVICameraCapturer: 0x1c0a6ac40> 2018-05-19 14:03:11.826377+0500 AlphaChat[4950:2070552] DEBUG:TwilioVideo:[Platform]:Start capturing. 2018-05-19 14:03:11.826697+0500 AlphaChat[4950:2070552] DEBUG:TwilioVideo:[Platform]:Prepare for capture. 2018-05-19 14:03:11.827250+0500 AlphaChat[4950:2070552] INFO:TwilioVideo:[Platform]:Starting capture pipeline ... 2018-05-19 14:03:11.827749+0500 AlphaChat[4950:2070376] INFO:TwilioVideo:[Core]:Creating a video track ... 2018-05-19 14:03:11.829207+0500 AlphaChat[4950:2070376] DEBUG:TwilioVideo:[Core]:VideoTrackImpl::VideoTrackImpl() Video track created 2018-05-19 14:03:11.841738+0500 AlphaChat[4950:2070452] DEBUG:TwilioVideo:[Platform]:Adding device input: <AVCaptureDeviceInput: 0x1c0432c40 [Front Camera]> 2018-05-19 14:03:11.851505+0500 AlphaChat[4950:2070452] INFO:TwilioVideo:[Platform]:Best device format was: <AVCaptureDeviceFormat: 0x1c02021c0 'vide'/'420f'  640x 480, { 2- 60 fps}, fov:54.400, max zoom:60.00 (upscales @2.00), ISO:34.0-2176.0, SS:0.000013-0.500000, supports HDR> 2018-05-19 14:03:12.170455+0500 AlphaChat[4950:2070451] DEBUG:TwilioVideo:[Platform]:Video pipeline will start running Camera started: 0 2018-05-19 14:03:12.172558+0500 AlphaChat[4950:2070451] INFO:TwilioVideo:[Platform]:Tried to copy a frame while stopped. 2018-05-19 14:03:12.173186+0500 AlphaChat[4950:2070452] DEBUG:TwilioVideo:[Platform]:Capture start completed 2018-05-19 14:03:12.173321+0500 AlphaChat[4950:2070452] INFO:TwilioVideo:[Platform]:... Finished starting capture. 2018-05-19 14:03:12.173405+0500 AlphaChat[4950:2070452] INFO:TwilioVideo:[Platform]:Session started running 2018-05-19 14:03:12.211941+0500 AlphaChat[4950:2070376] DEBUG:TwilioVideo:[Platform]:Detected a pixel format change. Preparing the rendering pipeline. Old = none, New = 420f 2018-05-19 14:03:13.389818+0500 AlphaChat[4950:2070376] INFO:TwilioVideo:[Core]:Creating dedicated notifier queue ... 2018-05-19 14:03:13.400456+0500 AlphaChat[4950:2070376] DEBUG:TwilioVideo:[Core]:RoomSignalingImpl::RoomSignalingImpl() 2018-05-19 14:03:13.400588+0500 AlphaChat[4950:2070376] INFO:TwilioVideo:[Core]:Initializing SIP signaling stack and worker thread ... 2018-05-19 14:03:13.407468+0500 AlphaChat[4950:2070376] INFO:TwilioVideo:[Core]:Creating SIP stack ... 2018-05-19 14:03:13.412362+0500 AlphaChat[4950:2070376] INFO:TwilioVideo:[Core]:Adding IPv4/IPv6 TLS transports ... 2018-05-19 14:03:13.412515+0500 AlphaChat[4950:2070376] INFO:TwilioVideo:[Signaling]:RESIP::TRANSPORT: Connection::Connection: new connection created to who: [ V4 <IP_ADDRESS>:0 UNKNOWN_TRANSPORT target domain=unspecified mFlowKey=0 ] 2018-05-19 14:03:13.412576+0500 AlphaChat[4950:2070376] INFO:TwilioVideo:[Signaling]:RESIP::TRANSPORT: Creating TLS transport for domain  interface= port=0 2018-05-19 14:03:13.414925+0500 AlphaChat[4950:2070376] INFO:TwilioVideo:[Signaling]:RESIP::TRANSPORT: Connection::Connection: new connection created to who: [ V4 <IP_ADDRESS>:0 UNKNOWN_TRANSPORT target domain=unspecified mFlowKey=0 ] 2018-05-19 14:03:13.415013+0500 AlphaChat[4950:2070376] INFO:TwilioVideo:[Signaling]:RESIP::TRANSPORT: Creating TLS transport for domain  interface= port=0 2018-05-19 14:03:13.415220+0500 AlphaChat[4950:2070376] INFO:TwilioVideo:[Core]:Creating SipTU (Transaction User) ... 2018-05-19 14:03:13.417590+0500 AlphaChat[4950:2070376] INFO:TwilioVideo:[Core]:Creating SIP signaling stack worker thread ... 2018-05-19 14:03:13.417665+0500 AlphaChat[4950:2070376] DEBUG:TwilioVideo:[Core]:SipSignalingStackSocketServer::SipSignalingStackSocketServer() 2018-05-19 14:03:13.417743+0500 AlphaChat[4950:2070376] INFO:TwilioVideo:[Core]:Starting SIP signaling stack worker thread ... 2018-05-19 14:03:13.417900+0500 AlphaChat[4950:2070376] DEBUG:TwilioVideo:[Core]:AppleReachability::AppleReachability() 2018-05-19 14:03:13.417947+0500 AlphaChat[4950:2070376] DEBUG:TwilioVideo:[Core]:Creating zeroAddrReachability 2018-05-19 14:03:13.420962+0500 AlphaChat[4950:2070595] DEBUG:TwilioVideo:[Core]: SipSignalingStackSocketServer::resolveOutboundProxy() 2018-05-19 14:03:13.421402+0500 AlphaChat[4950:2070595] INFO:TwilioVideo:[Core]:Initializing Twilio SIP edge (outbound proxy) ... 2018-05-19 14:03:13.421458+0500 AlphaChat[4950:2070595] INFO:TwilioVideo:[Core]:Querying Twilio SIP edge (mobile-endpoint.twilio.com) IP addresses ... 2018-05-19 14:03:13.421520+0500 AlphaChat[4950:2070595] INFO:TwilioVideo:[Core]:Looking up: mobile-endpoint.twilio.com Attempting to connect to room 2018-05-19 14:03:13.422673+0500 AlphaChat[4950:2070376] DEBUG:TwilioVideo:[Core]:RoomSignalingImpl: State transition successful: kInit -> kDisconnecting 2018-05-19 14:03:13.437780+0500 AlphaChat[4950:2070577] DEBUG:TwilioVideo:[Core]:RoomSignalingImpl::~RoomSignalingImpl() 2018-05-19 14:03:13.593961+0500 AlphaChat[4950:2070376] INFO:TwilioVideo:[Core]:Creating dedicated notifier queue ... 2018-05-19 14:03:13.594362+0500 AlphaChat[4950:2070376] DEBUG:TwilioVideo:[Core]:RoomSignalingImpl::RoomSignalingImpl() 2018-05-19 14:03:13.594431+0500 AlphaChat[4950:2070376] INFO:TwilioVideo:[Core]:Initializing SIP signaling stack and worker thread ... 2018-05-19 14:03:13.599299+0500 AlphaChat[4950:2070376] INFO:TwilioVideo:[Core]:Creating SIP stack ... 2018-05-19 14:03:13.600034+0500 AlphaChat[4950:2070376] INFO:TwilioVideo:[Core]:Adding IPv4/IPv6 TLS transports ... 2018-05-19 14:03:13.600137+0500 AlphaChat[4950:2070376] INFO:TwilioVideo:[Signaling]:RESIP::TRANSPORT: Connection::Connection: new connection created to who: [ V4 <IP_ADDRESS>:0 UNKNOWN_TRANSPORT target domain=unspecified mFlowKey=0 ] 2018-05-19 14:03:13.600240+0500 AlphaChat[4950:2070376] INFO:TwilioVideo:[Signaling]:RESIP::TRANSPORT: Creating TLS transport for domain  interface= port=0 2018-05-19 14:03:13.600535+0500 AlphaChat[4950:2070376] INFO:TwilioVideo:[Signaling]:RESIP::TRANSPORT: Connection::Connection: new connection created to who: [ V4 <IP_ADDRESS>:0 UNKNOWN_TRANSPORT target domain=unspecified mFlowKey=0 ] 2018-05-19 14:03:13.601390+0500 AlphaChat[4950:2070376] INFO:TwilioVideo:[Signaling]:RESIP::TRANSPORT: Creating TLS transport for domain  interface= port=0 2018-05-19 14:03:13.601894+0500 AlphaChat[4950:2070376] INFO:TwilioVideo:[Core]:Creating SipTU (Transaction User) ... 2018-05-19 14:03:13.601955+0500 AlphaChat[4950:2070376] INFO:TwilioVideo:[Core]:Creating SIP signaling stack worker thread ... 2018-05-19 14:03:13.601993+0500 AlphaChat[4950:2070376] DEBUG:TwilioVideo:[Core]:SipSignalingStackSocketServer::SipSignalingStackSocketServer() 2018-05-19 14:03:13.602045+0500 AlphaChat[4950:2070376] INFO:TwilioVideo:[Core]:Starting SIP signaling stack worker thread ... 2018-05-19 14:03:13.602190+0500 AlphaChat[4950:2070376] DEBUG:TwilioVideo:[Core]:AppleReachability::AppleReachability() 2018-05-19 14:03:13.602228+0500 AlphaChat[4950:2070376] DEBUG:TwilioVideo:[Core]:Creating zeroAddrReachability 2018-05-19 14:03:13.602338+0500 AlphaChat[4950:2070597] DEBUG:TwilioVideo:[Core]: SipSignalingStackSocketServer::resolveOutboundProxy() 2018-05-19 14:03:13.609327+0500 AlphaChat[4950:2070597] INFO:TwilioVideo:[Core]:Initializing Twilio SIP edge (outbound proxy) ... 2018-05-19 14:03:13.609388+0500 AlphaChat[4950:2070597] INFO:TwilioVideo:[Core]:Querying Twilio SIP edge (mobile-endpoint.twilio.com) IP addresses ... 2018-05-19 14:03:13.609426+0500 AlphaChat[4950:2070597] INFO:TwilioVideo:[Core]:Looking up: mobile-endpoint.twilio.com Attempting to connect to room 2018-05-19 14:03:13.610195+0500 AlphaChat[4950:2070376] DEBUG:TwilioVideo:[Core]:RoomSignalingImpl: State transition successful: kInit -> kDisconnecting 2018-05-19 14:03:13.615874+0500 AlphaChat[4950:2070460] DEBUG:TwilioVideo:[Core]:RoomSignalingImpl::~RoomSignalingImpl() 2018-05-19 14:03:13.628289+0500 AlphaChat[4950:2070595] INFO:TwilioVideo:[Core]:Address family: 2: <IP_ADDRESS> 2018-05-19 14:03:13.628452+0500 AlphaChat[4950:2070595] INFO:TwilioVideo:[Core]:Address family: 2: <IP_ADDRESS> 2018-05-19 14:03:13.628607+0500 AlphaChat[4950:2070597] INFO:TwilioVideo:[Core]:Address family: 2: <IP_ADDRESS> 2018-05-19 14:03:13.628720+0500 AlphaChat[4950:2070597] INFO:TwilioVideo:[Core]:Address family: 2: <IP_ADDRESS> 2018-05-19 14:03:13.628823+0500 AlphaChat[4950:2070597] INFO:TwilioVideo:[Core]:Setting Twilio SIP edge (outbound proxy) to: sips:<IP_ADDRESS>:443 2018-05-19 14:03:13.632340+0500 AlphaChat[4950:2070595] INFO:TwilioVideo:[Core]:Setting Twilio SIP edge (outbound proxy) to: sips:<IP_ADDRESS>:443 2018-05-19 14:03:13.632599+0500 AlphaChat[4950:2070595] INFO:TwilioVideo:[Core]:DNS resolution was successful 2018-05-19 14:03:13.632885+0500 AlphaChat[4950:2070595] INFO:TwilioVideo:[Core]:Entering SIP signaling stack message processing loop ... 2018-05-19 14:03:13.633177+0500 AlphaChat[4950:2070595] DEBUG:TwilioVideo:[Core]:Sending a ping message.. 2018-05-19 14:03:13.634182+0500 AlphaChat[4950:2070597] INFO:TwilioVideo:[Core]:DNS resolution was successful 2018-05-19 14:03:13.634282+0500 AlphaChat[4950:2070597] INFO:TwilioVideo:[Core]:Entering SIP signaling stack message processing loop ... 2018-05-19 14:03:13.634352+0500 AlphaChat[4950:2070597] DEBUG:TwilioVideo:[Core]:Sending a ping message.. 2018-05-19 14:03:13.636209+0500 AlphaChat[4950:2070595] TRACE:TwilioVideo:[Core]:Perform SipTU processing ... 2018-05-19 14:03:13.636274+0500 AlphaChat[4950:2070597] TRACE:TwilioVideo:[Core]:Perform SipTU processing ... 2018-05-19 14:03:13.636301+0500 AlphaChat[4950:2070595] TRACE:TwilioVideo:[Core]:Queue requests at transport level ... 2018-05-19 14:03:13.636509+0500 AlphaChat[4950:2070597] TRACE:TwilioVideo:[Core]:Queue requests at transport level ... 2018-05-19 14:03:13.637987+0500 AlphaChat[4950:2070595] DEBUG:TwilioVideo:[Core]:Socket created in ../resiprocate-1.8/resip/stack/TcpBaseTransport.cxx at line 223, transport: 1, socket: 55 2018-05-19 14:03:13.638089+0500 AlphaChat[4950:2070597] DEBUG:TwilioVideo:[Core]:Socket created in ../resiprocate-1.8/resip/stack/TcpBaseTransport.cxx at line 223, transport: 1, socket: 56 2018-05-19 14:03:13.638345+0500 AlphaChat[4950:2070597] INFO:TwilioVideo:[Signaling]:RESIP::TRANSPORT: Connection::Connection: new connection created to who: [ V4 <IP_ADDRESS>:443 TLS target domain=unspecified mFlowKey=56 ] 2018-05-19 14:03:13.638414+0500 AlphaChat[4950:2070597] INFO:TwilioVideo:[Signaling]:RESIP::TRANSPORT: Creating TLS connection for domain  [ V4 <IP_ADDRESS>:443 TLS target domain=unspecified mFlowKey=0 ] on 56 2018-05-19 14:03:13.638895+0500 AlphaChat[4950:2070595] INFO:TwilioVideo:[Signaling]:RESIP::TRANSPORT: Connection::Connection: new connection created to who: [ V4 <IP_ADDRESS>:443 TLS target domain=unspecified mFlowKey=55 ] 2018-05-19 14:03:13.638968+0500 AlphaChat[4950:2070595] INFO:TwilioVideo:[Signaling]:RESIP::TRANSPORT: Creating TLS connection for domain  [ V4 <IP_ADDRESS>:443 TLS target domain=unspecified mFlowKey=0 ] on 55 2018-05-19 14:03:13.639113+0500 AlphaChat[4950:2070595] TRACE:TwilioVideo:[Core]:Select for 29997 ms. 2018-05-19 14:03:13.639299+0500 AlphaChat[4950:2070595] TRACE:TwilioVideo:[Core]:Process outstanding I/O ... 2018-05-19 14:03:13.639352+0500 AlphaChat[4950:2070595] TRACE:TwilioVideo:[Core]:Perform SipTU processing ... 2018-05-19 14:03:13.639389+0500 AlphaChat[4950:2070595] TRACE:TwilioVideo:[Core]:Queue requests at transport level ... 2018-05-19 14:03:13.639428+0500 AlphaChat[4950:2070595] TRACE:TwilioVideo:[Core]:Select for 29996 ms. 2018-05-19 14:03:13.639497+0500 AlphaChat[4950:2070597] TRACE:TwilioVideo:[Core]:Select for 29996 ms. 2018-05-19 14:03:13.639718+0500 AlphaChat[4950:2070597] TRACE:TwilioVideo:[Core]:Process outstanding I/O ... 2018-05-19 14:03:13.639827+0500 AlphaChat[4950:2070597] TRACE:TwilioVideo:[Core]:Perform SipTU processing ... 2018-05-19 14:03:13.639865+0500 AlphaChat[4950:2070597] TRACE:TwilioVideo:[Core]:Queue requests at transport level ... 2018-05-19 14:03:13.639904+0500 AlphaChat[4950:2070597] TRACE:TwilioVideo:[Core]:Select for 29996 ms. 2018-05-19 14:03:13.860498+0500 AlphaChat[4950:2070597] TRACE:TwilioVideo:[Core]:Process outstanding I/O ... 2018-05-19 14:03:13.860724+0500 AlphaChat[4950:2070597] INFO:TwilioVideo:[Signaling]:RESIP::TRANSPORT: TLS handshake starting (client mode) 2018-05-19 14:03:13.861291+0500 AlphaChat[4950:2070597] INFO:TwilioVideo:[Signaling]:RESIP::TRANSPORT: TLS connected 2018-05-19 14:03:13.861902+0500 AlphaChat[4950:2070597] TRACE:TwilioVideo:[Core]:Perform SipTU processing ... 2018-05-19 14:03:13.861972+0500 AlphaChat[4950:2070597] TRACE:TwilioVideo:[Core]:Queue requests at transport level ... 2018-05-19 14:03:13.862197+0500 AlphaChat[4950:2070597] TRACE:TwilioVideo:[Core]:Select for 29774 ms. 2018-05-19 14:03:13.863878+0500 AlphaChat[4950:2070595] TRACE:TwilioVideo:[Core]:Process outstanding I/O ... 2018-05-19 14:03:13.864072+0500 AlphaChat[4950:2070595] INFO:TwilioVideo:[Signaling]:RESIP::TRANSPORT: TLS handshake starting (client mode) 2018-05-19 14:03:13.864220+0500 AlphaChat[4950:2070595] INFO:TwilioVideo:[Signaling]:RESIP::TRANSPORT: TLS connected 2018-05-19 14:03:13.864554+0500 AlphaChat[4950:2070595] TRACE:TwilioVideo:[Core]:Perform SipTU processing ... 2018-05-19 14:03:13.864663+0500 AlphaChat[4950:2070595] TRACE:TwilioVideo:[Core]:Queue requests at transport level ... 2018-05-19 14:03:13.864709+0500 AlphaChat[4950:2070595] TRACE:TwilioVideo:[Core]:Select for 29771 ms. 2018-05-19 14:03:14.085692+0500 AlphaChat[4950:2070597] TRACE:TwilioVideo:[Core]:Process outstanding I/O ... 2018-05-19 14:03:14.089551+0500 AlphaChat[4950:2070597] TRACE:TwilioVideo:[Core]:Perform SipTU processing ... 2018-05-19 14:03:14.089662+0500 AlphaChat[4950:2070597] TRACE:TwilioVideo:[Core]:Queue requests at transport level ... 2018-05-19 14:03:14.089712+0500 AlphaChat[4950:2070597] TRACE:TwilioVideo:[Core]:Select for 29546 ms. 2018-05-19 14:03:14.092414+0500 AlphaChat[4950:2070595] TRACE:TwilioVideo:[Core]:Process outstanding I/O ... 2018-05-19 14:03:14.094736+0500 AlphaChat[4950:2070595] TRACE:TwilioVideo:[Core]:Perform SipTU processing ... 2018-05-19 14:03:14.094820+0500 AlphaChat[4950:2070595] TRACE:TwilioVideo:[Core]:Queue requests at transport level ... 2018-05-19 14:03:14.094924+0500 AlphaChat[4950:2070595] TRACE:TwilioVideo:[Core]:Select for 29541 ms. 2018-05-19 14:03:14.312252+0500 AlphaChat[4950:2070597] TRACE:TwilioVideo:[Core]:Process outstanding I/O ... 2018-05-19 14:03:14.313170+0500 AlphaChat[4950:2070597] TRACE:TwilioVideo:[Core]:Perform SipTU processing ... 2018-05-19 14:03:14.313231+0500 AlphaChat[4950:2070597] TRACE:TwilioVideo:[Core]:Queue requests at transport level ... 2018-05-19 14:03:14.313272+0500 AlphaChat[4950:2070597] TRACE:TwilioVideo:[Core]:Select for 29323 ms. 2018-05-19 14:03:14.313344+0500 AlphaChat[4950:2070597] TRACE:TwilioVideo:[Core]:Process outstanding I/O ... 2018-05-19 14:03:14.313537+0500 AlphaChat[4950:2070597] INFO:TwilioVideo:[Signaling]:RESIP::TRANSPORT: TLS connected 2018-05-19 14:03:14.313582+0500 AlphaChat[4950:2070597] INFO:TwilioVideo:[Signaling]:RESIP::TRANSPORT: TLS sessions set up with TLSv1.2 TLSv1/SSLv3 AES256-GCM-SHA384 2018-05-19 14:03:14.313660+0500 AlphaChat[4950:2070597] INFO:TwilioVideo:[Signaling]:RESIP::SIP: subjectAltName of TLS session cert contains DNS <mobile-endpoint.twilio.com> 2018-05-19 14:03:14.313701+0500 AlphaChat[4950:2070597] INFO:TwilioVideo:[Signaling]:RESIP::SIP: subjectAltName of TLS session cert contains DNS <mobile-endpoint.us1.twilio.com> 2018-05-19 14:03:14.317040+0500 AlphaChat[4950:2070597] INFO:TwilioVideo:[Signaling]:RESIP::TRANSPORT: TLS handshake done for peer mobile-endpoint.twilio.com, mobile-endpoint.us1.twilio.com 2018-05-19 14:03:14.317147+0500 AlphaChat[4950:2070597] TRACE:TwilioVideo:[Core]:Perform SipTU processing ... 2018-05-19 14:03:14.317186+0500 AlphaChat[4950:2070597] TRACE:TwilioVideo:[Core]:Queue requests at transport level ... 2018-05-19 14:03:14.317225+0500 AlphaChat[4950:2070597] TRACE:TwilioVideo:[Core]:Select for 29319 ms. 2018-05-19 14:03:14.317277+0500 AlphaChat[4950:2070597] TRACE:TwilioVideo:[Core]:Process outstanding I/O ... 2018-05-19 14:03:14.317495+0500 AlphaChat[4950:2070597] TRACE:TwilioVideo:[Core]:Perform SipTU processing ... 2018-05-19 14:03:14.317539+0500 AlphaChat[4950:2070597] TRACE:TwilioVideo:[Core]:Queue requests at transport level ... 2018-05-19 14:03:14.320026+0500 AlphaChat[4950:2070597] TRACE:TwilioVideo:[Core]:Select for 29316 ms. 2018-05-19 14:03:14.321417+0500 AlphaChat[4950:2070595] TRACE:TwilioVideo:[Core]:Process outstanding I/O ... 2018-05-19 14:03:14.321618+0500 AlphaChat[4950:2070595] TRACE:TwilioVideo:[Core]:Perform SipTU processing ... 2018-05-19 14:03:14.321658+0500 AlphaChat[4950:2070595] TRACE:TwilioVideo:[Core]:Queue requests at transport level ... 2018-05-19 14:03:14.321698+0500 AlphaChat[4950:2070595] TRACE:TwilioVideo:[Core]:Select for 29314 ms. 2018-05-19 14:03:14.322785+0500 AlphaChat[4950:2070595] TRACE:TwilioVideo:[Core]:Process outstanding I/O ... 2018-05-19 14:03:14.323027+0500 AlphaChat[4950:2070595] INFO:TwilioVideo:[Signaling]:RESIP::TRANSPORT: TLS connected 2018-05-19 14:03:14.323073+0500 AlphaChat[4950:2070595] INFO:TwilioVideo:[Signaling]:RESIP::TRANSPORT: TLS sessions set up with TLSv1.2 TLSv1/SSLv3 AES256-GCM-SHA384 2018-05-19 14:03:14.325613+0500 AlphaChat[4950:2070595] INFO:TwilioVideo:[Signaling]:RESIP::SIP: subjectAltName of TLS session cert contains DNS <mobile-endpoint.twilio.com> 2018-05-19 14:03:14.325687+0500 AlphaChat[4950:2070595] INFO:TwilioVideo:[Signaling]:RESIP::SIP: subjectAltName of TLS session cert contains DNS <mobile-endpoint.us1.twilio.com> 2018-05-19 14:03:14.326358+0500 AlphaChat[4950:2070595] INFO:TwilioVideo:[Signaling]:RESIP::TRANSPORT: TLS handshake done for peer mobile-endpoint.twilio.com, mobile-endpoint.us1.twilio.com 2018-05-19 14:03:14.326456+0500 AlphaChat[4950:2070595] TRACE:TwilioVideo:[Core]:Perform SipTU processing ... 2018-05-19 14:03:14.329072+0500 AlphaChat[4950:2070595] TRACE:TwilioVideo:[Core]:Queue requests at transport level ... 2018-05-19 14:03:14.329127+0500 AlphaChat[4950:2070595] TRACE:TwilioVideo:[Core]:Select for 29307 ms. 2018-05-19 14:03:14.331096+0500 AlphaChat[4950:2070595] TRACE:TwilioVideo:[Core]:Process outstanding I/O ... 2018-05-19 14:03:14.331617+0500 AlphaChat[4950:2070595] TRACE:TwilioVideo:[Core]:Perform SipTU processing ... 2018-05-19 14:03:14.331665+0500 AlphaChat[4950:2070595] TRACE:TwilioVideo:[Core]:Queue requests at transport level ... 2018-05-19 14:03:14.331705+0500 AlphaChat[4950:2070595] TRACE:TwilioVideo:[Core]:Select for 29304 ms. 2018-05-19 14:03:14.536825+0500 AlphaChat[4950:2070576] TRACE:TwilioVideo:[Core]:Response: OK, code: 200 2018-05-19 14:03:14.537390+0500 AlphaChat[4950:2070576] DEBUG:TwilioVideo:[Core]:Parsing 'video' endpoint config: {"video":{"network_traversal_service":{"ttl":3600,"date_created":"Sat, 19 May 2018 09:03:14 +0000","date_updated":"Sat, 19 May 2018 09:03:14 +0000","ice_servers":[{"username":"fe59516106b7f165126a3983f0003ff969d39b57ba15f089d2a0185da42b4398","credential":"7eOAWbb3DCH+7MgrvV152sF5cVkjlr3NlBjCGPGeSlM=","urls":"turn:global.turn.twilio.com:3478?transport=udp"},{"username":"fe59516106b7f165126a3983f0003ff969d39b57ba15f089d2a0185da42b4398","credential":"7eOAWbb3DCH+7MgrvV152sF5cVkjlr3NlBjCGPGeSlM=","urls":"turns:global.turn.twilio.com:443?transport=tcp"}]}}} 2018-05-19 14:03:14.537948+0500 AlphaChat[4950:2070453] TRACE:TwilioVideo:[Core]:Response: OK, code: 200 2018-05-19 14:03:14.538267+0500 AlphaChat[4950:2070453] DEBUG:TwilioVideo:[Core]:Parsing 'video' endpoint config: {"video":{"network_traversal_service":{"ttl":3600,"date_created":"Sat, 19 May 2018 09:03:14 +0000","date_updated":"Sat, 19 May 2018 09:03:14 +0000","ice_servers":[{"username":"632d272d28f135b8c96a26e886a1ce92c3c5352f9cc808f66bbb640ae1e46f0c","credential":"acW8ymCJdZi0MX6Q+Ng3ZIuZthBfCUREQv7wze3P4Fk=","urls":"turn:global.turn.twilio.com:3478?transport=udp"},{"username":"632d272d28f135b8c96a26e886a1ce92c3c5352f9cc808f66bbb640ae1e46f0c","credential":"acW8ymCJdZi0MX6Q+Ng3ZIuZthBfCUREQv7wze3P4Fk=","urls":"turns:global.turn.twilio.com:443?transport=tcp"}]}}} 2018-05-19 14:03:14.543544+0500 AlphaChat[4950:2070597] TRACE:TwilioVideo:[Core]:Process outstanding I/O ... 2018-05-19 14:03:14.545026+0500 AlphaChat[4950:2070597] TRACE:TwilioVideo:[Core]:Perform SipTU processing ... 2018-05-19 14:03:14.545098+0500 AlphaChat[4950:2070597] TRACE:TwilioVideo:[Core]:Queue requests at transport level ... 2018-05-19 14:03:14.545146+0500 AlphaChat[4950:2070597] TRACE:TwilioVideo:[Core]:Select for 29091 ms. 2018-05-19 14:03:14.545197+0500 AlphaChat[4950:2070597] TRACE:TwilioVideo:[Core]:Process outstanding I/O ... 2018-05-19 14:03:14.545238+0500 AlphaChat[4950:2070597] TRACE:TwilioVideo:[Core]:Perform SipTU processing ... 2018-05-19 14:03:14.545274+0500 AlphaChat[4950:2070597] TRACE:TwilioVideo:[Core]:Queue requests at transport level ... 2018-05-19 14:03:14.545311+0500 AlphaChat[4950:2070597] TRACE:TwilioVideo:[Core]:Select for 29091 ms. 2018-05-19 14:03:14.559584+0500 AlphaChat[4950:2070595] TRACE:TwilioVideo:[Core]:Process outstanding I/O ... 2018-05-19 14:03:14.559821+0500 AlphaChat[4950:2070595] TRACE:TwilioVideo:[Core]:Perform SipTU processing ... 2018-05-19 14:03:14.559862+0500 AlphaChat[4950:2070595] TRACE:TwilioVideo:[Core]:Queue requests at transport level ... 2018-05-19 14:03:14.559907+0500 AlphaChat[4950:2070595] TRACE:TwilioVideo:[Core]:Select for 29076 ms. 2018-05-19 14:03:14.559954+0500 AlphaChat[4950:2070595] TRACE:TwilioVideo:[Core]:Process outstanding I/O ... 2018-05-19 14:03:14.559994+0500 AlphaChat[4950:2070595] TRACE:TwilioVideo:[Core]:Perform SipTU processing ... 2018-05-19 14:03:14.560030+0500 AlphaChat[4950:2070595] TRACE:TwilioVideo:[Core]:Queue requests at transport level ... 2018-05-19 14:03:14.560068+0500 AlphaChat[4950:2070595] TRACE:TwilioVideo:[Core]:Select for 29076 ms.
I cannot share the code of the entire app but I can share for the ViewController using Twilio
`
import UIKit
import TwilioVideo
import Alamofire
class TwilioVideoViewController: UIViewController, TVICameraCapturerDelegate, TVIRoomDelegate
{
@IBOutlet var selfView: TVIVideoView!
var room: TVIRoom?
var camera: TVICameraCapturer?
var localVideoTrack: TVILocalVideoTrack?
var localAudioTrack: TVILocalAudioTrack?
var debateId:Int64?

override func viewDidLoad()
{
    super.viewDidLoad()

    self.connect()
}

override func viewDidAppear(_ animated: Bool)
{
    self.connect()
}

override func didReceiveMemoryWarning()
{
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

// MARK: - TVICameraCapturerDelegate

func cameraCapturerWasInterrupted(_ capturer: TVICameraCapturer, reason: TVICameraCapturerInterruptionReason)
{
    print("Camera capture was interrrupted: \(reason.rawValue)")
}

func cameraCapturer(_ capturer: TVICameraCapturer, didFailWithError error: Error)
{
    print("Failed to capture camera: " + error.localizedDescription)
}

func cameraCapturer(_ capturer: TVICameraCapturer, didStartWith source: TVICameraCaptureSource)
{
    print("Camera started: \(source.rawValue)")
}

// MARK: - TVIRoomDelegate

func didConnect(to room: TVIRoom)
{
    print("Did connect to room: " + room.name)
}

func room(_ room: TVIRoom, participantDidConnect participant: TVIParticipant)
{
    print("Participant Did connect to room: " + room.name)
}

func room(_ room: TVIRoom, participantDidDisconnect participant: TVIParticipant)
{
    print("Disconnected from room: " + room.name)
}

func room(_ room: TVIRoom, didDisconnectWithError error: Error?)
{
    print("Did disconnect from room: " + room.name)
}

func room(_ room: TVIRoom, didFailToConnectWithError error: Error)
{
    print("Failed to connect to room: " + room.name + ", error: " + error.localizedDescription)
}

func roomDidStartRecording(_ room: TVIRoom)
{
    print("Room: " + room.name + " started recording")
}

func roomDidStopRecording(_ room: TVIRoom)
{
    print("Room: " + room.name + " stopped recording")
}

// MARK: - Private
func startPreview()
{
    // Preview our local camera track in the local video preview view.
    camera = TVICameraCapturer(source: .frontCamera, delegate: self)
    localVideoTrack = TVILocalVideoTrack.init(capturer: camera!, enabled: true, constraints: nil)

    if (localVideoTrack == nil)
    {
        print("Failed to create video track")
    }
    else
    {
        // Add renderer to video track for local preview
        localVideoTrack!.addRenderer(self.selfView)

        print("Video track created")

        // We will flip camera on tap.
        let tap = UITapGestureRecognizer(target: self, action: #selector(TwilioVideoViewController.flipCamera))
        self.selfView.addGestureRecognizer(tap)
    }
}

@objc func flipCamera()
{
    if (self.camera?.source == .frontCamera)
    {
        self.camera?.selectSource(.backCameraWide)
    }
    else
    {
        self.camera?.selectSource(.frontCamera)
    }
}

func connect()
{
    TwilioVideo.setLogLevel(.all)
    AlertHelper.showLoadingAlert(WithTitle: "Please wait", OnView: self.view, Animated: true)

    // Prepare local media which we will share with Room Participants.
    self.prepareLocalMedia()

    let requestData = ["debateId": self.debateId!]

    Alamofire.request(APIRouter.getRoomForDebate(requestData))
        .responseJSON(completionHandler: {
            [unowned self]
            response in

            AlertHelper.hideLoadingView(ForView: self.view, Animated: true)
            guard response.result.error == nil else
            {
                AlertHelper.showErrorAlert(WithTitle: "Error", Message: "Could not start debate", Sender: self)
                print(response.result.error!)
                return
            }
            if let responseData = response.result.value as? [String: Any]
            {
                if let isSucess = responseData["IsSuccess"] as? Bool
                {
                    if (isSucess == true)
                    {
                        if let responseDict = responseData["ResponseData"] as? [String: Any]
                        {
                            let accessToken = responseDict["accessToken"] as! String

                            let connectOptions = TVIConnectOptions.init(token: accessToken)
                            {
                                (builder) in

                                // Use the local media that we prepared earlier.
                                builder.audioTracks = self.localAudioTrack != nil ? [self.localAudioTrack!] : [TVILocalAudioTrack]()
                                builder.videoTracks = self.localVideoTrack != nil ? [self.localVideoTrack!] : [TVILocalVideoTrack]()

                                let roomName = responseDict["roomName"] as! String
                                builder.roomName = roomName
                            }

                            let room1 = TwilioVideo.connect(with: connectOptions, delegate: self)
                            print("Attempting to connect to room")
                        }
                        else
                        {
                            AlertHelper.showErrorAlert(WithTitle: "Error", Message: "Could not get debate info", Sender: self)
                        }
                    }
                    else
                    {
                        AlertHelper.showErrorAlert(WithTitle: "Error", Message: "Could not start debate", Sender: self)
                        print("getRoomForDebate: Is Success is False")
                        if let message = responseData["Message"] as? String
                        {
                            print("Error: " + message)
                        }
                        return
                    }
                }
                else
                {
                    AlertHelper.showErrorAlert(WithTitle: "Error", Message: "Could not start debate", Sender: self)
                    print("getRoomForDebate: error getting starting debate")
                }
            }
            else
            {
                AlertHelper.showErrorAlert(WithTitle: "Error", Message: "Could not start debate", Sender: self)
                print("getRoomForDebate: Failed to start debate")
            }
        })
}

func prepareLocalMedia()
{
    // Create an audio track.
    if (localAudioTrack == nil)
    {
        localAudioTrack = TVILocalAudioTrack.init(options: nil, enabled: true)

        if (localAudioTrack == nil)
        {
            print("Failed to create audio track")
        }
    }
    // Create a video track which captures from the camera.
    if (localVideoTrack == nil)
    {
        self.startPreview()
    }
}

}
`
Here I fetch the access token and room name from my Web API. When I substituted the same into the quickstart app it worked fine. So it eliminates the possibility of an incorrect access token.
Also even if I hardcode an access token created from the console in the above app, it still doesn't work.
I really appreciate your help

@shayanjalil I looked at the code, it seems you are not storing the Room returned by connect call.
let room1 = TwilioVideo.connect(with: connectOptions, delegate: self)

room1 gets deleted when the func connect() method returns. The Video SDK requires your app to hold on to the Room returned by TwilioVideo.connect() call.
Can you change the connect call to following and try again?
self.room =  TwilioVideo.connect(with: connectOptions, delegate: self)

You can disconnect and then destroy the Room. Here is an example code snippet -
func disconnect() {
    self.room.disconnect();
}

And you can delete the room in the delegate methods -
    func room(_ room: TVIRoom, didDisconnectWithError error: Error?)
    {
        print("Did disconnect from room: " + room.name)
        self.room = nil
    }

    func room(_ room: TVIRoom, didFailToConnectWithError error: Error)
    {
        print("Failed to connect to room: " + room.name + ", error: " + error.localizedDescription)
        self.room = nil
    }

Let me know if you have any questions.

@piyushtank Yes!! That was it. Thankyou so much for your help. I greatly appreaciate it.
Keep up the good work


Help

I'm pretty new at modding.  But every time I load up the game I always get this error  called "Assertion Failed."  With an expression: "countMatches." Any solution?

I'm pretty new at modding. But every time I load up the game I always get this error called "Assertion Failed." With an expression: "countMatches." Any solution?

Perhaps you should buy the game beforehand 💖

Eh, never mind.  I was able to fix the issue on my own, and no I did not pirate the game or get it on game pass.

Eh, never mind. I was able to fix the issue on my own, and no I did not pirate the game or get it on game pass.

Hey, can ya tell me how were you able to fix this issue?

Yeah, sorry for the late response.  But my fix does not work anymore. I suggest you take SutandoTsukai’s advice and just get the game on steam…


zoomAndPan functionality

I could not figure out how to zoom and pan the video when I set zoomAndPan to true.  I tried enabling it in the Chewie Demo, but I did not observe any change in behavior.  My assumption was that once zoomAndPan is specified as true that I'd be able to do a two finger pinch or expand gesture to zoom in and out of the video.  However, that did not work for me on either Android or iOS.  If this is actually working, maybe the documentation needs to be updated to explain how it functions.

Same issue for me. I enabled zoomAndPan property but I'm not able to zoom with double tap or pan.
I tried set maxScale and transformationController but it did not help.

Hi,
I found  zoomAndPan: true does not work
Any update on this?
Thank you,


Position after hide - show

Attach mg-badge to an element that is shown by default. Hide it and show it again and the badge stays with the style below.
position: absolute;
display: initial;
left: -10px;
top: -10px;
Look at the image.

Fix in commit 8d976d0645ded0d418e001beca03256edf3f18a9


Energy Button

Added a animated button

Please read the Readme.md
You missed the part where you have to add your username in the Data.js file.


Using Jukebox in another library as avaudioplayer ?!

Hello,
First thanks for great player .
I'd like to use iOS Animated Waveform Library  with jukebox.
It is initialized with avaudioplayer item , so when I use
waveform.start(&jukebox.player)
it gives an error 'player is inaccessible due to internal protection level'
Thanks
UPDATE : I've managed to access the library files, but the problem now is
Cannot convert value of type AVPlayer into AVAudioPlayer

waveform.start: method expects AVAudioPlayer as its param, while the property JukeBox.player is AVPlayer!!
Customize the WavformView.swift class to make it use AVPlayer, instead of AVAudioPlayer.
Or you can use following codes to serve your purpose:
https://github.com/jameswomack/Ominus
https://github.com/rFlex/SCWaveformView

I can not customize the wavformview.swift
Also, libraries you linked are for Obj-c and gives waves for full audio length not animating for current audio strength .


Support transports other than HTTP(S)

This implements a solution for the issue #7789.
What I did was the second idea I proposed, where basically we create an intermediary method setup (which I referred to as register in the issue) to actually register the Channel blueprint to the app. (I give my reasons for it below, but, please, bring it up if you feel like another approach would be better)
What that allows us to do is basically access both the Sanic app and the on_new_message callback, which makes it possible for us to register a listener on the app and use the on_new_message only when it is ready.
Suppose we have an InputChannel that is supposed to receive it's messages using AMQP:
class AmqpInput(InputChannel):
    # ...

    # override setup
    def setup(self, on_new_message, app, options):
        # we may still register the blueprint for health-check, etc
        super().setup(on_new_message, app, options)

        # defer actual setup for when the server has started
        app.register_listener(
            # when this lambda executes, we may be sure on_new_message is ready to be called
            # so we may start consuming immediately
            lambda _, loop: self._setup_connection(on_new_message, loop),
            "after_server_start",
        )

Also, I created a class (that could very well be a dataclass) to hold extra options, just in case we need to add more. Then we may do it in a backwards-compatible way.

The reasons why I chose this approach over the other one (creating a on_agent_ready method to run specifically when the server has started) are:

It just seems much easier to implement
I imagine it will be easier to use this solution to solve #7525 (more below)
Basically, compared to the other approach, this seems more future-proof, in the sense that it gives more power to the end-user to do what they want.

Regarding the issue #7525 (and PR #7526), the improvement I imagine this would enable would be to do something like:
class SlackInput(InputChannel):
    # ...

    # override setup
    def setup(self, on_new_message, app, options):
        # do not register the blueprint at first

        # by deferring the setup to just before the server starts, we are able to get access to the event loop
        app.register_listener(
            # then we may give the would-be-blueprint method access to it
            lambda _, loop: self.blueprint_with_loop(on_new_message, loop),
            "before_server_start",
        )

    def blueprint_with_loop(on_new_message, loop):
        # ...

        loop.create_task(on_new_message(user_msg))

Questions

Are there any tests I need to change / add? From what I looked, the tests/core/test_channels.py,  tests/core/test_run.py and the ones in tests/core/channels passed. Does that mean it's ok?

Status:

[ ] added some tests for the functionality
[ ] updated the documentation
[ ] updated the changelog (please check changelog for instructions)
[ ] reformat files using black (please check Readme for instructions)

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Thanks for submitting a pull request 🚀 @alopez will take a look at it as soon as possible ✨

I'm working on another approach at #8031, I suppose only one of the pull requests should be accepted.


jbang.home folder seems to be ignore

Although I have defined jbang.home in workspace settings, the command Synchronize JBang and seems to ignore the path:

It's a known limitation ;-)

jbang.home: Specifies the folder path to the JBang directory (not the executable), eg. ~/.sdkman/candidates/jbang/current. On Windows, backslashes must be escaped, eg C:\ProgramData\chocolatey\lib\jbang. Used by the JBang: Create a new script wizard and the Run JBang code lens. Useful in case jbang is not automatically picked up from the $PATH, for some reason.

Now for the reason why it's not used by the backend: JBang support acts as a JDT.LS extension, it's not a self-contained LS in itself. Hence, only preferences starting with java. are sent to the JDT>LS, and can be used by the JBang-eclipse backend.
So either we rename jbang.home to java.jbang.home, which is a bit awkward, from a UX standpoint, or we send the jbang.home value via a custom command to the backend, but that won't work until after project import.

It's a known limitation ;-)

jbang.home: Specifies the folder path to the JBang directory (not the executable), eg. ~/.sdkman/candidates/jbang/current. On Windows, backslashes must be escaped, eg C:\ProgramData\chocolatey\lib\jbang. Used by the JBang: Create a new script wizard and the Run JBang code lens. Useful in case jbang is not automatically picked up from the $PATH, for some reason.

Now for the reason why it's not used by the backend: JBang support acts as a JDT.LS extension, it's not a self-contained LS in itself. Hence, only preferences starting with java. are sent to JDT.LS, and can be used by the JBang-eclipse backend. So either we rename jbang.home to java.jbang.home, which is a bit awkward, from a UX standpoint, or we send the jbang.home value via a custom command to the backend, but that won't work until after project import.

Which would be fine in this case as Synchronize JBang is related to a project. But I don't know if there are other commands performed by JDT.LS that are not project related and that requires jbang.home

project import (and the JBang builder subsequently) runs jbang info tools, so it would need to get the proper setting 1st.


Remove secret location from report when scanning confluence

The Location is the secret.StartColumn and secret.EndColumn, so it is related to the secret and not to Confluence.
But I agree, it gives no value.
I suggest changing it to the secret.StartLine.

Hi Baruch,
This is indeed the location of the secret within the content it scanned, which in our case is confluence. The point was not to remove from the report message altogether because it will be useful for a folder or file scan. The point was to remove the location from the report if the scanned plugin was confluence because in a web page that has no lines the location is useless.
Mónica Casanova
Software Developer, Checkmarxhttps://checkmarx.com/
M +351tel:+16504309607 914147368
<EMAIL_ADDRESS>| www.checkmarx.comhttp://www.checkmarx.com/
[signature_275598028]
From: Baruch Odem (Rothkoff) @.>
Sent: Monday, May 1, 2023 2:16 PM
To: Checkmarx/2ms @.>
Cc: Monica Casanova @.>; Assign @.>
Subject: Re: [Checkmarx/2ms] Remove secret location from report when scanning confluence (Issue #33)
The Location is the secret.StartColumn and secret.EndColumn, so it is related to the secret and not to Confluence.
But I agree, it gives no value.
I suggest changing it to the secret.StartLine.
—
Reply to this email directly, view it on GitHubhttps://github.com/Checkmarx/2ms/issues/33#issuecomment-1529701820, or unsubscribehttps://github.com/notifications/unsubscribe-auth/A2CIRWAS74ZC6LKGSLRRNKLXD6ZQZANCNFSM6AAAAAAWOYUPUI.
You are receiving this because you were assigned.Message ID: @.***>

@cx-monicac Sorry, for now, I removed the Location (#58), since it is not relevant for both Confluence and Discord.
We need to think about how to control the visibility of the location field, since when we calculate it, we are not in the context of any plugin, but in the context of the secrets, which is implemented generically for all the plugins.

Yes, I agree, thanks!
Mónica Casanova
Software Developer, Checkmarxhttps://checkmarx.com/
M +351tel:+16504309607 914147368
<EMAIL_ADDRESS>| www.checkmarx.comhttp://www.checkmarx.com/
[signature_275598028]
From: Baruch Odem (Rothkoff) @.>
Sent: Tuesday, May 2, 2023 10:41 AM
To: Checkmarx/2ms @.>
Cc: Monica Casanova @.>; Mention @.>
Subject: Re: [Checkmarx/2ms] Remove secret location from report when scanning confluence (Issue #33)
@cx-monicachttps://github.com/cx-monicac Sorry, for now, I removed the Location (#58https://github.com/Checkmarx/2ms/pull/58), since it is not relevant for both Confluence and Discord.
We need to think about how to control the visibility of the location field, since when we calculate it, we are not in the context of any plugin, but in the context of the secrets, which is implemented generically for all the plugins.
—
Reply to this email directly, view it on GitHubhttps://github.com/Checkmarx/2ms/issues/33#issuecomment-1531177078, or unsubscribehttps://github.com/notifications/unsubscribe-auth/A2CIRWAWAYF7NNCSR3NJDELXEDJDBANCNFSM6AAAAAAWOYUPUI.
You are receiving this because you were mentioned.Message ID: @.***>


Koopa shells do not collide with the cannonball base

I was recently playing this great game after a long time and noticed that the koopa shells don't collide with the cannonball base.

There are countless little collision oddities like that; I don't think they're really worth pursuing

There are countless little collision oddities like that; I don't think they're really worth pursuing

Hi WilliamFr0g I've actually been trying to fix this on my own and I've temporarily fixed it by modifying "koopa:hitenemy and koopa:hitwall" adding (a ~= "cannonballcannon") I've fixed some other things that might be insignificant but since I'm not very familiar with github I don't know how to post them.


New Version is totally broken

IDE build number:
Java version:
OS name and version:

Issue description. In most cases need provide reproduce example.
Please read contributing guide first. Please read and remove this part before issue submit
If you can't determine with issue - use our forum (https://discuss.consulo.io/)

Hi. It contains new fix for update. Re-download is required. Sorry.

First was requesting pluggings update and then can't start.

Yeh - crashed. I think it's last problem with auto-update on macOS. I am trying to stabilize auto-update on macOS (in prev issue I wrote it)

what should I do. Night build?

One moment.

Need sometime when all builds pushed to release channel. I will write when it's done. Around ten minutes

It's finished. Please download Consulo build 1667. Tested it works. It not create post on https://discuss.consulo.io (not spam issue tracker)


Refactors to bundle outdated

What was the end-user problem that led to this PR?
Code in bundle outdated code be simpler and more readable.
What is your fix for the problem, implemented in this PR?
My fix is to refactor the command.

I closed the PR https://github.com/bundler/bundler/pull/7116 and I committed separately to follow better the changes.

Hei @ryanfox1985, thanks! Are you planning to follow up with more PRs?
I'm really happy that you want to get involved, but I think I would prefer that you focus on fixing existing issues, instead of just making the code more readable. Making the code more readable is great but it takes time to review and there's always the risk of introducing regressions, so we need to be very careful.

I see, I just want to make clean my old contribution https://github.com/bundler/bundler/pull/5114

Aha, I understand, I didn't know this was coming from a previous contribution :+1:.

@deivid-rodriguez I did your requested changes.

I rebased this PR and tried to minimize the set of changes being made, and clarify the history of commits. This should be ready now.

LGTM

This is a unlikely to cause important problems, and I want to have a look at other PRs improving bundle outdated so I plan to merge it in a few days.
Reviews appreciated!

@bundlerbot r+


Build failed on Android

Hello guys,
I'm having an issue with this component
`:app:transformClassesWithJarMergingForDebug FAILED
FAILURE: Build failed with an exception.

What went wrong:
Execution failed for task ':app:transformClassesWithJarMergingForDebug'.

com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: com/google/android/gms/iid/zzc.class`

If I comment this component it builds fine, but once I use it, I get the above error.
Can anyone help me find the solution for this?

You have conflicting version of play services with your packages
Happens when you have multiple depedencies... You can fix it like that
compile (project(':react-native-device-info')){
exclude group: "com.google.android.gms"
}
compile (project(':react-native-maps')) {
exclude group: "com.google.android.gms"
}
compile(project(":react-native-google-signin")){
exclude group: "com.google.android.gms"
}
compile 'com.google.android.gms:play-services-base:11.4.2'
compile 'com.google.android.gms:play-services-maps:11.4.2'
compile 'com.google.android.gms:play-services-gcm:11.4.2'
compile 'com.google.android.gms:play-services-auth:11.4.2'

For future references, using FCM:
    compile (project(':react-native-notifications')) {
      exclude group: 'com.google.android.gms';
    }
    compile "com.google.firebase:firebase-messaging:11.8.0"

@d4vidi Close this plz...

I am running into this issue with installing version 1.3.0 but using the exclude group does not work for me.


Move all existing machine-controller CI jobs to prow

Currently the machine-controllers CI jobs mostly run in circleci. This has the drawback that its not properly integrated into drawback and with regards to the end to end test does not allow us to test external PRs for security reasons.
Acceptance criteria:

All machine-controller CI jobs are executed by Prow

Closing as this is now done, yay!


Issue with Not Equal node in 5.1

I'm putting this issue here because Epic Games decided to age restrict the Reviews and Questions in the Marketplace for some reason.
Anyway, here's the issue, in Unreal 5.1, if I spawn a generic Not Equal node and connect something to it, it converts it into a the Pulldown Builder's Not Equal node, resulting in the code basically breaking. This is more of just a minor inconvenience since I can just use an equal node and flip the result but It's still pretty annoying.
Video:
https://user-images.githubusercontent.com/67089499/209453194-57d7ef08-c53f-4811-986c-bddbf308d81f.mp4

I apologize for the delay.
I have fixed the problem with the not equal node that you reported to me in the update of version 1.9.
I will notify you on the Marketplace Questions side when the Marketplace update is finished.


Desync possibly caused by external application on host machine

Product and Version: VSCode
OS Version: Windows 10
Live Share Extension Version: v1.0.2740
Target Platform or Language: Octave/Matlab
What were you doing when you encountered the desync?
Adding/changing lines remotely. We were also using Octave to run the code which saves its open file buffer. I'm betting that is what caused the desync.
How often have you encountered desyncs?
First time. But this is the first time we've tried using Live Share.
See a screenshot taken on guest computer (right) that also had VNC based remote desktop open to host computer (left). Cursors and lines are way out of sync. Host's view reflects reality of the filesystem and what Octave is running. Remote guest's view is wrong.

Thank you for your detailed bug report @cinderblock! We're digging into the desync issue currently. Did this desync persist the entire session or did it ever catch up?

@fubaduba it never caught up. I bailed on the live session and went to work on other things. We have yet to try again.

Please let us know if you're consistently seeing this issue. Also we have some support for automatically detecting when this happens that you can enable with the liveshare.diagnosticMode setting in VS Code.

This was from a ~40 minute session. They were desynced for I wanna say ~5 min before I realized why the output was not matching what I was saving and used other methods to diagnose. Unfortunately, we have not had a chance to try again.

Thanks for the info! When you do try again, it'd be great if you could turn on that setting. It'll catch this situation almost as soon as it happens and alert you to it, and hopefully provide some info for us about why you got out of sync.

Closing this to track over at #4255. Please join the conversation there. Thanks!


bug: No view transitions when going to/from tabs

Type: bug
Platform: all
Codepen http://codepen.io/mhartington/pen/zxdGKd
If you navigate to and from tabs, there are no view transitions.
Also, the back button will not show either.

I think this Codepen describes the issue a bit better: http://codepen.io/squrler/pen/xbLbgV

I'm seeing the same issue. My issue is the same as the exmaple in  @CoenWarmer codepen. Specifically the example of "non nested views".
Off the top of my head I would think it has something to do with navigating to an "abstract" state since you are technically going to one of its children (aka the first tab).

An abstract state can have child states but can not get activated itself. An 'abstract' state is simply a state that can't be transitioned to. It is activated implicitly when one of its descendants are activated.
--  Ui-Router Documentation
https://github.com/angular-ui/ui-router/wiki/Nested-States-%26-Nested-Views

This used to work in all Ionic versions before beta 14, so in a way it's actually a regression which makes updating our apps especially difficult.

Funny, just realized I noted this over a year ago: https://github.com/driftyco/ionic/issues/437

An abstract state isn't a view, but a container of views. Let's say you had 3 tabs, and you go to tab 1 page 1, then tab 1 page 2, then to tab 2 page 1. At tab 2 page 1 you should not have a back button because you switch histories to another tab. This is by design, and exactly how native apps works. If that back button did exist between tabs then it wouldn't know which "back" you mean. Should it go back a page in the same history? Or should it go back to another history?? Again, this is following native's design because there are multiple histories, not a linear one like a standard browser has.
As for the view transition, that too follow's native's default design pattern. However, I'm planning on making it easier to give it a transition if you want.

The back button not appearing is less of a problem, since there are a couple of different ways to influence that when you really need one.
I'm just really looking for animations between states that may or may not have tabs. If it's easier to only enable that when the state with tabs only uses non-abstract states, that's great. Basically how it used to work in beta 13 :)

Possible duplicate: https://github.com/driftyco/ionic/issues/3135

It would be so, so nice if we could get some traction on this..... It's the one thing that's keeping three of our apps to be upgraded to beta 14... Pretty please? :)

Adding the possibility to animate transitions between tabs would, indeed, be great. That, and the ability to swipe between tabs.

@beauby you misunderstand: this issue is to describe the behavior where state 1 does not contain tabs, and state 2 does contain tabs. If you navigate from state 1 to state 2, in beta 14 there is no transition animation. You immediately are dumped to state 2.
This issue is not about having an animation between tabs on one state. That is not something that native UI frameworks use as default and so not something I expect ionic to support out of the box.

@beauby , @adamdbradley here is a very simple codepen demonstrating what @CoenWarmer is talking about. Like @CoenWarmer , I understand that there is no transition animation between tabs makes sense. An abstract state and his childs should be seen as one.
http://codepen.io/anon/pen/Qwzama
When navigating from HOME to OTHER-PAGE animation and back-button appears, but when navigating from OTHER-PAGE to TABS the animation and back-button is lost.

Still an issue in the nightly... (rc1 >)

@adamdbradley  I do not have a full native app dev experience. But from years' experience of using native app, it tells that going from state 'tabs.home' to state 'login' does give users a back button.
Just wonder if this bug is ignored due to some misunderstanding.

same issue as above...
@beauby , @adamdbradley here is a very simple codepen demonstrating what @CoenWarmer is talking about. Like @CoenWarmer , I understand that there is no transition animation between tabs makes sense. An abstract state and his childs should be seen as one.
But if you transition from "STATE1"to another "STATE_WITH_TABS" ,it should have 'navigation' and in his tabs the back button should go back to "STATE1".
http://codepen.io/anon/pen/Qwzama
When navigating from HOME to OTHER-PAGE animation and back-button appears, but when navigating from OTHER-PAGE to TABS the animation and back-button is lost.

I should add, the issue I'm referring to is the 'back-button is lost'

+1
'back-button is lost
Yes, I've seen that I was really confused why is this happening.
Here is the example I used as a base in my project: http://codepen.io/gnomeontherun/pen/tbvdH?editors=101

When I click on a tab - no back button.
When I click on a link on the page - there is back button.
When I click on a item in the side menu - no back button.

Short video: http://screencast.com/t/0gsoogJf

@sgentile that is exactly the same issue I'm facing right now!
+1

I'm having a very similar problem, but not sure if it's the same as others.
I have two main states: 1) Tabs 2) options
All I want to be able to do is navigate from the Tabs state to the options state WITH an animation, but for the life of me I cannot force one. I can manually add the back button to the options page, but again, I'm missing all of the animations.
I also do not want to implement a "Hamburger" menu, but I guess I will if I have to. I think that navigating away from a tabbed interface and being able to go back is completely acceptable for UX. However, I agree that it's a bit odd to navigate TO a tabbed interface and have a back button included.

+1

+1

It seems theres a lot of issues in this issue (lost back button, no transitions when going to tabs view and no transition when through tabs)
What annoys me right now is the lack of transitions between tabs.
So +1 here

In my case it's really an issue :

I have two tabs, which display a list of images
When tapping on an image I change state, get out of the tabs to display the page dedicated to this image (comments, like, etc...)

No back button, no animation !
Here is a codepen very little modified from the original "tabs and navigation" : http://codepen.io/JerryBels/pen/qdOqMb

+1

+1

+1 I think this issue has soo many different names / threads both here on github and ionic forum :( I hope this gets solved soon :(

This issue will be address post 1.0.
Right now, this is a limitation of ui-router and we will be addressing this.

Ah, I suspected there was some deeper reason why this was not possible. thanks @mhartington for clearing that up!

@mhartington thanks, I hope we'll see a solution soon enough !

+1

I have created a pull request but it failed on tests... It seems like that's "by design". Should I modify the tests?

Referencing this issue in the forum : http://forum.ionicframework.com/t/back-button-with-nested-states/16017
Looks to me the same topic.

+1 same

@JerryBels +1 same here!
Is it possible to control the history navigation and transitions by ourselves? optionally?

+1
I'm especially interested in the transition, rather than the history.

is there a workaround solution?

Regarding transitions between a non-tabs view and a tabs view, in the current architecture this is challenge due to how the tabs are nested, and a tab is nested inside of tabs. A lot of the limitations are due to how the leaving view is the container for the entering view. The core structure to how transitions and animations works will updated in Ionic 2.0 to allow for any transition between any view. I'm going to change this milestone to 2.0.

@adamdbradley thanks for passing by to keep us updated. I understand very well what you say, and that you don't want to work on something that will be solved with a future version. But, if I'm not wrong, Ionic 2.0 will be based on Angular 2.0, right ? There is two big problems for us with that, then :

Migrating to Angular 2.0 from a current Angular app is already known to be something that will be very hard, if even possible.
It's not even close to release, let alone ready for production use... And we're speaking of production apps that currently lack the beauty and smoothness of native. At least I know that if no decent workaround is given here, I will have to look for a custom hacky solution.

Anyway, thanks again for your work for us :)

Aha, that makes a lot of sense. I myself was thinking of the following approach:

create screenshot of current view that is going to be removed.
overlay the screenshot on top of all views (is this possible? maybe outside angular/ionic?)
animate the screenshot out when the next view (in this case the tabbed view) has loaded.

This maybe goes against standard conventions of using css / svg for animations, but it has solved
animation problems in the past for me with other frameworks and non-mobile applications...
I might be able to work on this next weekend!

@michahell if you really do find a solution, please share it with us ? :)

@JerryBels of course! I'll know this weekend ;)

+1

+1

+1 If I go from a simple no-tabs state to a tabs state the default tab view should show a back link to the previous state. Otherwise without giving a custom button within tabs view there is no way back for the ios user at least.

Is there a way to hide the tabs bar manually? Just like this demo: http://codepen.io/ionic/pen/mHtlC

@zero7u Add class="tabs-item-hide" to <ion-tabs>.

@beauby Thanks!
Base on this idea, I made a solution for my app, say something about it, please!
http://codepen.io/zero7u/pen/qdXZVW

I haven't been able to spend time on my ionic project this weekend unfortunately, but what @zero7u made looks pretty good actually!

I'm having the same problem, but in the opposite direction. I have 2 states:

State 1: 3 tabs and a button on the top header to State 2;
State 2: a simple list.
There is no back button when I navigate from State 1 to State 2.

I was thinking to save the current link when I press the button and send this information to State 2, and in State 2 use this link to set the back button. Is that a valid work around or is there any easiest way?

+1

+1

+1

I was able to do a workaround for this using the CSS Animate library, and some SASS.
Going from A Single Page View to a Tab Container View, the slide transition seems to work fine if you add ' nav-direction="back" ' on the back button in the Single Page View.
However, going from a Tab Container to a Single Page View seems to skip the sliding animation altogether.
So I included 'animate.css' in the index.html and using a bit of css hacks I am able to have a nice slide from the tabs into the Single Page View. I'm using SASS btw, and a fairly simple view setup. Notice that I'm using the 'slideOutLeft' animation to hide it.
//ADD THIS TO YOUR SCSS file
//This first part makes sure the page slides
ion-view.main-container.pane {
    opacity:1!important;
    &[nav-view="cached"] {
        @include animation(slideOutLeft 400ms ease);
        display:block!important;
    }
    //This second part makes sure that the header slides too
    .a-tab-view-class.pane ion-nav-bar.hide {
        display:block!important;
    }
}

In the Tab View (that exists inside the tab container view), make sure you have a class (ie. 'a-tab-view-class') on the ion-view tag. And also make sure that you copy over the  tag from the main index page, otherwise, you can't target the ion-nav-bar properly.
Like so:
<ion-view title="Your App Name" class="a-tab-view-class">

    <ion-nav-bar class="bar-positive">
        <ion-nav-buttons side="secondary">
            <button class="button icon ion-plus" ng-click="goSinglePage()">
            </button>
        </ion-nav-buttons>
    </ion-nav-bar>

   <ion-content>...</ion-content>
</ion-view>

@jason-engage thanks for your help, but you state that
Going back from A Single Page View to a Tab Container View, the slide transition seems to work fine if you add ' nav-direction="back" ' on the back button in the Single Page View

For me, and as I understand here I'm far from being the only one, the said single page doesn't have a back button at all - it's not on the same nav stack. So your method can help provide the transition to the single page (I haven't tested it), but can't resolve the whole issue we're facing here.
Thanks anyway for sharing the possibility to use animate.css on ion-views !

Yes to JerryBels - this is the issue

@michahell did you have time to work on a solution ? Since you said yo uwere going to look for one... What @zero7u  did is great, but there is a huge limitation to it : you have to set the state of your single page in the same ion-nav-view that the wanted tab is in - this isn't possible to use in a real life, complex application like the one I'm working on.
For exemple, I need to be able to reach an image from the tabbed view, but that image can be reached also from other places - forcing me to define multiple states for each view. Same goes with user profile, for the user that uploaded the image, or in a chatlist, or simply the userslist... I need to define a state for each of them, withresolve conditions, etc... It's very complicated and not really worth it.
We need a complete, working solution, and since @adamdbradley said they were not planning to do anything about it, we're a little on our own here !

@JerryBels If you're trying to force transitions between tabbed views, then I have to agree with the ionic team that this is not a standard design pattern you see on any major apps. I think some people like me would like to see transitions between tabbed and single view, which seems to be a bug in ionic from my view.
But I'm pretty sure you could achieve tabbed-view transition effects with Animate.css and targeting the right tag attributes as they are added/removed during view changes. I don't think you can do it using ionicHistory or ionicConfig out of the box.

@JerryBels Actually there is a simple way of getting transitions between tabs but you can't use the ion-tabs directive. You have to create your tab container using regular html and ionic css like so:
<ion-view class="tabs-container">

    <ion-nav-view name="tabview"></ion-nav-view>

             Tab1

             Tab2

             Tab3 {{settings.numberOfBadges}}

             Tab4

</ion-view>

In your goTabX() functions, you'll need to add this code before changing the state:
$ionicConfig.views.transition('platform');
$state.go('tabview.tabX')

This works differently than the ion-tab directive which loads each tab view in separate views. Instead this way, you load each tab in the same view using the correct $states in $stateProvider.
You'll also need to keep track of which tab is active, and how many badges each one might have. I supplied some sample code for that.
I didn't provide all the code you need, but if you really need to get it working I can help you out further using this method.

@jason-engage you are really, really kind to help like that, thank you.
But I'm afraid you really have it wrong : I don't want to induce a transition between tabs, I do want to do the exact same as you : going from a Single Page to a Tabbed Page, and from a Tabbed Page to a Single Page, with transitions and back buttons. In both cases, I (and others) don't have any transition (which can be fixed with a method like the one you used) nor back button (which is considerably more of an issue).
I also thought about using regular elements with classes instead of the directives, I will give it a shot today or tomorrow and update you guys.

Okay, so, I had success implementing tabs with transitions and back buttons by getting rid of tabs directives and using instead my own states with tabs CSS only, like Jason shown above. ATM, and until tabs are production ready (cleaned from this huge bug, then) it's your best bet.

STUPID design: each tab has its own navi history.  No one want this feature, just give me ONE navi history for my app, is it HARD?

This is main reason i switch ionic to onsenui.
After months, today i check it.

If you struggle with ionic tabs navigation, just try "onsenui" tabs, simple and clean.
I have no idea why ionic team make a normal "tabs" component so complicated !!! why the tabs jump into pages navigation? Tabs just only works inside one page, that's all !!!
Does the ionic team ever read Android and IOS doc? Does the native tabs override the APP pages navigation ???

Hi everyone,
Following up on what @adamdbradley previously said, there are some very challenging limitations with ui-router and navigation/transitions in Ionic v1.  We're really sorry about that.  Many of these issues will be resolved by the improved navigation architecture in V2.  We won't be able to fix this in V1 unless we do significant refactoring.  If this is something the community really wants, we could reconsider.
Thanks,
Dan