Javascript Rmanager commands

From Yate Documentation
(Difference between revisions)
Jump to: navigation, search
 
Line 12: Line 12:
 
Ex output:
 
Ex output:
 
  javascript info
 
  javascript info
  nib = ./share/scripts/nib.js
+
  nip = ./share/scripts/nip.js
 
  sip/74: ReRoute
 
  sip/74: ReRoute
  
nib.js is a global script and sip/74 is a sip channel that is assisted by the configured routing script
+
nip.js is a global script and sip/74 is a sip channel that is assisted by the configured routing script
  
 
==Reload scripts==
 
==Reload scripts==

Latest revision as of 11:46, 21 August 2017

You can interact with Javascript scripts from rmanager. The javascript rmanager commands are a great tool to help you debug javascript applications.

To connect to Yate's rmanager interface

telnet 127.0.0.1 5038


Contents

[edit] See running scripts

javascript info

Ex output:

javascript info
nip = ./share/scripts/nip.js
sip/74: ReRoute

nip.js is a global script and sip/74 is a sip channel that is assisted by the configured routing script

[edit] Reload scripts

You can use this to reload a script after you have modified it.

javascript reload script_name

[edit] Evaluate expresion

Ask Javascript interpretor to evaluate expresion:

javascript eval Engine.debug("test")

Ask Javascript interpretor to evaluate expresion in the context of a specific script. In this case you will be able to access global variables from that script.

javascript eval=script_name Engine.debug("test"+var_name)

Ask Javascript interpretor to evaluate expresion in the context of a specific routing script instance. In this case you will be able to access global variables from that script instance.

javascript eval=chan_id Engine.debug("test"+var_name)

Ex:

javascript eval=sip/74 Engine.debug("test"+var_name)

You can use the eval functionality to test javascript expressions and in some cases it's very useful when debugging.

[edit] Inspecting variables

Inspect variable in running script:

javascript eval=script_name Engine.print_r(var_name)

View Object or Array in JSON format:

javascript eval=script_name JSON.stringify(var_name,null,2)

[edit] See installed message handlers

You can use even use eval to see installed handlers for a script. This help a lot to debug scripts especially when you include functionality from multiple files.

Command:

   javascript eval=roaming Engine.print_t(Message.handlers())

Example output:

   name              priority handler        trackName     filterName filterValue
   ----------------- -------- -------------- ------------- ---------- ------------
   call.update       90       onChanUpdate   javascript:90
   sip.options       90       onSipOptions   javascript:90
   sip.info          90       onSipInfo      javascript:90
   module.update     90       onModuleUpdate javascript:90 module     ybts
   user.register     80       onRegister     roaming:80
   user.unregister   80       onUnregister   roaming:80
   call.route        80       onRoute        roaming:80
   auth              80       onAuth         roaming:80    callto     smsc_yatebts
   msg.execute       80       onMoSMS        roaming:80    module     ybts
   chan.disconnected 40       onDisconnected roaming:40    module     ybts
   chan.hangup       80       onHangup       roaming:80    module     ybts
   call.execute      80       onExecute      roaming:80    module     ybts
   call.progress     50       addPhyInfo     roaming:50    module     ybts
   call.ringing      50       addPhyInfo     roaming:50
   call.answered     50       addPhyInfo     roaming:50    module     roaming
   chan.dtmf         50       addPhyInfo     roaming:50
   engine.command    120      onCommand      roaming:120
   engine.help       150      onHelp         roaming:150
   engine.debug      150      onDebug        roaming:150
   engine.init       110      onReload       roaming:110
Personal tools
Namespaces

Variants
Actions
Preface
Configuration
Administrators
Developers