.../agi-bin/user_login_out.agi on line 258

So, I had opened a bug ticket for this but my premise was all wrong so I’ve been relegated to the forums.

I’m in deviceanduser mode, and I’m getting the following error message via e-mail when I log in or out a device. I’m not sure whats causing it.

I’m running FreePBX 2.5, updated today - CentOS 5 - Asterisk 1.4.21.2. I’m testing deviceanduser mode for implementation elsewhere and would love to get it working properly for my own sanity…

Thanks in advance!

IP Address: 1.2.3.4


Context:
Array
(
    [devices] => &303
    [agi] => AGI Object
        (
            [request] => Array
                (
                    [agi_request] => user_login_out.agi
                    [agi_channel] => SIP/303-b7705d90
                    [agi_language] => en
                    [agi_type] => SIP
                    [agi_uniqueid] => 1224509244.1907
                    [agi_callerid] => 303
                    [agi_calleridname] => Polycom
                    [agi_callingpres] => 0
                    [agi_callingani2] => 0
                    [agi_callington] => 0
                    [agi_callingtns] => 0
                    [agi_dnid] => *11
                    [agi_rdnis] => unknown
                    [agi_context] => macro-user-logon
                    [agi_extension] => s
                    [agi_priority] => 15
                    [agi_enhanced] => 0.0
                    [agi_accountcode] => 
                )

            [config] => Array
                (
                    [phpagi] => Array
                        (
                            [debug] => 1
                            [error_handler] => 1
                            [admin] => [email protected]
                            [hostname] => localhost.localdomain
                            [tempdir] => /var/spool/asterisk/tmp/
                        )

                    [festival] => Array
                        (
                            [text2wave] => /usr/bin/text2wave
                        )

                    [asmanager] => Array
                        (
                            [server] => localhost
                            [port] => 5038
                            [username] => admin
                            [secret] => amp111
                        )

                    [cepstral] => Array
                        (
                            [swift] => /opt/swift/bin/swift
                            [voice] => David
                        )

                )

            [asmanager] => 
            [in] => Resource id #1
            [out] => Resource id #2
            [socket] => 
            [audio] => 
        )

    [device_array] => Array
        (
            [0] => 
            [1] => 303
        )

    [adevice] => 
    [dds] => Array
        (
            [code] => 200
            [result] => 0
            [data] => 
        )

)


GLOBALS:
Array
(
    [GLOBALS] => Array
 *RECURSION*
    [argv] => Array
        (
            [0] => /var/lib/asterisk/agi-bin/user_login_out.agi
            [1] => login
            [2] => 303
            [3] => 303
        )

    [argc] => 4
    [_POST] => Array
        (
        )

    [_GET] => Array
        (
        )

    [_COOKIE] => Array
        (
        )

    [_FILES] => Array
        (
        )

    [_SERVER] => Array
        (
            [CONSOLE] => yes
            [SELINUX_INIT] => YES
            [TERM] => linux
            [LD_LIBRARY_PATH] => /usr/local/lib
            [INIT_VERSION] => sysvinit-2.86
            [PATH] => /sbin:/usr/sbin:/bin:/usr/bin
            [runlevel] => 3
            [RUNLEVEL] => 3
            [PWD] => /tmp
            [LANG] => en_US.UTF-8
            [previous] => N
            [PREVLEVEL] => N
            [SHLVL] => 5
            [HOME] => /
            [OLDPWD] => /
            [_] => /bin/nice
            [AST_CONFIG_DIR] => /etc/asterisk
            [AST_CONFIG_FILE] => 
            [AST_MODULE_DIR] => /usr/lib/asterisk/modules
            [AST_SPOOL_DIR] => /var/spool/asterisk
            [AST_MONITOR_DIR] => /var/spool/asterisk/monitor
            [AST_VAR_DIR] => /var/lib/asterisk
            [AST_DATA_DIR] => /var/lib/asterisk
            [AST_LOG_DIR] => /var/log/asterisk
            [AST_AGI_DIR] => /var/lib/asterisk/agi-bin
            [AST_KEY_DIR] => /var/lib/asterisk/keys
            [AST_RUN_DIR] => /var/run/asterisk
            [PHP_SELF] => /var/lib/asterisk/agi-bin/user_login_out.agi
            [SCRIPT_NAME] => /var/lib/asterisk/agi-bin/user_login_out.agi
            [SCRIPT_FILENAME] => /var/lib/asterisk/agi-bin/user_login_out.agi
            [PATH_TRANSLATED] => /var/lib/asterisk/agi-bin/user_login_out.agi
            [DOCUMENT_ROOT] => 
            [REQUEST_TIME] => 1224509253
            [argv] => Array
                (
                    [0] => /var/lib/asterisk/agi-bin/user_login_out.agi
                    [1] => login
                    [2] => 303
                    [3] => 303
                )

            [argc] => 4
        )

    [_ENV] => Array
        (
            [CONSOLE] => yes
            [SELINUX_INIT] => YES
            [TERM] => linux
            [LD_LIBRARY_PATH] => /usr/local/lib
            [INIT_VERSION] => sysvinit-2.86
            [PATH] => /sbin:/usr/sbin:/bin:/usr/bin
            [runlevel] => 3
            [RUNLEVEL] => 3
            [PWD] => /tmp
            [LANG] => en_US.UTF-8
            [previous] => N
            [PREVLEVEL] => N
            [SHLVL] => 5
            [HOME] => /
            [OLDPWD] => /
            [_] => /bin/nice
            [AST_CONFIG_DIR] => /etc/asterisk
            [AST_CONFIG_FILE] => 
            [AST_MODULE_DIR] => /usr/lib/asterisk/modules
            [AST_SPOOL_DIR] => /var/spool/asterisk
            [AST_MONITOR_DIR] => /var/spool/asterisk/monitor
            [AST_VAR_DIR] => /var/lib/asterisk
            [AST_DATA_DIR] => /var/lib/asterisk
            [AST_LOG_DIR] => /var/log/asterisk
            [AST_AGI_DIR] => /var/lib/asterisk/agi-bin
            [AST_KEY_DIR] => /var/lib/asterisk/keys
            [AST_RUN_DIR] => /var/run/asterisk
        )

    [phpagi_error_handler_email] => [email protected]
    [agi] => AGI Object
        (
            [request] => Array
                (
                    [agi_request] => user_login_out.agi
                    [agi_channel] => SIP/303-b7705d90
                    [agi_language] => en
                    [agi_type] => SIP
                    [agi_uniqueid] => 1224509244.1907
                    [agi_callerid] => 303
                    [agi_calleridname] => Polycom
                    [agi_callingpres] => 0
                    [agi_callingani2] => 0
                    [agi_callington] => 0
                    [agi_callingtns] => 0
                    [agi_dnid] => *11
                    [agi_rdnis] => unknown
                    [agi_context] => macro-user-logon
                    [agi_extension] => s
                    [agi_priority] => 15
                    [agi_enhanced] => 0.0
                    [agi_accountcode] => 
                )

            [config] => Array
                (
                    [phpagi] => Array
                        (
                            [debug] => 1
                            [error_handler] => 1
                            [admin] => [email protected]
                            [hostname] => localhost.localdomain
                            [tempdir] => /var/spool/asterisk/tmp/
                        )

                    [festival] => Array
                        (
                            [text2wave] => /usr/bin/text2wave
                        )

                    [asmanager] => Array
                        (
                            [server] => localhost
                            [port] => 5038
                            [username] => admin
                            [secret] => amp111
                        )

                    [cepstral] => Array
                        (
                            [swift] => /opt/swift/bin/swift
                            [voice] => David
                        )

                )

            [asmanager] => 
            [in] => Resource id #1
            [out] => Resource id #2
            [socket] => 
            [audio] => 
        )

    [ampmgruser] => admin
    [ampmgrpass] => amp111
    [astspooldir] => /var/spool/asterisk
    [ast_version] => 1.4.21.2
    [dnd_devstate] => 
    [fm_devstate] => 
    [intercom_code] => nointercom
    [ast_version14] => 1
    [DEVSTATE] => DEVSTATE
    [astman] => AGI_AsteriskManager Object
        (
            [config] => Array
                (
                    [phpagi] => Array
                        (
                            [debug] => 1
                            [error_handler] => 1
                            [admin] => [email protected]
                            [hostname] => localhost.localdomain
                            [tempdir] => /var/spool/asterisk/tmp/
                        )

                    [festival] => Array
                        (
                            [text2wave] => /usr/bin/text2wave
                        )

                    [asmanager] => Array
                        (
                            [server] => localhost
                            [port] => 5038
                            [username] => admin
                            [secret] => amp111
                        )

                    [cepstral] => Array
                        (
                            [swift] => /opt/swift/bin/swift
                            [voice] => David
                        )

                )

            [socket] => Resource id #9
            [server] => 127.0.0.1
            [port] => 5038
            [pagi] => 
            [event_handlers] => 
        )

    [action] => login
    [this_device] => 303
    [new_user] => 303
)


Backtrace:
Array
(
    [0] => Array
        (
            [file] => /var/lib/asterisk/agi-bin/user_login_out.agi
            [line] => 258
            [function] => phpagi_error_handler
            [args] => Array
                (
                    [0] => 8
                    [1] => Undefined variable: dialstring
                    [2] => /var/lib/asterisk/agi-bin/user_login_out.agi
                    [3] => 258
                    [4] => Array
                        (
                            [devices] => &303
                            [agi] => AGI Object
                                (
                                    [request] => Array
                                        (
                                            [agi_request] => user_login_out.agi
                                            [agi_channel] => SIP/303-b7705d90
                                            [agi_language] => en
                                            [agi_type] => SIP
                                            [agi_uniqueid] => 1224509244.1907
                                            [agi_callerid] => 303
                                            [agi_calleridname] => Polycom
                                            [agi_callingpres] => 0
                                            [agi_callingani2] => 0
                                            [agi_callington] => 0
                                            [agi_callingtns] => 0
                                            [agi_dnid] => *11
                                            [agi_rdnis] => unknown
                                            [agi_context] => macro-user-logon
                                            [agi_extension] => s
                                            [agi_priority] => 15
                                            [agi_enhanced] => 0.0
                                            [agi_accountcode] => 
                                        )

                                    [config] => Array
                                        (
                                            [phpagi] => Array
                                                (
                                                    [debug] => 1
                                                    [error_handler] => 1
                                                    [admin] => [email protected]
                                                    [hostname] => localhost.localdomain
                                                    [tempdir] => /var/spool/asterisk/tmp/
                                                )

                                            [festival] => Array
                                                (
                                                    [text2wave] => /usr/bin/text2wave
                                                )

                                            [asmanager] => Array
                                                (
                                                    [server] => localhost
                                                    [port] => 5038
                                                    [username] => admin
                                                    [secret] => amp111
                                                )

                                            [cepstral] => Array
                                                (
                                                    [swift] => /opt/swift/bin/swift
                                                    [voice] => David
                                                )

                                        )

                                    [asmanager] => 
                                    [in] => Resource id #1
                                    [out] => Resource id #2
                                    [socket] => 
                                    [audio] => 
                                )

                            [device_array] => Array
                                (
                                    [0] => 
                                    [1] => 303
                                )

                            [adevice] => 
                            [dds] => Array
                                (
                                    [code] => 200
                                    [result] => 0
                                    [data] => 
                                )

                        )

                )

        )

    [1] => Array
        (
            [file] => /var/lib/asterisk/agi-bin/user_login_out.agi
            [line] => 230
            [function] => get_dial_string
            [args] => Array
                (
                    [0] => &303
                )

        )

    [2] => Array
        (
            [file] => /var/lib/asterisk/agi-bin/user_login_out.agi
            [line] => 154
            [function] => set_hint
            [args] => Array
                (
                    [0] => 303
                    [1] => &303
                )

        )

    [3] => Array
        (
            [file] => /var/lib/asterisk/agi-bin/user_login_out.agi
            [line] => 111
            [function] => insert_user
            [args] => Array
                (
                    [0] => 303
                    [1] => 303
                )

        )

    [4] => Array
        (
            [file] => /var/lib/asterisk/agi-bin/user_login_out.agi
            [line] => 58
            [function] => user_login
            [args] => Array
                (
                    [0] => 303
                    [1] => 303
                )

        )

)


/var/lib/asterisk/agi-bin/user_login_out.agi:
249		// to create proper hints)
250		//
251		function get_dial_string($devices) {
252			debug("get_dial_string: devices: $devices",8);
253			global $agi;
254	
255			$device_array = explode( '&', $devices );
256			foreach ($device_array as $adevice) {
257				$dds = $agi->database_get('DEVICE',$adevice.'/dial');
258				$dialstring .= $dds['data'].'&';
259			}
260			return trim($dialstring," &");
261		}
262	
263		// Insert a new device into a devices string and return the new string
264		//
265		function insert_device($devices, $new_device) {
266			debug("insert_device: devices: $devices, new_device: $new_device",8);
267	
268			// We could just append it but this assures no bugs duplicate the device

aah,

looks like it is simply a harmless uninitialized variable (still a bug though) - just a lot of stuff to weed through to see. Try this:

Index: agi-bin/user_login_out.agi
===================================================================
--- agi-bin/user_login_out.agi  (revision 7039)
+++ agi-bin/user_login_out.agi  (working copy)
@@ -249,6 +249,8 @@
        // to create proper hints)
        //
        function get_dial_string($devices) {
+               $dialstring = "";
+
                debug("get_dial_string: devices: $devices",8);
                global $agi;
 

will do - thanks for your help!