installation_guide:debug:start

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
Next revisionBoth sides next revision
installation_guide:debug:start [2016/05/23 10:42] – created borjainstallation_guide:debug:start [2023/08/04 08:01] – [Set the right TimeZone] borja
Line 1: Line 1:
-====== Debug ======+====== Debug commands ====== 
 + 
 +==== Enable Voximal module traces === 
 + 
 +Execute : 
 +<code> 
 +CLI> voximal debug 
 +</code> 
 + 
 + 
 +==== Enable Voximal interpreter traces === 
 + 
 +Execute : 
 +<code> 
 +CLI> voximal debug interpreter 
 +</code> 
 + 
 + 
 +==== View the traces flow === 
 + 
 +Execute : 
 +<code> 
 +root# tail -f /var/log/voximal/debug.log 
 +</code> 
 + 
 +With colors : 
 +<code> 
 +root# tail -f /var/log/voximal/debug.log | ccze -A 
 +</code> 
 + 
 + 
 +==== Generate a normal stop ====
  
 Clean stop of the Voximald process : Clean stop of the Voximald process :
Line 18: Line 49:
 </code> </code>
  
-Start the voximald process with Valgrid+==== Powerful top monitor ==== 
 + 
 +Use the "htop" tool :  
 +<code> 
 +htop -p $(pidoff voximald) 
 +</code> 
 + 
 +<code> 
 +  1  [                          0.0%]   Tasks: 33, 29 thr; 1 running 
 +  2  [|                         0.7%]   Load average: 0.51 0.28 0.30 
 +  3  [                          0.0%]   Uptime: 3 days, 01:39:39 
 +  4  [                          0.0%] 
 +  Mem[|||                 175M/3.91G] 
 +  Swp[|                  31.8M/7.81G] 
 + 
 +  PID USER      PRI  NI  VIRT   RES   SHR S CPU% MEM%   TIME+  Command 
 +    1 root       20    199M  3316  2208 S  0.0  0.1  0:02.58 /sbin/init 
 +18890 root       20   0 56440  4164  3360 S  0.0  0.1  0:00.02 `- /lib/systemd/
 +18891 root       20    224M  1316     0 S  0.0  0.0  0:00.00 |  `- (sd-pam) 
 +  409 root       20   0 81156  1236  1068 S  0.0  0.0  0:00.95 `- /usr/lib/postf 
 +14487 postfix    20   0 83224  5088  4320 S  0.0  0.1  0:00.00 |  `- pickup -l - 
 +  412 postfix    20   0 83388  1916  1648 S  0.0  0.0  0:00.30 |  `- qmgr -l -t 
 +  308 root       20    350M 24556 19196 S  0.0  0.6  0:05.93 `- /usr/sbin/apac 
 +30788 www-data   20    350M  6752  1384 S  0.0  0.2  0:00.00 |  `- /usr/sbin/
 +30787 www-data   20    350M  6752  1384 S  0.0  0.2  0:00.00 |  `- /usr/sbin/
 +30786 www-data   20    350M  6752  1384 S  0.0  0.2  0:00.00 |  `- /usr/sbin/
 +30785 www-data   20    350M  6752  1384 S  0.0  0.2  0:00.00 |  `- /usr/sbin/
 +30784 www-data   20    350M  6752  1384 S  0.0  0.2  0:00.00 |  `- /usr/sbin/
 +  263 mysql      28    670M 38608  1668 S  0.0  0.9  1:55.94 `- /usr/sbin/mysq 
 + 2808 mysql      20    670M 38608  1668 S  0.0  0.9  0:00.00 |  `- /usr/sbin/
 +F1Help  F2Setup F3SearchF4FilterF5SortedF6CollapF7Nice -F8Nice +F9Kill  F10Quit 
 +</code> 
 + 
 +==== Powerful SIP traffic monitor ==== 
 + 
 +Use the "sngrep" tool :  
 +<code> 
 +sngrep 
 +</code> 
 + 
 +<code> 
 + 
 +                                      xINVITE sip:0970265644@84.246.228.243:506 
 +           128.140.150.200:5060       xuser=phone SIP/2.0 
 +          qqqqqqqqqqwqqqqqqqqq        xVia: SIP/2.0/UDP 128.140.150.200:5060;br 
 +  22:22:36.632419          INVITE (Sxch=z9hG4bKk5efg100aob0k0be5og0.1 
 +        +0.000994   x qqqqqqqqqqqqqqqqxMax-Forwards: 66 
 +  22:22:36.633413           100 TryixFrom: <sip:0677379042@172.17.28.229;user 
 +        +0.048311   x <qqqqqqqqqqqqqqqxhone>;tag=1c1397877903 
 +  22:22:36.681724          200 OK (SxTo: sip:0970265644@ipdirections.net 
 +        +0.085629   x <qqqqqqqqqqqqqqqxCall-ID: SDk6upe02-efa980599ffc4b83e9221 
 +  22:22:36.767353               ACK xec76ea708-v300g00030 
 +        +8.759074   x qqqqqqqqqqqqqqqqxCSeq: 1 INVITE 
 +  22:22:45.526427               BYE xContact: <sip:128.140.150.200:5060;maddr 
 +        +0.000527   x qqqqqqqqqqqqqqqqx28.140.150.200> 
 +  22:22:45.526954             200 OKxSupported: sdp-anat 
 +                    x <qqqqqqqqqqqqqqqxAllow: INVITE,ACK,CANCEL,BYE,OPTIONS 
 +                    x                 xP-Asserted-Identity: <sip:0677379042@172 
 +                    x                 x7.28.229;user=phone> 
 +                    x                 xContent-Type: application/sdp 
 +                    x                 xContent-Length: 435 
 +                    x                 xP-Early-Media: supported 
 +                    x                 xP-Access-Network-Info: GSTN;operator-spe 
 +                                      x 
 +Esc Calls List   Enter Raw   Space Compare   F1 Help   F2 SDP   F3 RTP   F4 Exte 
 +</code> 
 + 
 +==== Asterisk Manager traffic monitor ==== 
 + 
 +Use the "ngrep" tool :  
 +<code> 
 +ngrep 
 +</code> 
 + 
 +<code> 
 +ngrep -d lo -s 1500 port 5038 -T 
 +</code> 
 +==== Monitor memory/CPU ==== 
 + 
 +A very simple way to follow the memory and CPU indicators : 
 + 
 +<code> 
 +root# top -b -d 5 -p $(pidof voximald) | awk -v OFS="," '$1+0>0 {print strftime("%Y-%m-%d %H:%M:%S"),$1,$NF,$5,$6,$7,$9,$10; fflush() }' | tee datas.csv 
 +</code> 
 + 
 +==== Valgrid using ==== 
 + 
 +The Asterisk module launch the interpreter by defaut, you need to disable it to be able to run the voximald process with Valgrid. 
 + 
 +To disable the Voximal launch from the Asterisk module edit and add this option in the voximal.conf : 
 + 
 +<code> 
 +[general] 
 +... 
 +launcher=no 
 +... 
 +</code> 
 + 
 +Start the voximald process with Valgrid 
 + 
 +<code> 
 +#root valgrind  --tool=memcheck --leak-check=full --log-file="logfile.out" /usr/sbin/voximald -channels 1 -config /etc/openvxi/client.cfg -user asterisk -group asterisk 
 +</code> 
 + 
 +And run the Asterisk. 
 + 
 +<code> 
 +asterisk -cvvvvv -U asterisk -G asterisk -g 
 +</code> 
 + 
 +==== VoiceXML Log levels ==== 
 + 
 +Format : 
 + 
 +<code> 
 + 
 +  Diagnostic   
 +  date/time | threadID | sessionID or mark | tagID | subtag | text 
 +   
 +  Error  
 +  date/time | threadID | sessionID or -1 | 0 | severity | modulename | errorID | errorText | appends 
 +   
 +  Event  
 +  date/time | threadID | sessionID | EVENT | 0|evenID | appends 
 +</code> 
 + 
 +Logging example : 
 + 
 +<code> 
 +... 
 +Oct 23 23:39:12.35|0x7f82daebb700|-1|4002||AccessBegin Locked 
 +Oct 23 23:39:12.35|0x7f82daebb700|-1|4002||AccessEnd Unlock 
 +Oct 23 23:39:12.35|0x7f82daebb700|0_1_1540337949.313|4000|SBjsiGetVar|exiting: returned 0, 0x7f82daeb34e0 (0x7f82d419a750) 
 +Oct 23 23:39:12.35|0x7f82daebb700|0_1_1540337949.313|8002|fr.ulex.vxi|VXI::assign_element(set value : id=08facd13i9e0q9o1m4vav8ghvn8tbagn21bfcb5) 
 +Oct 23 23:39:12.35|0x7f82daebb700|0_1_1540337949.313|5001|VXIpromptWait|VXIprompt 
 +Oct 23 23:39:12.35|0x7f82daebb700|0_1_1540337949.313|5001|VXIpromptWait|Waiting PROMPT 
 +Oct 23 23:39:12.35|0x7f82daebb700|0_1_1540337949.313|5001|VXIpromptWait|EVT < 1 : prompt|session=1|item=1|result=ok 
 +Oct 23 23:39:12.35|0x7f82daebb700|0_1_1540337949.313|8002|fr.ulex.vxi|VXI::DoInnerJump() 
 +Oct 23 23:39:12.35|0x7f82daebb700|0_1_1540337949.313|4000|SBjsiCheckVar|entering: 0x7f82d412af00, '$_internalName_31627' 
 +Oct 23 23:39:12.35|0x7f82daebb700|0_1_1540337949.313|4004|JsiContext::CheckVar|Check variable $_internalName_31627, context 0x7f82d41656e0 
 +Oct 23 23:39:12.35|0x7f82daebb700|-1|4002||AccessBegin Lock 
 +Oct 23 23:39:12.35|0x7f82daebb700|-1|4002||AccessBegin Locked 
 +Oct 23 23:39:12.35|0x7f82daebb700|-1|4002||AccessEnd Unlock 
 +Oct 23 23:39:12.35|0x7f82daebb700|0_1_1540337949.313|4000|SBjsiCheckVar|exiting: returned 0 
 +Oct 23 23:39:12.35|0x7f82daebb700|0_1_1540337949.313|4000|SBjsiCheckVar|entering: 0x7f82d412af00, '$_internalName_31628' 
 +Oct 23 23:39:12.35|0x7f82daebb700|0_1_1540337949.313|4004|JsiContext::CheckVar|Check variable $_internalName_31628, context 0x7f82d41656e0 
 +Oct 23 23:39:12.35|0x7f82daebb700|-1|4002||AccessBegin Lock 
 +... 
 +</code> 
 + 
 + 
 +The default log bases (used to define tagIDs) : 
 + 
 +<code> 
 +client.cache.diagLogBase                    VXIInteger  2000 
 +client.inet.diagLogBase                     VXIInteger  3000 
 +client.jsi.diagLogBase                      VXIInteger  4000 
 +client.prompt.diagLogBase                   VXIInteger  5000 
 +client.rec.diagLogBase                      VXIInteger  6000 
 +client.tel.diagLogBase                      VXIInteger  7000 
 +client.vxi.diagLogBase                      VXIInteger  8000 
 +client.object.diagLogBase                   VXIInteger  9000 
 +client.client.diagLogBase                   VXIInteger  10000 
 +</code> 
 + 
 + 
 +=== Interet connector === 
 + 
 +<code> 
 +<DiagnosticMessages moduleName="*SBinet"> 
 +    <diag tag="0">SBinet: API trace </diag> 
 +    <diag tag="1">SBinet: Channel diagnostics </diag> 
 +    <diag tag="2">SBinet: Stream diagnostics </diag> 
 +    <diag tag="3">SBinet: Cookie diagnostics </diag> 
 +    <diag tag="4">SBinet: Validator diagnostics </diag> 
 +    <diag tag="5">SBinet: Cache diagnostics </diag> 
 +    <diag tag="6">SBinet: Timing diagnostics </diag> 
 +    <diag tag="10">SBinet: Dump HTTP requests and responses </diag> 
 + 
 +</DiagnosticMessages> 
 +</code> 
 + 
 + 
 +=== Cache === 
 + 
 +<code> 
 +<DiagnosticMessages moduleName="*SBcache"> 
 +    <diag tag="0">SBcache: API trace </diag> 
 +    <diag tag="1">SBcache: Cache manager diagnostics </diag> 
 +    <diag tag="2">SBcache: Cache entry diagnostics </diag> 
 +    <diag tag="3">SBcache: Cache stream diagnostics </diag> 
 +    <diag tag="4">SBcache: Cache entry table mutex diagnostics </diag> 
 +    <diag tag="5">SBcache: Cache entry mutex diagnostics </diag> 
 +</DiagnosticMessages> 
 +</code> 
 + 
 + 
 +=== EcmaScript interpreter === 
 + 
 +<code> 
 +<DiagnosticMessages moduleName="*SBjsi"> 
 +    <diag tag="0">SBjsi: API trace </diag> 
 +    <diag tag="1">SBjsi: JavaScript context diagnostics </diag> 
 +    <diag tag="2">SBjsi: JavaScript garbage collection trace </diag> 
 +    <diag tag="4">SBjsi: JavaScript scope diagnostics </diag> 
 +    <diag tag="200">SBjsi: Native ScriptEase error messages </diag> 
 +    <diag tag="201">SBjsi: ScriptEase debug log messages </diag> 
 +</DiagnosticMessages> 
 +</code> 
 + 
 +=== Client main === 
 + 
 +<code> 
 +<DiagnosticMessages moduleName="*OSBclient"> 
 +    <diag tag="0">OSBclient: API trace </diag> 
 +    <diag tag="1">OSBclient: Component names and versions </diag> 
 +    <diag tag="2">OSBclient: General diagnostics </diag> 
 +</DiagnosticMessages> 
 +</code> 
 + 
 + 
 +=== Objects === 
 + 
 +<code> 
 +<DiagnosticMessages moduleName="*OSBobject"> 
 +    <diag tag="0">OSBobject: API trace </diag> 
 +</DiagnosticMessages> 
 +</code> 
 + 
 +=== VoiceXML interpreter (VXI) === 
 + 
 +<code> 
 +<DiagnosticMessages moduleName="*.vxi"> 
 +    <diag tag="0">VXI: VoiceXML document and application warnings</diag> 
 +    <diag tag="1">VXI: VoiceXML log element output</diag> 
 +    <diag tag="2">VXI: VoiceXML element logging</diag> 
 +    <diag tag="3">VXI: VoiceXML grammar logging</diag> 
 +    <diag tag="4">VXI: VoiceXML transitions</diag> 
 +    <diag tag="5">VXI: VoiceXML log Contents (VoiceXML and Data XML/Json)</diag> 
 +</DiagnosticMessages> 
 +</code> 
 + 
 +=== Telephony === 
 + 
 +<code> 
 +<DiagnosticMessages moduleName="*.VXItel"> 
 +    <diag tag="0">VXItel: Signaling trace </diag> 
 +</DiagnosticMessages> 
 +</code> 
 + 
 + 
 +=== Prompt === 
 + 
 +<code> 
 +<DiagnosticMessages moduleName="*.VXIprompt"> 
 +    <diag tag="0">VXIprompt: Prompting trace </diag> 
 +</DiagnosticMessages> 
 +</code> 
 + 
 + 
 +=== Recognize === 
 + 
 +<code> 
 +<DiagnosticMessages moduleName="*.VXIrec"> 
 +    <diag tag="0">VXIrec: Recognition trace </diag> 
 +    <diag tag="1">VXIrec: Grammar trace </diag> 
 +</DiagnosticMessages> 
 +</code> 
 + 
 +==== Set the right TimeZone ==== 
 + 
 +Install the NTP package to synchronize your server to the world's time. 
 + 
 +<code> 
 +#timedatectl set-timezone America/New_York 
 +</code> 
 + 
 +or, for french servers, 
 + 
 +<code> 
 +#timedatectl set-timezone Europe/Paris 
 +</code> 
 + 
 +or automatically, 
 + 
 +<code> 
 +#dpkg-reconfigure tzdata 
 +</code> 
 + 
 +==== Monitor the file descriptors ==== 
 + 
 +List the file descriptors used by a process : 
 <code> <code>
-#root valgrind  --tool=memcheck --leak-check=full --log-file="logfile.out" /usr/sbin/openvxi -channels 2 -config /etc/openvxi/client.cfg+ls -/proc/[PID]/fd
 </code> </code>
  • installation_guide/debug/start.txt
  • Last modified: 2024/02/19 16:10
  • by borja