diff --git a/ios/RCTTwilio/RCTTwilio.m b/ios/RCTTwilio/RCTTwilio.m
index e059fa2..222940a 100644
--- a/ios/RCTTwilio/RCTTwilio.m
+++ b/ios/RCTTwilio/RCTTwilio.m
@@ -31,7 +31,12 @@ @implementation RCTTwilio {
 }
 
 RCT_EXPORT_METHOD(initWithToken:(NSString *) token) {
-    _phone = [[TCDevice alloc] initWithCapabilityToken:token delegate:self];
+    if (_phone == nil) {
+      _phone = [[TCDevice alloc] initWithCapabilityToken:token delegate:self];
+    } else {
+      [_phone updateCapabilityToken:token];
+      [self.bridge.eventDispatcher sendAppEventWithName:@"deviceDidStartListening" body:nil];
+    }
 }
 
 RCT_EXPORT_METHOD(connect:(NSDictionary *) params) {
@@ -39,7 +44,7 @@ @implementation RCTTwilio {
 }
 
 RCT_EXPORT_METHOD(disconnect) {
-    [_connection disconnect];
+    [_phone disconnectAll];
 }
 
 RCT_EXPORT_METHOD(accept) {