React-Native-Twilio-Programmable-Voice initWithToken() and addEventListener('deviceReady') not working

TwilioVoice.initWithToken() returns that it has been initialized, but doesn’t ready the device for incoming/outgoing calls. Even when passing in a random token into TwilioVoice.initWithToken(), it still returns true.

Here’s the code I’ve been using:

import React, {Component} from 'react'; import {   SafeAreaView,   StyleSheet,   ScrollView,   View,   Text,   StatusBar,   TouchableOpacity, } from 'react-native';  import {   Header,   LearnMoreLinks,   Colors,   DebugInstructions,   ReloadInstructions, } from 'react-native/Libraries/NewAppScreen';  import TwilioVoice from 'react-native-twilio-programmable-voice';  export default class App extends Component {   state = {     twilioInited: false   };      getAuthToken = () => {     return fetch('serverurl', {        method: 'get',     })       .then(response => response.text())       .catch((error) => console.error(error));   }     getMicrophonePermission = () => {     const audioPermission = PermissionsAndroid.PERMISSIONS.RECORD_AUDIO;      return PermissionsAndroid.check(audioPermission).then(async result => {       if (!result) {         const granted = await PermissionsAndroid.request(audioPermission, {           title: 'Microphone Permission',           message: 'App needs access to you microphone ' + 'so you can talk with other users.',         });       }     });   }    initTwilio = async () => {      const token = await this.getAuthToken();     console.log ('Got auth token: ' + token);      if (Platform.OS === 'android') {       await this.getMicrophonePermission();     }      let success = await TwilioVoice.initWithToken(token);     console.log(isuccess);      TwilioVoice.addEventListener('deviceReady', () => {       this.setState({ twilioInited: true });       console.log('Device has been configured.');     });      TwilioVoice.addEventListener('deviceNotReady', () => {       console.log('Device not ready.');     });      if (Platform.OS === 'ios') { //required for ios       TwilioVoice.configureCallKit({           appName: 'callerid',       });       console.log('CallKit Configured');     }   };    makeCall = () => TwilioVoice.connect({ To: 'Alice' });    render() {     return (       <View style={styles.container}>         <TouchableOpacity onPress={() => this.initTwilio()}>           <View>               <Text>Init Twilio!!</Text>           </View>         </TouchableOpacity>         <TouchableOpacity disabled={!this.state.twilioInited} onPress={() => this.makeCall()}>           <View>             <Text style={styles.highlight}>Ready to recieve calls: ({this.state.twilioInited ? 'ready' : 'not ready'})</Text>           </View>         </TouchableOpacity>       </View>     );   } }  const styles = StyleSheet.create({   container: {     flex: 1,     justifyContent: 'center',     alignItems: 'center',     backgroundColor: '#F5FCFF',   },   highlight:{     fontWeight:'700',   } }); 

Followed all the instructions as specified in the Twilio Quickstart repositories. Using RN Version 0.63. Using RN-Twilio-Programmable-Voice version 3.0.0 Using iOS 12.4 on iPhone XR App running in foreground

Step to reproduce: Running normally

Add Comment
0 Answer(s)

Your Answer

By posting your answer, you agree to the privacy policy and terms of service.