ringcentral / ringcentral-web-phone

RingCentral WebPhone Library for JavaScript WebRTC
https://ringcentral.github.io/ringcentral-web-phone
111 stars 76 forks source link

Cannot read properties of undefined (reading '0') #401

Open plysystems opened 3 weeks ago

plysystems commented 3 weeks ago

I get the error message “TypeError: Cannot read properties of undefined (reading ‘0’)” all the time and can't find my error. Please help. Thank you.

return platform.post('/restapi/v1.0/client-info/sip-provision', {
    sipInfo: [{ transport: 'WSS' }],
});
})
.then(function (res) {
    return res.json(); // JSON-Daten auflösen
})
.then(function (sipData) {
console.log('SIP-Info (vollständig):', sipData);  // Ausgabe der gesamten SIP-Daten

// Überprüfen, ob sipInfo vorhanden und nicht leer ist
if (sipData && sipData.sipInfo && sipData.sipInfo.length > 0) {
    var sipInfo = sipData.sipInfo[0];  // Greife auf das erste Element des sipInfo-Arrays zu
    console.log('SIP-Info (ausgewählt):', sipInfo);  // Logge das verwendete Element
    console.log('Endpoint ID:', endpointId);

    // LOGGING
    console.log("transport:", sipInfo.transport,)
    console.log("username:", sipInfo.username,)
    console.log("password:", sipInfo.password,)
    console.log("authorizationTypes:", sipInfo.authorizationTypes,)
    console.log("authorizationId:", sipInfo.authorizationId,)
    console.log("domain:", sipInfo.domain,)
    console.log("outboundProxy:", sipInfo.outboundProxy,)
    console.log("outboundProxyBackup:", sipInfo.outboundProxyBackup,)
    console.log("stunServers:", sipInfo.stunServers,)
    //

    try {
// Initialisiere das WebPhone mit den korrekten Parametern
webPhone = new RingCentral.WebPhone({  // Verwende die äußere Variable
    transport: sipInfo.transport,
    username: sipInfo.username,
    password: sipInfo.password,
    authorizationTypes: sipInfo.authorizationTypes || [],
    authorizationId: sipInfo.authorizationId,
    domain: sipInfo.domain,
    outboundProxy: sipInfo.outboundProxy,
    outboundProxyBackup: sipInfo.outboundProxyBackup,
    stunServers: sipInfo.stunServers || [],
    clientId: clientId,
    appName: appName,
    appVersion: appVersion,
    uuid: endpointId,  // Verwende endpoint_id
    logLevel: 2,
    audioHelper: {
        enabled: true, // enables audio feedback when web phone is ringing or making a call
        incoming: 'dist/audio/incoming.ogg', // path to audio file for incoming call
        outgoing: 'dist/audio/outgoing.ogg', // path to aduotfile for outgoing call
    },
    media: { audio: true },
    enableQos: false,
});
    console.log('WebPhone erfolgreich initialisiert');
} catch (error) {
    console.error('Fehler bei der WebPhone-Initialisierung:', error);
}
tylerlong commented 2 weeks ago

Any detailed stack trace? Can you identify which variable is undefined? Did you see the console log outputs? Like this one console.log('SIP-Info (vollständig):', sipData);