Skip to content

execute() does not detect socket disconnection #84

@ssinyagin

Description

@ssinyagin

I'm running synchronous outbound ESL socket toward the node-esl server. If the server starts an conn.execute(xxxx) command, and the socket disconnects during the execution, the execute() never returns and hangs forever.

by looking through the sources of Connection.js, I couldn't find any handling for such event.

Here's my code:

                    function run_phrases() {
                        if( phrases.length > 0 && input === null ) {
                            let file = phrases.shift() + ext;
                            console.log(conn.cs.uuid + ' Playing ' + file);
                            try {
                                conn.execute('play_and_get_digits', '1 1 1 10 # ' + file + ' "" dialed_digits',
                                             function(ev) {
                                                 input = ev.getHeader('variable_dialed_digits');
                                                 if( input !== null ) {
                                                     console.log(conn.cs.uuid + ' User pressed ' + input);
                                                 }
                                                 run_phrases();
                                             });
                            }
                            catch (err) {
                                if( err.code != 'ERR_STREAM_DESTROYED' ) {
                                    console.error(err);
                                }
                                else {
                                    console.log(conn.cs.uuid + ' disconnected');
                                }
                                reject();
                            }
                        }
                        else {
                            resolve();
                        }
                    }
                    
                    run_phrases();

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions