Script started on Tue 31 Mar 2015 09:01:30 AM EDT ]0;root@privatepbx:/usr/local/fop2[?1034hroot@privatepbx:/usr/local/fop2 $ (Bservice fop2 start exit./fop2_server -X 511 Flash Operator Panel 2 - License file fop2.lic not found. ** COLLECT INCLUDES fop2.cfg , tipo server, nest level 1 ** Executing config script /usr/local/fop2/autoconfig-users.sh ** Done executing script /usr/local/fop2/autoconfig-users.sh of type server -- TIMER asterisk_ami_connect and async config check ** READ SERVER CONFIG ** PLUGIN: Loading server side plugin /var/www/html/fop2/admin/plugins/clock/clock.pl ** PLUGIN: Loading server side plugin /var/www/html/fop2/admin/plugins/conferencebutton/conferencebutton.pl ** PLUGIN: Loading server side plugin /var/www/html/fop2/admin/plugins/configonreload/configonreload.pl ** PLUGIN: Loading server side plugin /var/www/html/fop2/admin/plugins/holdreport/holdreport.pl ** PLUGIN: Loading server side plugin /var/www/html/fop2/admin/plugins/presencedndfpbx/presencedndfpbx.pl ** PLUGIN: Loading server side plugin /var/www/html/fop2/admin/plugins/presencepause/presencepause.pl ** PLUGIN: Loading server side plugin /var/www/html/fop2/admin/plugins/queuecounter/queuecounter.pl ** READ SERVER calling COLLECT INCLUDES archivo autobuttons.cfg context GENERAL!buttons ** COLLECT INCLUDES autobuttons.cfg , tipo buttons, nest level 1 ** Executing config script /usr/local/fop2/autoconfig-buttons.sh ** VOICEMAIL PATH /var/spool/asterisk/voicemail ** Done executing script /usr/local/fop2/autoconfig-buttons.sh of type buttons -- TIMER asterisk_ami_connect and async config check ** READ BUTTONS CONFIG buttons para contexto GENERAL Not a reference at all Not a reference at all Not a reference at all Not a reference at all Not a reference at all Not a reference at all Not a reference at all Not a reference at all Not a reference at all Not a reference at all Not a reference at all Not a reference at all Not a reference at all Not a reference at all Not a reference at all Not a reference at all Not a reference at all Not a reference at all Not a reference at all Not a reference at all Not a reference at all Not a reference at all Not a reference at all Not a reference at all Not a reference at all Not a reference at all Not a reference at all Not a reference at all Not a reference at all Not a reference at all Not a reference at all Not a reference at all Not a reference at all Not a reference at all Not a reference at all Not a reference at all Not a reference at all Not a reference at all Not a reference at all Not a reference at all Not a reference at all Not a reference at all Not a reference at all Not a reference at all Not a reference at all Not a reference at all Not a reference at all Not a reference at all Not a reference at all Not a reference at all ** GENERA CONFIG START ** GENERA CONFIG - GENERAL ** GENERA CONFIG END Set doing hup to zero ** Starting Socket server for clients ** Asterisk Manager undefined, attempt connection !! Attempting to connect to AMI on server localhost 127.0.0.1 -> AuthType: md5 127.0.0.1 -> Action: Challenge 127.0.0.1 -> ActionID: 1 127.0.0.1 <- Response: Success 127.0.0.1 <- ActionID: 1 127.0.0.1 <- Challenge: 185152175 127.0.0.1 -> AuthType: md5 127.0.0.1 -> Events: on 127.0.0.1 -> Username: admin 127.0.0.1 -> Action: login 127.0.0.1 -> Key: 754764b9dc453755dd8b3920e9c0c8b9 127.0.0.1 -> ActionID: 2 127.0.0.1 <- Response: Success 127.0.0.1 <- ActionID: 2 127.0.0.1 <- Message: Authentication accepted ** QUERY INITIAL STATUS START It's blessed into class FOP2::Extension ++ GET SERVER for IAX2/5315 = localhost ** QUERY UNPOPULATED MAILBOX 5315@default 127.0.0.1 -> Mailbox: 5315@default 127.0.0.1 -> Action: MailboxCount 127.0.0.1 -> ActionID: 3 ++ GET SERVER for SIP/5312 = localhost ** QUERY CUSTOM ASTDB 5312 CF para chan SIP/5312 127.0.0.1 -> Action: DBGet 127.0.0.1 -> Family: CF 127.0.0.1 -> Key: 5312 127.0.0.1 -> ActionID: 4 127.0.0.1 -> Action: Status 127.0.0.1 -> Action: QueueStatus 127.0.0.1 -> Action: Agents 127.0.0.1 -> Action: SipPeers 127.0.0.1 -> Action: IaxPeers 127.0.0.1 -> Action: ParkedCalls Skipping user & device queries, not in user device mode 0 127.0.0.1 -> Command: meetme list 2664 concise 127.0.0.1 -> Action: Command 127.0.0.1 -> ActionID: 5 127.0.0.1 -> Conference: 2664 127.0.0.1 -> Action: ConfbridgeList 127.0.0.1 -> ActionID: 6 127.0.0.1 -> Command: meetme list 2663 concise 127.0.0.1 -> Action: Command 127.0.0.1 -> ActionID: 7 127.0.0.1 -> Conference: 2663 127.0.0.1 -> Action: ConfbridgeList 127.0.0.1 -> ActionID: 8 127.0.0.1 -> Command: database show fop2notes 127.0.0.1 -> Action: Command 127.0.0.1 -> ActionID: 9 127.0.0.1 -> Command: database show fop2state 127.0.0.1 -> Action: Command 127.0.0.1 -> ActionID: 10 127.0.0.1 -> Action: CoreSettings 127.0.0.1 -> ActionID: 11 127.0.0.1 <- Event: FullyBooted 127.0.0.1 <- Privilege: system,all 127.0.0.1 <- Status: Fully Booted 127.0.0.1 <- Response: Success 127.0.0.1 <- ActionID: 3 127.0.0.1 <- Message: Mailbox Message Count 127.0.0.1 <- Mailbox: 5315@default 127.0.0.1 <- UrgMessages: 0 127.0.0.1 <- NewMessages: 4 127.0.0.1 <- OldMessages: 0 It's blessed into class FOP2::Extension It's blessed into class FOP2::Extension It's blessed into class FOP2::Extension ++ GET SERVER for local/2517@outbound-allroutes = localhost ** QUERY UNPOPULATED MAILBOX 2517@default 127.0.0.1 -> Mailbox: 2517@default 127.0.0.1 -> Action: MailboxCount 127.0.0.1 -> ActionID: 12 FIN handle_ami_response canal IAX2/5315, comando voicemail, datos 1, slot FIN handle_ami_response canal IAX2/5315, comando voicemailcount, datos &vmail_count!4!0, slot 127.0.0.1 <- Response: Error 127.0.0.1 <- ActionID: 4 127.0.0.1 <- Message: Database entry not found It's blessed into class FOP2::Extension ++ GET SERVER for IAX2/5315 = localhost ** QUERY CUSTOM ASTDB 5315 CF para chan IAX2/5315 127.0.0.1 -> Action: DBGet 127.0.0.1 -> Family: CF 127.0.0.1 -> Key: 5315 127.0.0.1 -> ActionID: 13 127.0.0.1 <- Response: Success 127.0.0.1 <- Message: Channel status will follow 127.0.0.1 <- Event: StatusComplete 127.0.0.1 <- Items: 0 STATUS COMPLETE 127.0.0.1 <- Response: Success 127.0.0.1 <- Message: Queue status will follow 127.0.0.1 <- Event: QueueParams 127.0.0.1 <- Queue: default 127.0.0.1 <- Max: 0 127.0.0.1 <- Strategy: ringall 127.0.0.1 <- Calls: 0 127.0.0.1 <- Holdtime: 0 127.0.0.1 <- TalkTime: 0 127.0.0.1 <- Completed: 0 127.0.0.1 <- Abandoned: 0 127.0.0.1 <- ServiceLevel: 0 127.0.0.1 <- ServicelevelPerf: 0.0 127.0.0.1 <- Weight: 0 Not a reference at all 127.0.0.1 <- Event: QueueParams 127.0.0.1 <- Queue: testqueue 127.0.0.1 <- Max: 0 127.0.0.1 <- Strategy: ringall 127.0.0.1 <- Calls: 0 127.0.0.1 <- Holdtime: 0 127.0.0.1 <- TalkTime: 0 127.0.0.1 <- Completed: 0 127.0.0.1 <- Abandoned: 0 127.0.0.1 <- ServiceLevel: 0 127.0.0.1 <- ServicelevelPerf: 0.0 127.0.0.1 <- Weight: 0 Not a reference at all 127.0.0.1 <- Event: QueueParams 127.0.0.1 <- Queue: 5320 127.0.0.1 <- Max: 0 127.0.0.1 <- Strategy: ringall 127.0.0.1 <- Calls: 0 127.0.0.1 <- Holdtime: 0 127.0.0.1 <- TalkTime: 0 127.0.0.1 <- Completed: 0 127.0.0.1 <- Abandoned: 4 127.0.0.1 <- ServiceLevel: 60 127.0.0.1 <- ServicelevelPerf: 0.0 127.0.0.1 <- Weight: 0 It's blessed into class FOP2::Queue 127.0.0.1 <- Event: QueueMember 127.0.0.1 <- Queue: 5320 127.0.0.1 <- Name: Johann Remote Office 127.0.0.1 <- Location: Local/5313@from-queue/n 127.0.0.1 <- StateInterface: hint:5313@ext-local 127.0.0.1 <- Membership: static 127.0.0.1 <- Penalty: 0 127.0.0.1 <- CallsTaken: 0 127.0.0.1 <- LastCall: 0 127.0.0.1 <- Status: 1 127.0.0.1 <- Paused: 0 Executing AMI Event Handler in plugin conferencebutton for event QUEUEMEMBER 127.0.0.1 -> Event: QueueMember 127.0.0.1 -> Status: 1 127.0.0.1 -> Queue: 5320 127.0.0.1 -> Membership: static 127.0.0.1 -> Paused: 0 127.0.0.1 -> StateInterface: hint:5313@ext-local 127.0.0.1 -> Penalty: 0 127.0.0.1 -> CallsTaken: 0 127.0.0.1 -> LastCall: 0 127.0.0.1 -> Location: Local/5313@from-queue/n 127.0.0.1 -> Name: Johann Remote Office 127.0.0.1 -> ActionID: 14 Executing AMI Event Handler in plugin presencepause for event QUEUEMEMBER It's blessed into class FOP2::Queue It's blessed into class FOP2::Extension It's blessed into class FOP2::Extension ++ SET STATUS for SIP/5313 = unpaused END HANDLING AMI EVENT channel SIP/5313, command status, data unpaused, slot 0 END HANDLING AMI EVENT channel SIP/5313, command rename, data 5313 Johann Remote Office, slot 127.0.0.1 <- Event: QueueParams 127.0.0.1 <- Queue: 4443 127.0.0.1 <- Max: 0 127.0.0.1 <- Strategy: ringall 127.0.0.1 <- Calls: 0 127.0.0.1 <- Holdtime: 0 127.0.0.1 <- TalkTime: 0 127.0.0.1 <- Completed: 0 127.0.0.1 <- Abandoned: 0 127.0.0.1 <- ServiceLevel: 60 127.0.0.1 <- ServicelevelPerf: 0.0 127.0.0.1 <- Weight: 0 It's blessed into class FOP2::Queue 127.0.0.1 <- Event: QueueMember 127.0.0.1 <- Queue: 4443 127.0.0.1 <- Name: Johann Remote Office 127.0.0.1 <- Location: Local/5313@from-queue/n 127.0.0.1 <- StateInterface: hint:5313@ext-local 127.0.0.1 <- Membership: static 127.0.0.1 <- Penalty: 0 127.0.0.1 <- CallsTaken: 0 127.0.0.1 <- LastCall: 0 127.0.0.1 <- Status: 1 127.0.0.1 <- Paused: 0 Executing AMI Event Handler in plugin conferencebutton for event QUEUEMEMBER 127.0.0.1 -> Event: QueueMember 127.0.0.1 -> Status: 1 127.0.0.1 -> Queue: 4443 127.0.0.1 -> Membership: static 127.0.0.1 -> Paused: 0 127.0.0.1 -> StateInterface: hint:5313@ext-local 127.0.0.1 -> Penalty: 0 127.0.0.1 -> CallsTaken: 0 127.0.0.1 -> LastCall: 0 127.0.0.1 -> Location: Local/5313@from-queue/n 127.0.0.1 -> Name: Johann Remote Office 127.0.0.1 -> ActionID: 15 Executing AMI Event Handler in plugin presencepause for event QUEUEMEMBER It's blessed into class FOP2::Queue It's blessed into class FOP2::Extension It's blessed into class FOP2::Extension ++ SET STATUS for SIP/5313 = unpaused END HANDLING AMI EVENT channel SIP/5313, command status, data unpaused, slot 0 END HANDLING AMI EVENT channel SIP/5313, command rename, data 5313 Johann Remote Office, slot 127.0.0.1 <- Event: QueueStatusComplete QUEUE STATUS COMPLETE It's blessed into class FOP2::Queue ** QUEUE MEMBER LIST start for queue QUEUE/DEFAULT^LOCALHOST ** QUEUE MEMBER LIST devuelve [ ] It's blessed into class FOP2::Queue ** QUEUE MEMBER LIST start for queue QUEUE/5320^LOCALHOST ** QUEUE MEMBER LIST devuelve [ { "paused": "0", "state": "free", "loc": "Local/5313@from-queue/n", "queue": "QUEUE/5320^LOCALHOST", "pty": "0", "name":"Johann Remote Office", "callstaken": "0" } ] It's blessed into class FOP2::Queue ** QUEUE MEMBER LIST start for queue QUEUE/TESTQUEUE^LOCALHOST ** QUEUE MEMBER LIST devuelve [ ] It's blessed into class FOP2::Queue ** QUEUE MEMBER LIST start for queue QUEUE/4443^LOCALHOST ** QUEUE MEMBER LIST devuelve [ { "paused": "0", "state": "free", "loc": "Local/5313@from-queue/n", "queue": "QUEUE/4443^LOCALHOST", "pty": "0", "name":"Johann Remote Office", "callstaken": "0" } ] END HANDLING AMI EVENT channel QUEUE/DEFAULT^LOCALHOST, command queuemembers, data WyBd, slot END HANDLING AMI EVENT channel QUEUE/5320^LOCALHOST, command queuemembers, data WyB7ICJwYXVzZWQiOiAiMCIsICJzdGF0ZSI6ICJmcmVlIiwgImxvYyI6ICJMb2NhbC81MzEzQGZyb20tcXVldWUvbiIsICJxdWV1ZSI6ICJRVUVVRS81MzIwXkxPQ0FMSE9TVCIsICJwdHkiOiAiMCIsICJuYW1lIjoiSm9oYW5uIFJlbW90ZSBPZmZpY2UiLCAiY2FsbHN0YWtlbiI6ICIwIiB9IF0=, slot END HANDLING AMI EVENT channel QUEUE/TESTQUEUE^LOCALHOST, command queuemembers, data WyBd, slot END HANDLING AMI EVENT channel QUEUE/4443^LOCALHOST, command queuemembers, data WyB7ICJwYXVzZWQiOiAiMCIsICJzdGF0ZSI6ICJmcmVlIiwgImxvYyI6ICJMb2NhbC81MzEzQGZyb20tcXVldWUvbiIsICJxdWV1ZSI6ICJRVUVVRS80NDQzXkxPQ0FMSE9TVCIsICJwdHkiOiAiMCIsICJuYW1lIjoiSm9oYW5uIFJlbW90ZSBPZmZpY2UiLCAiY2FsbHN0YWtlbiI6ICIwIiB9IF0=, slot 127.0.0.1 <- Response: Success 127.0.0.1 <- Message: Agents will follow 127.0.0.1 <- Event: AgentsComplete 127.0.0.1 <- Response: Success 127.0.0.1 <- EventList: start 127.0.0.1 <- Message: Peer status list will follow 127.0.0.1 <- Event: PeerEntry 127.0.0.1 <- Channeltype: SIP 127.0.0.1 <- ObjectName: 2250 127.0.0.1 <- ChanObjectType: peer 127.0.0.1 <- IPaddress: 10.1.9.29 127.0.0.1 <- IPport: 5060 127.0.0.1 <- Dynamic: yes 127.0.0.1 <- AutoForcerport: no 127.0.0.1 <- Forcerport: no 127.0.0.1 <- AutoComedia: no 127.0.0.1 <- Comedia: no 127.0.0.1 <- VideoSupport: yes 127.0.0.1 <- TextSupport: no 127.0.0.1 <- ACL: yes 127.0.0.1 <- Status: OK (42 ms) 127.0.0.1 <- RealtimeDevice: no 127.0.0.1 <- Description: It's blessed into class FOP2::Extension ++ SET QUALIFY for SIP/2250 to ok ++ GET QUALIFY for SIP/2250 = ok END HANDLING AMI EVENT channel SIP/2250, command qualify, data ok, slot 0 127.0.0.1 <- Event: PeerEntry 127.0.0.1 <- Channeltype: SIP 127.0.0.1 <- ObjectName: 5201 127.0.0.1 <- ChanObjectType: peer 127.0.0.1 <- IPaddress: 10.1.9.131 127.0.0.1 <- IPport: 5060 127.0.0.1 <- Dynamic: yes 127.0.0.1 <- AutoForcerport: no 127.0.0.1 <- Forcerport: no 127.0.0.1 <- AutoComedia: no 127.0.0.1 <- Comedia: no 127.0.0.1 <- VideoSupport: yes 127.0.0.1 <- TextSupport: no 127.0.0.1 <- ACL: yes 127.0.0.1 <- Status: OK (44 ms) 127.0.0.1 <- RealtimeDevice: no 127.0.0.1 <- Description: Not a reference at all PEER ENTRY SIP/5201 no definido 127.0.0.1 <- Event: PeerEntry 127.0.0.1 <- Channeltype: SIP 127.0.0.1 <- ObjectName: 5202 127.0.0.1 <- ChanObjectType: peer 127.0.0.1 <- IPaddress: -none- 127.0.0.1 <- IPport: 0 127.0.0.1 <- Dynamic: yes 127.0.0.1 <- AutoForcerport: no 127.0.0.1 <- Forcerport: yes 127.0.0.1 <- AutoComedia: no 127.0.0.1 <- Comedia: yes 127.0.0.1 <- VideoSupport: yes 127.0.0.1 <- TextSupport: no 127.0.0.1 <- ACL: yes 127.0.0.1 <- Status: UNKNOWN 127.0.0.1 <- RealtimeDevice: no 127.0.0.1 <- Description: Not a reference at all PEER ENTRY SIP/5202 no definido 127.0.0.1 <- Event: PeerEntry 127.0.0.1 <- Channeltype: SIP 127.0.0.1 <- ObjectName: 5203 127.0.0.1 <- ChanObjectType: peer 127.0.0.1 <- IPaddress: 90.124.123.123 127.0.0.1 <- IPport: 1832 127.0.0.1 <- Dynamic: yes 127.0.0.1 <- AutoForcerport: no 127.0.0.1 <- Forcerport: yes 127.0.0.1 <- AutoComedia: no 127.0.0.1 <- Comedia: yes 127.0.0.1 <- VideoSupport: yes 127.0.0.1 <- TextSupport: no 127.0.0.1 <- ACL: yes 127.0.0.1 <- Status: OK (127 ms) 127.0.0.1 <- RealtimeDevice: no 127.0.0.1 <- Description: It's blessed into class FOP2::Extension ++ SET QUALIFY for SIP/5203 to ok ++ GET QUALIFY for SIP/5203 = ok END HANDLING AMI EVENT channel SIP/5203, command qualify, data ok, slot 0 127.0.0.1 <- Event: PeerEntry 127.0.0.1 <- Channeltype: SIP 127.0.0.1 <- ObjectName: 5296644656GW1 127.0.0.1 <- ChanObjectType: peer 127.0.0.1 <- IPaddress: 65.254.44.194 127.0.0.1 <- IPport: 5060 127.0.0.1 <- Dynamic: no 127.0.0.1 <- AutoForcerport: no 127.0.0.1 <- Forcerport: yes 127.0.0.1 <- AutoComedia: no 127.0.0.1 <- Comedia: yes 127.0.0.1 <- VideoSupport: yes 127.0.0.1 <- TextSupport: no 127.0.0.1 <- ACL: no 127.0.0.1 <- Status: OK (38 ms) 127.0.0.1 <- RealtimeDevice: no 127.0.0.1 <- Description: It's blessed into class FOP2::Extension ++ SET QUALIFY for SIP/5296644656GW1 to ok ++ GET QUALIFY for SIP/5296644656GW1 = ok END HANDLING AMI EVENT channel SIP/5296644656GW1, command qualify, data ok, slot 0 ** DEMO MODE -- data discarded - 18 qualify ok 0 127.0.0.1 <- Event: PeerEntry 127.0.0.1 <- Channeltype: SIP 127.0.0.1 <- ObjectName: 5296644656GW2 127.0.0.1 <- ChanObjectType: peer 127.0.0.1 <- IPaddress: 74.81.71.18 127.0.0.1 <- IPport: 5060 127.0.0.1 <- Dynamic: no 127.0.0.1 <- AutoForcerport: no 127.0.0.1 <- Forcerport: yes 127.0.0.1 <- AutoComedia: no 127.0.0.1 <- Comedia: yes 127.0.0.1 <- VideoSupport: yes 127.0.0.1 <- TextSupport: no 127.0.0.1 <- ACL: no 127.0.0.1 <- Status: OK (52 ms) 127.0.0.1 <- RealtimeDevice: no 127.0.0.1 <- Description: It's blessed into class FOP2::Extension ++ SET QUALIFY for SIP/5296644656GW2 to ok ++ GET QUALIFY for SIP/5296644656GW2 = ok END HANDLING AMI EVENT channel SIP/5296644656GW2, command qualify, data ok, slot 0 ** DEMO MODE -- data discarded - 17 qualify ok 0 127.0.0.1 <- Event: PeerEntry 127.0.0.1 <- Channeltype: SIP 127.0.0.1 <- ObjectName: 5312 127.0.0.1 <- ChanObjectType: peer 127.0.0.1 <- IPaddress: 90.124.123.123 127.0.0.1 <- IPport: 1851 127.0.0.1 <- Dynamic: yes 127.0.0.1 <- AutoForcerport: no 127.0.0.1 <- Forcerport: yes 127.0.0.1 <- AutoComedia: no 127.0.0.1 <- Comedia: yes 127.0.0.1 <- VideoSupport: yes 127.0.0.1 <- TextSupport: no 127.0.0.1 <- ACL: yes 127.0.0.1 <- Status: OK (205 ms) 127.0.0.1 <- RealtimeDevice: no 127.0.0.1 <- Description: It's blessed into class FOP2::Extension ++ SET QUALIFY for SIP/5312 to ok ++ GET QUALIFY for SIP/5312 = ok END HANDLING AMI EVENT channel SIP/5312, command qualify, data ok, slot 0 127.0.0.1 <- Event: PeerEntry 127.0.0.1 <- Channeltype: SIP 127.0.0.1 <- ObjectName: 5313 127.0.0.1 <- ChanObjectType: peer 127.0.0.1 <- IPaddress: 90.124.123.123 127.0.0.1 <- IPport: 1844 127.0.0.1 <- Dynamic: yes 127.0.0.1 <- AutoForcerport: no 127.0.0.1 <- Forcerport: yes 127.0.0.1 <- AutoComedia: no 127.0.0.1 <- Comedia: yes 127.0.0.1 <- VideoSupport: yes 127.0.0.1 <- TextSupport: no 127.0.0.1 <- ACL: yes 127.0.0.1 <- Status: OK (197 ms) 127.0.0.1 <- RealtimeDevice: no 127.0.0.1 <- Description: It's blessed into class FOP2::Extension ++ SET QUALIFY for SIP/5313 to ok ++ GET QUALIFY for SIP/5313 = ok END HANDLING AMI EVENT channel SIP/5313, command qualify, data ok, slot 0 127.0.0.1 <- Event: PeerEntry 127.0.0.1 <- Channeltype: SIP 127.0.0.1 <- ObjectName: G200AG 127.0.0.1 <- ChanObjectType: peer 127.0.0.1 <- IPaddress: 10.1.1.185 127.0.0.1 <- IPport: 5060 127.0.0.1 <- Dynamic: no 127.0.0.1 <- AutoForcerport: no 127.0.0.1 <- Forcerport: no 127.0.0.1 <- AutoComedia: no 127.0.0.1 <- Comedia: no 127.0.0.1 <- VideoSupport: yes 127.0.0.1 <- TextSupport: no 127.0.0.1 <- ACL: no 127.0.0.1 <- Status: Unmonitored 127.0.0.1 <- RealtimeDevice: no 127.0.0.1 <- Description: It's blessed into class FOP2::Extension ++ SET QUALIFY for SIP/G200AG to ok ++ GET QUALIFY for SIP/G200AG = ok END HANDLING AMI EVENT channel SIP/G200AG, command qualify, data ok, slot 0 ** DEMO MODE -- data discarded - 19 qualify ok 0 127.0.0.1 <- Event: PeerEntry 127.0.0.1 <- Channeltype: SIP 127.0.0.1 <- ObjectName: G200AN 127.0.0.1 <- ChanObjectType: peer 127.0.0.1 <- IPaddress: 10.1.1.183 127.0.0.1 <- IPport: 5060 127.0.0.1 <- Dynamic: no 127.0.0.1 <- AutoForcerport: no 127.0.0.1 <- Forcerport: no 127.0.0.1 <- AutoComedia: no 127.0.0.1 <- Comedia: no 127.0.0.1 <- VideoSupport: yes 127.0.0.1 <- TextSupport: no 127.0.0.1 <- ACL: no 127.0.0.1 <- Status: Unmonitored 127.0.0.1 <- RealtimeDevice: no 127.0.0.1 <- Description: It's blessed into class FOP2::Extension ++ SET QUALIFY for SIP/G200AN to ok ++ GET QUALIFY for SIP/G200AN = ok END HANDLING AMI EVENT channel SIP/G200AN, command qualify, data ok, slot 0 ** DEMO MODE -- data discarded - 20 qualify ok 0 127.0.0.1 <- Event: PeerlistComplete 127.0.0.1 <- EventList: Complete 127.0.0.1 <- ListItems: 10 127.0.0.1 <- Response: Success 127.0.0.1 <- EventList: start 127.0.0.1 <- Message: Peer status list will follow 127.0.0.1 <- Event: PeerEntry 127.0.0.1 <- Channeltype: IAX2 127.0.0.1 <- ObjectName: 5315 127.0.0.1 <- ChanObjectType: peer 127.0.0.1 <- IPaddress: (null) 127.0.0.1 <- IPport: 0 127.0.0.1 <- Dynamic: yes 127.0.0.1 <- Trunk: no 127.0.0.1 <- Encryption: no 127.0.0.1 <- Status: UNKNOWN 127.0.0.1 <- Description: It's blessed into class FOP2::Extension ++ SET QUALIFY for IAX2/5315 to notok ++ GET QUALIFY for IAX2/5315 = notok END HANDLING AMI EVENT channel IAX2/5315, command qualify, data notok, slot 0 127.0.0.1 <- Event: PeerEntry 127.0.0.1 <- Channeltype: IAX2 127.0.0.1 <- ObjectName: 5318 127.0.0.1 <- ChanObjectType: peer 127.0.0.1 <- IPaddress: 90.124.123.123 127.0.0.1 <- IPport: 1829 127.0.0.1 <- Dynamic: yes 127.0.0.1 <- Trunk: no 127.0.0.1 <- Encryption: no 127.0.0.1 <- Status: OK (187 ms) 127.0.0.1 <- Description: It's blessed into class FOP2::Extension ++ SET QUALIFY for IAX2/5318 to ok ++ GET QUALIFY for IAX2/5318 = ok END HANDLING AMI EVENT channel IAX2/5318, command qualify, data ok, slot 0 127.0.0.1 <- Event: PeerEntry 127.0.0.1 <- Channeltype: IAX2 127.0.0.1 <- ObjectName: 5319 127.0.0.1 <- ChanObjectType: peer 127.0.0.1 <- IPaddress: (null) 127.0.0.1 <- IPport: 0 127.0.0.1 <- Dynamic: yes 127.0.0.1 <- Trunk: no 127.0.0.1 <- Encryption: no 127.0.0.1 <- Status: UNKNOWN 127.0.0.1 <- Description: It's blessed into class FOP2::Extension ++ SET QUALIFY for IAX2/5319 to notok ++ GET QUALIFY for IAX2/5319 = notok END HANDLING AMI EVENT channel IAX2/5319, command qualify, data notok, slot 0 127.0.0.1 <- Event: PeerEntry 127.0.0.1 <- Channeltype: IAX2 127.0.0.1 <- ObjectName: iax-fax0 127.0.0.1 <- ChanObjectType: peer 127.0.0.1 <- IPaddress: 127.0.0.1 127.0.0.1 <- IPport: 4570 127.0.0.1 <- Dynamic: no 127.0.0.1 <- Trunk: no 127.0.0.1 <- Encryption: no 127.0.0.1 <- Status: UNREACHABLE 127.0.0.1 <- Description: Not a reference at all PEER ENTRY IAX2/IAX-FAX0 no definido 127.0.0.1 <- Event: PeerEntry 127.0.0.1 <- Channeltype: IAX2 127.0.0.1 <- ObjectName: iax-fax1 127.0.0.1 <- ChanObjectType: peer 127.0.0.1 <- IPaddress: 127.0.0.1 127.0.0.1 <- IPport: 4571 127.0.0.1 <- Dynamic: no 127.0.0.1 <- Trunk: no 127.0.0.1 <- Encryption: no 127.0.0.1 <- Status: UNREACHABLE 127.0.0.1 <- Description: Not a reference at all PEER ENTRY IAX2/IAX-FAX1 no definido 127.0.0.1 <- Event: PeerEntry 127.0.0.1 <- Channeltype: IAX2 127.0.0.1 <- ObjectName: iax-fax2 127.0.0.1 <- ChanObjectType: peer 127.0.0.1 <- IPaddress: 127.0.0.1 127.0.0.1 <- IPport: 4572 127.0.0.1 <- Dynamic: no 127.0.0.1 <- Trunk: no 127.0.0.1 <- Encryption: no 127.0.0.1 <- Status: UNREACHABLE 127.0.0.1 <- Description: Not a reference at all PEER ENTRY IAX2/IAX-FAX2 no definido 127.0.0.1 <- Event: PeerEntry 127.0.0.1 <- Channeltype: IAX2 127.0.0.1 <- ObjectName: iax-fax3 127.0.0.1 <- ChanObjectType: peer 127.0.0.1 <- IPaddress: 127.0.0.1 127.0.0.1 <- IPport: 4573 127.0.0.1 <- Dynamic: no 127.0.0.1 <- Trunk: no 127.0.0.1 <- Encryption: no 127.0.0.1 <- Status: UNREACHABLE 127.0.0.1 <- Description: Not a reference at all PEER ENTRY IAX2/IAX-FAX3 no definido 127.0.0.1 <- Event: PeerEntry 127.0.0.1 <- Channeltype: IAX2 127.0.0.1 <- ObjectName: 4000 127.0.0.1 <- ChanObjectType: peer 127.0.0.1 <- IPaddress: (null) 127.0.0.1 <- IPport: 0 127.0.0.1 <- Dynamic: yes 127.0.0.1 <- Trunk: no 127.0.0.1 <- Encryption: no 127.0.0.1 <- Status: UNKNOWN 127.0.0.1 <- Description: It's blessed into class FOP2::Extension ++ SET QUALIFY for IAX2/4000 to notok ++ GET QUALIFY for IAX2/4000 = notok END HANDLING AMI EVENT channel IAX2/4000, command qualify, data notok, slot 0 127.0.0.1 <- Event: PeerlistComplete 127.0.0.1 <- EventList: Complete 127.0.0.1 <- ListItems: 8 127.0.0.1 <- Response: Success 127.0.0.1 <- Message: Parked calls will follow 127.0.0.1 <- Event: ParkedCallsComplete 127.0.0.1 <- Total: 0 127.0.0.1 <- Response: Follows 127.0.0.1 <- Privilege: Command 127.0.0.1 <- ActionID: 5 127.0.0.1 <- No such command 'meetme list 2664 concise' (type 'core show help meetme list' for other possible commands) --END COMMAND-- 127.0.0.1 <- Response: Error 127.0.0.1 <- ActionID: 6 127.0.0.1 <- Message: No active conferences. It's blessed into class FOP2::Conference ++ LETS FREFRESH CONFBRIDGE CONFERENCE/2664 ** CONFERENCE MEMBER LIST start ** CONFERENCE MEMBER LIST devuelve [ ] FIN handle_ami_response canal CONFERENCE/2664, comando members, datos WyBd, slot 127.0.0.1 <- Response: Follows 127.0.0.1 <- Privilege: Command 127.0.0.1 <- ActionID: 7 127.0.0.1 <- No such command 'meetme list 2663 concise' (type 'core show help meetme list' for other possible commands) --END COMMAND-- 127.0.0.1 <- Response: Error 127.0.0.1 <- ActionID: 8 127.0.0.1 <- Message: No active conferences. It's blessed into class FOP2::Conference ++ LETS FREFRESH CONFBRIDGE CONFERENCE/2663 ** CONFERENCE MEMBER LIST start ** CONFERENCE MEMBER LIST devuelve [ ] FIN handle_ami_response canal CONFERENCE/2663, comando members, datos WyBd, slot 127.0.0.1 <- Response: Follows 127.0.0.1 <- Privilege: Command 127.0.0.1 <- ActionID: 9 127.0.0.1 <- 0 results found. --END COMMAND-- 127.0.0.1 <- Response: Follows 127.0.0.1 <- Privilege: Command 127.0.0.1 <- ActionID: 10 127.0.0.1 <- 0 results found. --END COMMAND-- 127.0.0.1 <- Response: Success 127.0.0.1 <- ActionID: 11 127.0.0.1 <- AMIversion: 1.3 127.0.0.1 <- AsteriskVersion: 11.9.0 127.0.0.1 <- SystemName: 127.0.0.1 <- CoreMaxCalls: 0 127.0.0.1 <- CoreMaxLoadAvg: 0.000000 127.0.0.1 <- CoreRunUser: 127.0.0.1 <- CoreRunGroup: 127.0.0.1 <- CoreMaxFilehandles: 0 127.0.0.1 <- CoreRealTimeEnabled: No 127.0.0.1 <- CoreCDRenabled: Yes 127.0.0.1 <- CoreHTTPenabled: No 127.0.0.1 <- Response: Success 127.0.0.1 <- ActionID: 12 127.0.0.1 <- Message: Mailbox Message Count 127.0.0.1 <- Mailbox: 2517@default 127.0.0.1 <- UrgMessages: 0 127.0.0.1 <- NewMessages: 27 127.0.0.1 <- OldMessages: 0 It's blessed into class FOP2::Extension It's blessed into class FOP2::Extension It's blessed into class FOP2::Extension ++ GET SERVER for SIP/2250 = localhost ** QUERY UNPOPULATED MAILBOX 2250@default 127.0.0.1 -> Mailbox: 2250@default 127.0.0.1 -> Action: MailboxCount 127.0.0.1 -> ActionID: 16 FIN handle_ami_response canal LOCAL/2517@OUTBOUND-ALLROUTES, comando voicemail, datos 1, slot FIN handle_ami_response canal LOCAL/2517@OUTBOUND-ALLROUTES, comando voicemailcount, datos &vmail_count!27!0, slot 127.0.0.1 <- Response: Error 127.0.0.1 <- ActionID: 13 127.0.0.1 <- Message: Database entry not found It's blessed into class FOP2::Extension ++ GET SERVER for IAX2/5318 = localhost ** QUERY CUSTOM ASTDB 5318 CF para chan IAX2/5318 127.0.0.1 -> Action: DBGet 127.0.0.1 -> Family: CF 127.0.0.1 -> Key: 5318 127.0.0.1 -> ActionID: 17 127.0.0.1 <- Response: Error 127.0.0.1 <- ActionID: 14 127.0.0.1 <- Message: Missing action in request ** Llego un response que falta configurar! MISSING ACTION IN REQUEST HASH(0x63011b0) 127.0.0.1 <- Response: Error 127.0.0.1 <- ActionID: 15 127.0.0.1 <- Message: Missing action in request ** Llego un response que falta configurar! MISSING ACTION IN REQUEST HASH(0x63c4370) 127.0.0.1 <- Response: Success 127.0.0.1 <- ActionID: 16 127.0.0.1 <- Message: Mailbox Message Count 127.0.0.1 <- Mailbox: 2250@default 127.0.0.1 <- UrgMessages: 0 127.0.0.1 <- NewMessages: 0 127.0.0.1 <- OldMessages: 0 It's blessed into class FOP2::Extension It's blessed into class FOP2::Extension It's blessed into class FOP2::Extension ++ GET SERVER for IAX2/4000 = localhost ** QUERY UNPOPULATED MAILBOX 4000@default 127.0.0.1 -> Mailbox: 4000@default 127.0.0.1 -> Action: MailboxCount 127.0.0.1 -> ActionID: 18 FIN handle_ami_response canal SIP/2250, comando voicemail, datos 0, slot FIN handle_ami_response canal SIP/2250, comando voicemailcount, datos &vmail_count!0!0, slot 127.0.0.1 <- Response: Error 127.0.0.1 <- ActionID: 17 127.0.0.1 <- Message: Database entry not found It's blessed into class FOP2::Extension ++ GET SERVER for local/2517@outbound-allroutes = localhost ** QUERY CUSTOM ASTDB 2517 CF para chan LOCAL/2517@OUTBOUND-ALLROUTES 127.0.0.1 -> Action: DBGet 127.0.0.1 -> Family: CF 127.0.0.1 -> Key: 2517 127.0.0.1 -> ActionID: 19 127.0.0.1 <- Response: Success 127.0.0.1 <- ActionID: 18 127.0.0.1 <- Message: Mailbox Message Count 127.0.0.1 <- Mailbox: 4000@default 127.0.0.1 <- UrgMessages: 0 127.0.0.1 <- NewMessages: 0 127.0.0.1 <- OldMessages: 0 It's blessed into class FOP2::Extension It's blessed into class FOP2::Extension It's blessed into class FOP2::Extension ++ GET SERVER for SIP/5313 = localhost ** QUERY UNPOPULATED MAILBOX 5313@default 127.0.0.1 -> Mailbox: 5313@default 127.0.0.1 -> Action: MailboxCount 127.0.0.1 -> ActionID: 20 FIN handle_ami_response canal IAX2/4000, comando voicemail, datos 0, slot FIN handle_ami_response canal IAX2/4000, comando voicemailcount, datos &vmail_count!0!0, slot 127.0.0.1 <- Response: Error 127.0.0.1 <- ActionID: 19 127.0.0.1 <- Message: Database entry not found It's blessed into class FOP2::Extension ++ GET SERVER for local/3100@outbound-allroutes = localhost ** QUERY CUSTOM ASTDB 3100 CF para chan LOCAL/3100@OUTBOUND-ALLROUTES 127.0.0.1 -> Action: DBGet 127.0.0.1 -> Family: CF 127.0.0.1 -> Key: 3100 127.0.0.1 -> ActionID: 21 127.0.0.1 <- Response: Success 127.0.0.1 <- ActionID: 20 127.0.0.1 <- Message: Mailbox Message Count 127.0.0.1 <- Mailbox: 5313@default 127.0.0.1 <- UrgMessages: 0 127.0.0.1 <- NewMessages: 0 127.0.0.1 <- OldMessages: 1 It's blessed into class FOP2::Extension It's blessed into class FOP2::Extension FIN handle_ami_response canal SIP/5313, comando voicemail, datos 2, slot FIN handle_ami_response canal SIP/5313, comando voicemailcount, datos &vmail_count!0!1, slot 127.0.0.1 <- Response: Error 127.0.0.1 <- ActionID: 21 127.0.0.1 <- Message: Database entry not found It's blessed into class FOP2::Extension ++ GET SERVER for SIP/2250 = localhost ** QUERY CUSTOM ASTDB 2250 CF para chan SIP/2250 127.0.0.1 -> Action: DBGet 127.0.0.1 -> Family: CF 127.0.0.1 -> Key: 2250 127.0.0.1 -> ActionID: 22 127.0.0.1 <- Response: Error 127.0.0.1 <- ActionID: 22 127.0.0.1 <- Message: Database entry not found It's blessed into class FOP2::Extension ++ GET SERVER for SIP/5313 = localhost ** QUERY CUSTOM ASTDB 5313 CF para chan SIP/5313 127.0.0.1 -> Action: DBGet 127.0.0.1 -> Family: CF 127.0.0.1 -> Key: 5313 127.0.0.1 -> ActionID: 23 127.0.0.1 <- Response: Error 127.0.0.1 <- ActionID: 23 127.0.0.1 <- Message: Database entry not found It's blessed into class FOP2::Extension ++ GET SERVER for SIP/5203 = localhost ** QUERY CUSTOM ASTDB 5203 CF para chan SIP/5203 127.0.0.1 -> Action: DBGet 127.0.0.1 -> Family: CF 127.0.0.1 -> Key: 5203 127.0.0.1 -> ActionID: 24 127.0.0.1 <- Response: Error 127.0.0.1 <- ActionID: 24 127.0.0.1 <- Message: Database entry not found It's blessed into class FOP2::Extension ++ GET SERVER for IAX2/4000 = localhost ** QUERY CUSTOM ASTDB 4000 CF para chan IAX2/4000 127.0.0.1 -> Action: DBGet 127.0.0.1 -> Family: CF 127.0.0.1 -> Key: 4000 127.0.0.1 -> ActionID: 25 127.0.0.1 <- Response: Error 127.0.0.1 <- ActionID: 25 127.0.0.1 <- Message: Database entry not found It's blessed into class FOP2::Extension ++ GET SERVER for IAX2/5319 = localhost ** QUERY CUSTOM ASTDB 5319 CF para chan IAX2/5319 127.0.0.1 -> Action: DBGet 127.0.0.1 -> Family: CF 127.0.0.1 -> Key: 5319 127.0.0.1 -> ActionID: 26 127.0.0.1 <- Response: Error 127.0.0.1 <- ActionID: 26 127.0.0.1 <- Message: Database entry not found It's blessed into class FOP2::Extension -- TIMER asterisk_ami_connect and async config check Set doing hup to zero ** Asterisk Manager logged in localhost for 3 seconds (Tue Mar 31 09:02:19 2015) -- TIMER asterisk_ami_connect and async config check Set doing hup to zero ** Asterisk Manager logged in localhost for 6 seconds (Tue Mar 31 09:02:22 2015) New client connection from socket AnyEvent::Handle=HASH(0x62406b0) - 192.168.1.253:54735 Flash clients connected: 1 -------------------------------------------------------------------------------------------------- Client 192.168.1.253:54735, user: no user, type: no type -------------------------------------------------------------------------------------------------- 192.168.1.253:54735 <= -- PROCESS_FLASH_COMMAND origen GENERAL accion contexto destino 1 password 192.168.1.253:54735 => { "btn": "0", "cmd": "key", "data": "R8WAuwPYpdQBohf8Q2bXuVyXWY8wIU", "slot": "" } 192.168.1.253:54735 => { "btn": "0", "cmd": "version", "data": "2.29.00!!1", "slot": "" } 192.168.1.253:54735 <= -- PROCESS_FLASH_COMMAND origen 1 accion auth destino 5313 password 71da90c984de996b59e39db4114d63ad ** RECEIVING AUTH REQUEST for 5313 TRYING TO VALIDATE USER 5313 VALIDAR USUARIO 5313@GENERAL validate password using key R8WAuwPYpdQBohf8Q2bXuVyXWY8wIU VALIDAR USUARIO 5313 OK con clave regular (192.168.1.253:54735) 192.168.1.253:54735 => { "btn": "0", "cmd": "correct", "data": "0", "slot": "" } ** SENDING BUTTONS from GENERAL to socket AnyEvent::Handle=HASH(0x62406b0) for client at 192.168.1.253:54735 ** LITE VERSION limited to 15 buttons -- data discarded ** LITE VERSION limited to 15 buttons -- data discarded ** LITE VERSION limited to 15 buttons -- data discarded ** LITE VERSION limited to 15 buttons -- data discarded ** LITE VERSION limited to 15 buttons -- data discarded 192.168.1.253:54735 => { "btn": "0@GENERAL", "cmd": "preferences", "data": "eyAiYXV0b1BvcHVwIjogIiIsImRpc3BsYXlRdWV1ZSI6ICJtYXgiLCJkeW5hbWljTGluZURpc3BsYXkiOiAib24iLCJsYW5ndWFnZSI6ICJlbiIsImxlZnRDb2x1bW5PcmRlciI6ICJib3hfZ3JwMSxib3hfZ3JwMCxib3hfZXh0ZW5zaW9uYm94Iiwibm90aWZ5RHVyYXRpb24iOiAiNiIsInBvcHVwVXJsIjogIiIsInJpZ2h0Q29sdW1uT3JkZXIiOiAiYm94X2FzdGVybmljVGFnYm94LGJveF9zbXNib3gsYm94X3F1ZXVlYm94LGJveF9wYXJrYm94LGJveF9yaW5nZ3JvdXBib3gsYm94X2NvbmZlcmVuY2Vib3gsYm94X3NwZWVjaGJveCxib3hfdHJ1bmtib3giLCJzb3VuZENoYXQiOiAib24iLCJzb3VuZFF1ZXVlIjogIm9uIiwic291bmRSaW5nIjogIiJ9", "slot": "" } 192.168.1.253:54735 => { "btn": "0@GENERAL", "cmd": "vmailpath", "data": "/var/spool/asterisk/voicemail", "slot": "" } 192.168.1.253:54735 => { "btn": "0@GENERAL", "cmd": "permit", "data": "YWxs", "slot": "" } mi perm all = 0 (0) 192.168.1.253:54735 => { "btn": "0@GENERAL", "cmd": "permitbtn", "data": "YWxsITA=", "slot": "" } Trying to send plugin (configonreload) to user 5313 at context GENERAL Sending plugin configonreload to 5313 192.168.1.253:54735 => { "btn": "7@GENERAL", "cmd": "plugin", "data": "Y29uZmlnb25yZWxvYWQhaWYodHlwZW9mIHBsdWdpbmNvbmZpZz09J3VuZGVmaW5lZCcpIHsgcGx1Z2luY29uZmlnID0ge319OwpwbHVnaW5jb25maWdbJ2NvbmZpZ29ucmVsb2FkJ109e307CmlmKHBsdWdpbmNvbmZpZ1snY29uZmlnb25yZWxvYWQnXVsnc2NyaXB0UmVsb2FkJ109PXVuZGVmaW5lZCkgeyBwbHVnaW5jb25maWdbJ2NvbmZpZ29ucmVsb2FkJ11bJ3NjcmlwdFJlbG9hZCddPXt9fTsKcGx1Z2luY29uZmlnWydjb25maWdvbnJlbG9hZCddWydzY3JpcHRSZWxvYWQnXVsnJ109Jy91c3IvYmluL3BocCAtZiAvdmFyL3d3dy9odG1sL2ZvcDIvYWRtaW4vdXBkYXRlX2NvbmYucGhwJzsKCnBsdWdpbnNbJ2NvbmZpZ29ucmVsb2FkJ10gPSAoZnVuY3Rpb24oKSB7CgogICAgcmV0dXJuIHsgCgogICAgICAgIGxvYWRMYW5nOiBmdW5jdGlvbih2YWx1ZXMpIHsKICAgICAgICB9LAoKICAgICAgICBzZXRMYW5nOiBmdW5jdGlvbigpIHsKICAgICAgICB9LAoKICAgICAgICBpbml0OiBmdW5jdGlvbigpIHsKICAgICAgICB9CiAgICB9Cn0oKSk7Cg==", "slot": "0" } Sending style configonreload to 5313 192.168.1.253:54735 => { "btn": "7@GENERAL", "cmd": "style", "data": "", "slot": "0" } Trying to send plugin (presencedndfpbx) to user 5313 at context GENERAL Sending plugin presencedndfpbx to 5313 192.168.1.253:54735 => { "btn": "7@GENERAL", "cmd": "plugin", "data": "cHJlc2VuY2VkbmRmcGJ4IQpwbHVnaW5zWydwcmVzZW5jZWRuZGZwYngnXSA9IChmdW5jdGlvbigpIHsKICAgIHJldHVybiB7IAogICAgICAgIGxvYWRMYW5nOiBmdW5jdGlvbih2YWx1ZXMpIHsKICAgICAgICB9LAogICAgICAgIHNldExhbmc6IGZ1bmN0aW9uKCkgewogICAgICAgIH0sCiAgICAgICAgaW5pdDogZnVuY3Rpb24oKSB7CiAgICAgICAgfQogICAgfQp9KCkpOwo=", "slot": "0" } Sending style presencedndfpbx to 5313 192.168.1.253:54735 => { "btn": "7@GENERAL", "cmd": "style", "data": "", "slot": "0" } Trying to send plugin (changepresence) to user 5313 at context GENERAL Sending plugin changepresence to 5313 192.168.1.253:54735 => { "btn": "7@GENERAL", "cmd": "plugin", "data": "Y2hhbmdlcHJlc2VuY2UhCnBsdWdpbnNbJ2NoYW5nZXByZXNlbmNlJ10gPSAoZnVuY3Rpb24oKSB7CgogICAgLy8gUHJpdmF0ZSB2YXJpYWJsZXMKCiAgICB2YXIgbWVudU9wdGlvbiA9IHsKICAgICAgICAic2V0cHJlc2VuY2UiOiAgICB7IG5hbWU6ICdTZXQgUHJlc2VuY2UnLCBpY29uOiAncHJlc2VuY2UnLCBpdGVtczogeyB9IH0KICAgIH0KCiAgICByZXR1cm4geyAKCiAgICAgICAgbG9hZExhbmc6IGZ1bmN0aW9uKHZhbHVlcykgewogICAgICAgICAgICB2YXIgaGFzaCA9IGhleF9tZDUoc2VjcmV0K2xhc3RrZXkpOwogICAgICAgICAgICBxdWV1ZWRjb21tYW5kID0gIjxtc2cgZGF0YT1cIiIgKyBteXBvc2l0aW9uICsgInxwbHVnaW5sYW5nfCIgKyBsYW5ndWFnZSArICJ+Y2hhbmdlcHJlc2VuY2UiICsgInwiICsgaGFzaCArICJcIiAvPiI7CiAgICAgICAgICAgIHNlbmRjb21tYW5kKCk7CiAgICAgICAgfSwKCiAgICAgICAgc2V0TGFuZzogZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGRlYnVnKCdjaGFuZ2UgcHJlc2VuY2Ugc2V0bGFuZycpOwogICAgICAgICAgICAvLyBjaGFuZ2UgbGFuZ3VhZ2Ugc3RyaW5ncwogICAgICAgICAgICBtZW51T3B0aW9uWydzZXRwcmVzZW5jZSddWyduYW1lJ10gPSBsYW5nLnNldHByZXNlbmNlOwoKICAgICAgICAgICAgLy8gYWRkaW5nIHByZXNlbmNlIG9wdGlvbnMgdG8gdGhlIGNvbnRleHQgbWVudQogICAgICAgICAgICB2YXIgY29udD0wOwogICAgICAgICAgICBmb3IgKHZhciBpdGVtIGluIHByZXNlbmNlKSB7CiAgICAgICAgICAgICAgICBpZiAocHJlc2VuY2UuaGFzT3duUHJvcGVydHkoaXRlbSkpIHsKICAgICAgICAgICAgICAgICAgICBpZihpdGVtPT09IiIpIHsKICAgICAgICAgICAgICAgICAgICAgICBpdGVtUHJpbnQgPSBsYW5nWydhdmFpbGFibGUnXTsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICBpZihsYW5nLmhhc093blByb3BlcnR5KGl0ZW0pKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtUHJpbnQgPSBsYW5nW2l0ZW1dOwogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVByaW50ID0gaXRlbTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBtZW51T3B0aW9uWyJzZXRwcmVzZW5jZSJdWyJpdGVtcyJdWyJzZXRQcmVzZW5jZV4iK2NvbnRdID0geyBuYW1lOiBpdGVtUHJpbnQgfTsKICAgICAgICAgICAgICAgICAgICBjb250Kys7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgfSwKICAgICAgICBzZXRFeHRlbnNpb25NZW51OiBmdW5jdGlvbihpdGVtcykgewogICAgICAgICAgICAvLyBjYWxsZWQgZnJvbSBidWlsZCBleHRlbnNpb24gbWVudSBhcyBjYWxsYmFjawogICAgICAgICAgICBqUXVlcnkuZXh0ZW5kKGl0ZW1zLG1lbnVPcHRpb24pOwogICAgICAgICAgICByZXR1cm4gaXRlbXM7CiAgICAgICAgfSwKICAgICAgICBzZXRQcmVzZW5jZTogZnVuY3Rpb24odGFyZ2V0LHNvdXJjZSkgewoKICAgICAgICAgICAgZGVidWcoInNldCBwcmVzZW5jZSIpOwogICAgICAgICAgICB2YXIgdGhpc2V4dGVuID0gYm90b25pdG9zW3NvdXJjZV1bJ0VYVEVOU0lPTiddOwogICAgICAgICAgICB2YXIgY29udD0wOwogICAgICAgICAgICB2YXIgdmFsdWU9JycKICAgICAgICAgICAgZm9yICh2YXIgaXRlbSBpbiBwcmVzZW5jZSkgewogICAgICAgICAgICAgICAgaWYoY29udCA9PSB0YXJnZXQpIHsKICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGl0ZW07CiAgICAgICAgICAgICAgICAgICAgZGVidWcoJ3B1c28gcHJlc2VuY2lhIGVuICcrdmFsdWUpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgY29udCsrOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZihqUXVlcnkuaW5BcnJheSgnMCcscGVybWlzb3NidG5bJ3ByZXNlbmNlbWFuYWdlciddKT49MCB8fCBqUXVlcnkuaW5BcnJheSgnMCcscGVybWlzb3NidG5bJ2FsbCddKT49MCkgewogICAgICAgICAgICAgICAgdmFyIGhhc2ggPSBoZXhfbWQ1KHNlY3JldCtsYXN0a2V5KTsKICAgICAgICAgICAgICAgIHZhciB2YWx1ZTY0ID0gQmFzZTY0LmVuY29kZSh2YWx1ZSk7CiAgICAgICAgICAgICAgICBxdWV1ZWRjb21tYW5kID0gIjxtc2cgZGF0YT1cIiIrc291cmNlKyJ8c2V0YXN0ZGJ8Zm9wMnN0YXRlfiIrdGhpc2V4dGVuKyJ+Iit2YWx1ZTY0KyJ8IitoYXNoKyJcIiAvPiI7CiAgICAgICAgICAgICAgICBzZW5kY29tbWFuZCgpOwogICAgICAgICAgICB9CgogICAgICAgIH0sCiAgICAgICAgaW5pdDogZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIC8vIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uCiAgICAgICAgICAgIGRlYnVnKCdjaGFuZ2UgcHJlc2VuY2UgaW5pdCcpOwogICAgICAgIH0KICAgIH0KfSgpKTsK", "slot": "0" } Sending style changepresence to 5313 192.168.1.253:54735 => { "btn": "7@GENERAL", "cmd": "style", "data": "LmNvbnRleHQtbWVudS1pdGVtLmljb24tcHJlc2VuY2UgIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4vaW1hZ2VzL3Nwcml0ZXMwMS5wbmcpO2JhY2tncm91bmQtcG9zaXRpb246MCAtMjQwcHg7YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDt9Cg==", "slot": "0" } Trying to send plugin (clock) to user 5313 at context GENERAL Sending plugin clock to 5313 192.168.1.253:54735 => { "btn": "7@GENERAL", "cmd": "plugin", "data": "Y2xvY2shCnBsdWdpbnNbJ2Nsb2NrJ10gPSAoZnVuY3Rpb24oKSB7CgogICAgcmV0dXJuIHsgCgogICAgICAgIGxvYWRMYW5nOiBmdW5jdGlvbih2YWx1ZXMpIHsKICAgICAgICAgICAgdmFyIGhhc2ggPSBoZXhfbWQ1KHNlY3JldCtsYXN0a2V5KTsKICAgICAgICAgICAgcXVldWVkY29tbWFuZCA9ICI8bXNnIGRhdGE9XCIiICsgbXlwb3NpdGlvbiArICJ8cGx1Z2lubGFuZ3wiICsgbGFuZ3VhZ2UgKyAifmNsb2NrIiArICJ8IiArIGhhc2ggKyAiXCIgLz4iOwogICAgICAgICAgICBzZW5kY29tbWFuZCgpOwogICAgICAgIH0sCgogICAgICAgIHNldExhbmc6IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAvLyBUaGlzIG1ldGhvZCBpcyB1c2VkIHRvIGFwcGx5IGEgbGFuZ3VhZ2Ugc3RyaW5ncyB0byBodG1sIGVsZW1lbnRzCiAgICAgICAgfSwKCiAgICAgICAgdXBkYXRlQ2xvY2s6IGZ1bmN0aW9uKCkgewoKICAgICAgICAgICAgdmFyIGN1cnJlbnRUaW1lID0gbmV3IERhdGUgKCApOwoKICAgICAgICAgICAgdmFyIGN1cnJlbnRIb3VycyA9IGN1cnJlbnRUaW1lLmdldEhvdXJzICggKTsKICAgICAgICAgICAgdmFyIGN1cnJlbnRNaW51dGVzID0gY3VycmVudFRpbWUuZ2V0TWludXRlcyAoICk7CiAgICAgICAgICAgIHZhciBjdXJyZW50U2Vjb25kcyA9IGN1cnJlbnRUaW1lLmdldFNlY29uZHMgKCApOwoKICAgICAgICAgICAgLy8gUGFkIHRoZSBtaW51dGVzIGFuZCBzZWNvbmRzIHdpdGggbGVhZGluZyB6ZXJvcywgaWYgcmVxdWlyZWQKICAgICAgICAgICAgY3VycmVudE1pbnV0ZXMgPSAoIGN1cnJlbnRNaW51dGVzIDwgMTAgPyAiMCIgOiAiIiApICsgY3VycmVudE1pbnV0ZXM7CiAgICAgICAgICAgIGN1cnJlbnRTZWNvbmRzID0gKCBjdXJyZW50U2Vjb25kcyA8IDEwID8gIjAiIDogIiIgKSArIGN1cnJlbnRTZWNvbmRzOwoKICAgICAgICAgICAgLy8gQ2hvb3NlIGVpdGhlciAiQU0iIG9yICJQTSIgYXMgYXBwcm9wcmlhdGUKICAgICAgICAgICAgdmFyIHRpbWVPZkRheSA9ICggY3VycmVudEhvdXJzIDwgMTIgKSA/ICJBTSIgOiAiUE0iOwoKICAgICAgICAgICAgLy8gQ29udmVydCB0aGUgaG91cnMgY29tcG9uZW50IHRvIDEyLWhvdXIgZm9ybWF0IGlmIG5lZWRlZAogICAgICAgICAgICBjdXJyZW50SG91cnMgPSAoIGN1cnJlbnRIb3VycyA+IDEyICkgPyBjdXJyZW50SG91cnMgLSAxMiA6IGN1cnJlbnRIb3VyczsKCiAgICAgICAgICAgIC8vIENvbnZlcnQgYW4gaG91cnMgY29tcG9uZW50IG9mICIwIiB0byAiMTIiCiAgICAgICAgICAgIGN1cnJlbnRIb3VycyA9ICggY3VycmVudEhvdXJzID09IDAgKSA/IDEyIDogY3VycmVudEhvdXJzOwoKICAgICAgICAgICAgLy8gQ29tcG9zZSB0aGUgc3RyaW5nIGZvciBkaXNwbGF5CiAgICAgICAgICAgIHZhciBjdXJyZW50VGltZVN0cmluZyA9IGN1cnJlbnRIb3VycyArICI6IiArIGN1cnJlbnRNaW51dGVzICsgIjoiICsgY3VycmVudFNlY29uZHMgKyAiICIgKyB0aW1lT2ZEYXk7CgogICAgICAgICAgICAvLyBVcGRhdGUgdGhlIHRpbWUgZGlzcGxheQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2xvY2siKS5maXJzdENoaWxkLm5vZGVWYWx1ZSA9IGN1cnJlbnRUaW1lU3RyaW5nOwoKICAgICAgICB9LAogICAgICAgIGluaXQ6IGZ1bmN0aW9uKCkgewoKICAgICAgICAgICAgJCggIiNzZWNvbmR0b29sYmFyIiApLmJlZm9yZSggIjxzcGFuIGlkPSdjbG9jayc+Jm5ic3A7PC9zcGFuPiIgKTsKCiAgICAgICAgICAgIHdpbmRvdy5zZXRJbnRlcnZhbChmdW5jdGlvbigpewogICAgICAgICAgICAgICAgcGx1Z2luc1snY2xvY2snXS51cGRhdGVDbG9jaygpOwogICAgICAgICAgICB9LCAxMDAwKTsKICAgICAgICB9CiAgICB9Cn0oKSk7Cg==", "slot": "0" } Sending style clock to 5313 192.168.1.253:54735 => { "btn": "7@GENERAL", "cmd": "style", "data": "I2Nsb2NrIHsKcG9zaXRpb246YWJzb2x1dGU7CnRvcDoxMHB4Owp9Cg==", "slot": "0" } Trying to send plugin (conferencebutton) to user 5313 at context GENERAL Sending plugin conferencebutton to 5313 192.168.1.253:54735 => { "btn": "7@GENERAL", "cmd": "plugin", "data": "Y29uZmVyZW5jZWJ1dHRvbiEKcGx1Z2luc1snY29uZmVyZW5jZWJ1dHRvbiddID0gKGZ1bmN0aW9uKCkgewogICAgLy8gdmFyIHByaXZhdGUgPSBbXTsgCgogICAgcmV0dXJuIHsgCgogICAgICAgIGxvYWRMYW5nOiBmdW5jdGlvbih2YWx1ZXMpIHsKICAgICAgICAgICAgdmFyIGhhc2ggPSBoZXhfbWQ1KHNlY3JldCtsYXN0a2V5KTsKICAgICAgICAgICAgcXVldWVkY29tbWFuZCA9ICI8bXNnIGRhdGE9XCIiICsgbXlwb3NpdGlvbiArICJ8cGx1Z2lubGFuZ3wiICsgbGFuZ3VhZ2UgKyAifmNvbmZlcmVuY2VidXR0b24iICsgInwiICsgaGFzaCArICJcIiAvPiI7CiAgICAgICAgICAgIHNlbmRjb21tYW5kKCk7CiAgICAgICAgfSwKCiAgICAgICAgc2V0TGFuZzogZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIC8vIGNoYW5nZSBsYW5ndWFnZSBzdHJpbmdzCiAgICAgICAgICAgICQoJyNhY3Rpb25fY29uZmVyZW5jZWNhbGwnKS5hdHRyKCd0aXRsZScsbGFuZy5jb25mZXJlbmNlKTsKICAgICAgICAgICAgc2V0VGlwcygkKCcjYWN0aW9uX2NvbmZlcmVuY2VjYWxsJykpOwogICAgICAgIH0sCgogICAgICAgIGVtYmVkOiBmdW5jdGlvbigpIHsKICAgICAgICAgICAgLy8gZW1iZWQgZWxlbWVudHMgaW4gcGFnZSwgbG9hZCBzdHlsZSBmaWxlcwogICAgICAgICAgICBpZigkKCcjYWN0aW9uX2NvbmZlcmVuY2VjYWxsJykubGVuZ3RoID09IDApIHsKICAgICAgICAgICAgICAgIHZhciBhY3Rpb25iYXIgPSAkKCcjY3VzdG9tYmFyJyk7CiAgICAgICAgICAgICAgICBidXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICAgICAgICAgICQoYnV0KS5hdHRyKHtpZDogJ2FjdGlvbl9jb25mZXJlbmNlY2FsbCcsIHRpdGxlOiAnQ29uZmVyZW5jZSd9KS5hZGRDbGFzcygnYWN0aW9uYnV0dG9uIG15Y2xpY2snKTsKICAgICAgICAgICAgICAgIGltZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2ltZycpOwogICAgICAgICAgICAgICAgJChpbWcpLmF0dHIoJ3NyYycsJy4vaW1hZ2VzL3Rvb2xiYXIvY29uZmVyZW5jZS5wbmcnKTsKICAgICAgICAgICAgICAgICQoYnV0KS5hcHBlbmQoaW1nKTsKICAgICAgICAgICAgICAgIGFjdGlvbmJhci5hcHBlbmQoYnV0KTsKICAgICAgICAgICAgfQogICAgICAgIH0sCgogICAgICAgIGFjdGlvbl9jb25mZXJlbmNlY2FsbDogZnVuY3Rpb24odGFyZ2V0KSB7CiAgICAgICAgICAgIGRlYnVnKCdkbyBjb25mZXJlbmNlIHdpdGggJyt0YXJnZXQpOwoKICAgICAgICAgICAgaWYgKG15cG9zaXRpb24gPiAwKSB7CiAgICAgICAgICAgICAgICB2YXIgYm90b24gPSAkKCcjYm90b24nICsgbXlwb3NpdGlvbik7CiAgICAgICAgICAgICAgICB2YXIgbnVtYmVyX3RvX2RpYWw7CiAgICAgICAgICAgICAgICAvLyBMb29rIGZvciB0eXBlZCBudW1iZXIgaW4gdGhlIGRpYWwgdGV4dGJveCBmaWVsZAogICAgICAgICAgICAgICAgaWYgKCQoJyNkaWFsdGV4dCcpWzBdLnZhbHVlLmluZGV4T2YobGFuZy5kaWFsKSA+PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgLy8gUGxhY2Vob2xkZXIgdGV4dCwgd2UgaGF2ZSB0byByZW1vdmUgaXQKICAgICAgICAgICAgICAgICAgICB2YXIgbGFyZ28gPSBsYW5nLmRpYWwubGVuZ3RoOwogICAgICAgICAgICAgICAgICAgIG51bWJlcl90b19kaWFsID0gJCgnI2RpYWx0ZXh0JylbMF0udmFsdWUuc3Vic3RyKGxhcmdvKTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgbnVtYmVyX3RvX2RpYWwgPSAkKCcjZGlhbHRleHQnKVswXS52YWx1ZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIC8vIElmIHRoZSBkaWFsYm94IGlzIGVtcHR5LCBjaGVjayBpZiB3ZSBoYXZlIGEgdGFyZ2V0IHNlbGVjdGVkCiAgICAgICAgICAgICAgICAvLyBhbmQgdXNlIHRoZSB0YXJnZXQgZXh0ZW5zaW9uIG51bWJlcgogICAgICAgICAgICAgICAgaWYgKG51bWJlcl90b19kaWFsID09ICIiKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKHRhcmdldCA+IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyX3RvX2RpYWwgPSBib3Rvbml0b3NbdGFyZ2V0XVsnRVhURU5TSU9OJ107CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKG51bWJlcl90b19kaWFsID09ICIiKSB7CiAgICAgICAgICAgICAgICAgICAgZGVidWcoIldlIGRvIG5vdCBoYXZlIGEgdGFyZ2V0IG51bWJlciB0byBkaWFsLCBleGl0Iik7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGRlYnVnKG51bWJlcl90b19kaWFsKTsKCiAgICAgICAgICAgICAgICBpZiAoYm90b24uaGFzQ2xhc3MoJ2J1c3knKSkgewogICAgICAgICAgICAgICAgICAgIHZhciBoYXNoID0gaGV4X21kNShzZWNyZXQrbGFzdGtleSk7CiAgICAgICAgICAgICAgICAgICAgcXVldWVkY29tbWFuZCA9ICI8bXNnIGRhdGE9XCIiICsgbXlwb3NpdGlvbiArICJ8Y3VzdG9tY29uZmVyZW5jZXwiICsgbnVtYmVyX3RvX2RpYWwgKyAifCIgKyBoYXNoICsgIlwiIC8+IjsKICAgICAgICAgICAgICAgICAgICBzZW5kY29tbWFuZCgpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAvLyBXZSBhcmUgbm90IG9uIGEgY2FsbCwgbGV0cyB0cnkgdG8gYmFyZ2UgaW4KICAgICAgICAgICAgICAgICAgICBib3RvbiA9ICQoJyNib3RvbicgKyB0YXJnZXQpOwogICAgICAgICAgICAgICAgICAgIGlmIChib3Rvbi5oYXNDbGFzcygnYnVzeScpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlcl90b19kaWFsID0gYm90b25pdG9zW215cG9zaXRpb25dWydFWFRFTlNJT04nXTsKICAgICAgICAgICAgICAgICAgICAgICAgcXVldWVkY29tbWFuZCA9ICI8bXNnIGRhdGE9XCIiICsgdGFyZ2V0ICsgInxjdXN0b21jb25mZXJlbmNlfCIgKyBudW1iZXJfdG9fZGlhbCArICJ8IiArIGhhc2ggKyAiXCIgLz4iOwogICAgICAgICAgICAgICAgICAgICAgICBzZW5kY29tbWFuZCgpOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGRlYnVnKCJOb3Igc291cmNlIG9yIHRhcmdldCBleHRlbnNpb25zIGFyZSBidXN5LCBjb25mZXJlbmNlIGNhbiBiZSBkb25lIGlmIHNvbWVvbmUgaXMgb24gYSBjYWxsIG9ubHkiKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KIAogICAgICAgIH0sCgogICAgICAgIGluaXQ6IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAvLyBpbml0aWFsaXphdGlvbiBmdW5jdGlvbgogICAgICAgICAgICB0aGlzLmVtYmVkKCk7CiAgICAgICAgICAgIHRoaXMubG9hZExhbmcoKTsKICAgICAgICB9CiAgICB9Cn0oKSk7Cg==", "slot": "0" } Sending style conferencebutton to 5313 192.168.1.253:54735 => { "btn": "7@GENERAL", "cmd": "style", "data": "", "slot": "0" } Trying to send plugin (holdreport) to user 5313 at context GENERAL Sending plugin holdreport to 5313 192.168.1.253:54735 => { "btn": "7@GENERAL", "cmd": "plugin", "data": "aG9sZHJlcG9ydCEKcGx1Z2luc1snaG9sZHJlcG9ydCddID0gKGZ1bmN0aW9uKCkgewogICAgcmV0dXJuIHsgCiAgICAgICAgbG9hZExhbmc6IGZ1bmN0aW9uKHZhbHVlcykgewogICAgICAgIH0sCiAgICAgICAgc2V0TGFuZzogZnVuY3Rpb24oKSB7CiAgICAgICAgfSwKICAgICAgICBpbml0OiBmdW5jdGlvbigpIHsKICAgICAgICB9CiAgICB9Cn0oKSk7Cg==", "slot": "0" } Sending style holdreport to 5313 192.168.1.253:54735 => { "btn": "7@GENERAL", "cmd": "style", "data": "", "slot": "0" } Trying to send plugin (presencepause) to user 5313 at context GENERAL Sending plugin presencepause to 5313 192.168.1.253:54735 => { "btn": "7@GENERAL", "cmd": "plugin", "data": "cHJlc2VuY2VwYXVzZSEKcGx1Z2luc1sncHJlc2VuY2VwYXVzZSddID0gKGZ1bmN0aW9uKCkgewoKICAgIHJldHVybiB7IAoKICAgICAgICBsb2FkTGFuZzogZnVuY3Rpb24odmFsdWVzKSB7CiAgICAgICAgfSwKICAgICAgICBzZXRMYW5nOiBmdW5jdGlvbigpIHsKICAgICAgICB9LAogICAgICAgIGluaXQ6IGZ1bmN0aW9uKCkgewogICAgICAgIH0KICAgIH0KfSgpKTsK", "slot": "0" } Sending style presencepause to 5313 192.168.1.253:54735 => { "btn": "7@GENERAL", "cmd": "style", "data": "Cg==", "slot": "0" } Trying to send plugin (callforwardfpbx) to user 5313 at context GENERAL Sending plugin callforwardfpbx to 5313 192.168.1.253:54735 => { "btn": "7@GENERAL", "cmd": "plugin", "data": "Y2FsbGZvcndhcmRmcGJ4IQpwbHVnaW5zWydjYWxsZm9yd2FyZGZwYngnXSA9IChmdW5jdGlvbigpIHsKCiAgICAvLyBQcml2YXRlIHZhcmlhYmxlcwoKICAgIHZhciBtZW51T3B0aW9uID0gewogICAgICAgICJzZXRDYWxsRm9yd2FyZCI6IHsgbmFtZTogJ1NldCBDYWxsIEZvcndhcmQnLCBpY29uOiAnc2V0Y2YnIH0sCiAgICB9CgogICAgcmV0dXJuIHsgCgogICAgICAgIGxvYWRMYW5nOiBmdW5jdGlvbih2YWx1ZXMpIHsKICAgICAgICAgICAgdmFyIGhhc2ggPSBoZXhfbWQ1KHNlY3JldCtsYXN0a2V5KTsKICAgICAgICAgICAgcXVldWVkY29tbWFuZCA9ICI8bXNnIGRhdGE9XCIiICsgbXlwb3NpdGlvbiArICJ8cGx1Z2lubGFuZ3wiICsgbGFuZ3VhZ2UgKyAifmNhbGxmb3J3YXJkZnBieCIgKyAifCIgKyBoYXNoICsgIlwiIC8+IjsKICAgICAgICAgICAgc2VuZGNvbW1hbmQoKTsKICAgICAgICB9LAoKICAgICAgICBzZXRMYW5nOiBmdW5jdGlvbigpIHsKICAgICAgICAgICAgZGVidWcoJ2NhbGwgZm9yd2FyZCBzZXRsYW5nJyk7CiAgICAgICAgICAgIC8vIGNoYW5nZSBsYW5ndWFnZSBzdHJpbmdzCiAgICAgICAgICAgIG1lbnVPcHRpb25bJ3NldENhbGxGb3J3YXJkJ11bJ25hbWUnXSA9IGxhbmcuc2V0Y2FsbGZvcndhcmQ7CiAgICAgICAgfSwKCiAgICAgICAgc2V0RXh0ZW5zaW9uTWVudTogZnVuY3Rpb24oaXRlbXMpIHsKICAgICAgICAgICAgLy8gY2FsbGVkIGZyb20gYnVpbGQgZXh0ZW5zaW9uIG1lbnUgYXMgY2FsbGJhY2sKICAgICAgICAgICAgalF1ZXJ5LmV4dGVuZChpdGVtcyxtZW51T3B0aW9uKTsKICAgICAgICAgICAgcmV0dXJuIGl0ZW1zOwogICAgICAgIH0sCgogICAgICAgIHNldENhbGxGb3J3YXJkOiBmdW5jdGlvbih0YXJnZXQsc291cmNlKSB7CgogICAgICAgICAgICBkZWJ1Zygnc2V0IGNhbGwgZm9yd2FyZCcpOwogICAgICAgICAgICB2YXIgdGhpc2V4dGVuID0gYm90b25pdG9zW3NvdXJjZV1bJ0VYVEVOU0lPTiddOwogICAgICAgICAgICB2YXIgY3VycmVudHZhbHVlID0gJCgnI2V4dHJhaW5mbycrc291cmNlKS5hdHRyKCdvbGR0aXRsZScpOwogICAgICAgICAgICBhbGVydGlmeS5wcm9tcHQobGFuZy5lbnRlcmNhbGxmb3J3YXJkKycgJyt0aGlzZXh0ZW4sIGZ1bmN0aW9uIChlLCBzdHIpIHsKICAgICAgICAgICAgICAgIC8vIHN0ciBpcyB0aGUgaW5wdXQgdGV4dAogICAgICAgICAgICAgICAgaWYgKGUpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgaGFzaCA9IGhleF9tZDUoc2VjcmV0K2xhc3RrZXkpOwogICAgICAgICAgICAgICAgICAgIHZhciBzdHJlbmNvZGVkID0gQmFzZTY0LmVuY29kZShzdHIpOwogICAgICAgICAgICAgICAgICAgIHF1ZXVlZGNvbW1hbmQgPSAiPG1zZyBkYXRhPVwiIitzb3VyY2UrInxzZXRhc3RkYnxDRn4iK3RoaXNleHRlbisifiIrc3RyZW5jb2RlZCsifCIraGFzaCsiXCIgLz4iOwogICAgICAgICAgICAgICAgICAgIHNlbmRjb21tYW5kKCk7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIC8vIHVzZXIgY2xpY2tlZCAiY2FuY2VsIgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LGN1cnJlbnR2YWx1ZSk7CiAgICAgICAgfSwKICAgICAgICBpbml0OiBmdW5jdGlvbigpIHsKICAgICAgICAgICAgLy8gaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24KICAgICAgICAgICAgZGVidWcoJ2NhbGwgZm9yd2FyZCBpbml0Jyk7CiAgICAgICAgfQogICAgfQp9KCkpOwo=", "slot": "0" } Sending style callforwardfpbx to 5313 192.168.1.253:54735 => { "btn": "7@GENERAL", "cmd": "style", "data": "LmNvbnRleHQtbWVudS1pdGVtLmljb24tc2V0Y2YgIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4vaW1hZ2VzL3Nwcml0ZXMwMS5wbmcpO2JhY2tncm91bmQtcG9zaXRpb246MCAtMjcycHg7YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDt9Cg==", "slot": "0" } Trying to send plugin (speech) to user 5313 at context GENERAL Sending plugin speech to 5313 192.168.1.253:54735 => { "btn": "7@GENERAL", "cmd": "plugin", "data": "c3BlZWNoIWlmKHR5cGVvZiBwbHVnaW5jb25maWc9PSd1bmRlZmluZWQnKSB7IHBsdWdpbmNvbmZpZyA9IHt9fTsKcGx1Z2luY29uZmlnWydzcGVlY2gnXT17fTsKaWYocGx1Z2luY29uZmlnWydzcGVlY2gnXVsnaGFuZ3VwX3dvcmQnXT09dW5kZWZpbmVkKSB7IHBsdWdpbmNvbmZpZ1snc3BlZWNoJ11bJ2hhbmd1cF93b3JkJ109e319OwpwbHVnaW5jb25maWdbJ3NwZWVjaCddWydoYW5ndXBfd29yZCddWycnXT0naGFuZ3VwJzsKaWYocGx1Z2luY29uZmlnWydzcGVlY2gnXVsnbGFuZ3VhZ2UnXT09dW5kZWZpbmVkKSB7IHBsdWdpbmNvbmZpZ1snc3BlZWNoJ11bJ2xhbmd1YWdlJ109e319OwpwbHVnaW5jb25maWdbJ3NwZWVjaCddWydsYW5ndWFnZSddWycnXT0nZW4tRU4nOwppZihwbHVnaW5jb25maWdbJ3NwZWVjaCddWydhdmFpbGFibGVfd29yZCddPT11bmRlZmluZWQpIHsgcGx1Z2luY29uZmlnWydzcGVlY2gnXVsnYXZhaWxhYmxlX3dvcmQnXT17fX07CnBsdWdpbmNvbmZpZ1snc3BlZWNoJ11bJ2F2YWlsYWJsZV93b3JkJ11bJyddPSdhdmFpbGFibGUnOwppZihwbHVnaW5jb25maWdbJ3NwZWVjaCddWyd0cmFuc2Zlcl93b3JkJ109PXVuZGVmaW5lZCkgeyBwbHVnaW5jb25maWdbJ3NwZWVjaCddWyd0cmFuc2Zlcl93b3JkJ109e319OwpwbHVnaW5jb25maWdbJ3NwZWVjaCddWyd0cmFuc2Zlcl93b3JkJ11bJyddPSd0cmFuc2Zlcic7CmlmKHBsdWdpbmNvbmZpZ1snc3BlZWNoJ11bJ2Rvbm90ZGlzdHVyYl93b3JkJ109PXVuZGVmaW5lZCkgeyBwbHVnaW5jb25maWdbJ3NwZWVjaCddWydkb25vdGRpc3R1cmJfd29yZCddPXt9fTsKcGx1Z2luY29uZmlnWydzcGVlY2gnXVsnZG9ub3RkaXN0dXJiX3dvcmQnXVsnJ109J2RvIG5vdCBkaXN0dXJiJzsKaWYocGx1Z2luY29uZmlnWydzcGVlY2gnXVsnZGlhbF93b3JkJ109PXVuZGVmaW5lZCkgeyBwbHVnaW5jb25maWdbJ3NwZWVjaCddWydkaWFsX3dvcmQnXT17fX07CnBsdWdpbmNvbmZpZ1snc3BlZWNoJ11bJ2RpYWxfd29yZCddWycnXT0nZGlhbCc7CgpwbHVnaW5zWydzcGVlY2gnXSA9IChmdW5jdGlvbigpIHsKCiAgICB2YXIgc3BlZWNobGFuZ3VhZ2UgPSBwbHVnaW5jb25maWdbJ3NwZWVjaCddWydsYW5ndWFnZSddWycnXTsKICAgIHZhciBkaWFsX3dvcmQgPSBwbHVnaW5jb25maWdbJ3NwZWVjaCddWydkaWFsX3dvcmQnXVsnJ107CiAgICB2YXIgdHJhbnNmZXJfd29yZCA9IHBsdWdpbmNvbmZpZ1snc3BlZWNoJ11bJ3RyYW5zZmVyX3dvcmQnXVsnJ107CiAgICB2YXIgaGFuZ3VwX3dvcmQgPSBwbHVnaW5jb25maWdbJ3NwZWVjaCddWydoYW5ndXBfd29yZCddWycnXTsKICAgIHZhciBkb25vdGRpc3R1cmJfd29yZCA9IHBsdWdpbmNvbmZpZ1snc3BlZWNoJ11bJ2Rvbm90ZGlzdHVyYl93b3JkJ11bJyddOwogICAgdmFyIGF2YWlsYWJsZV93b3JkID0gcGx1Z2luY29uZmlnWydzcGVlY2gnXVsnYXZhaWxhYmxlX3dvcmQnXVsnJ107CiAgICB2YXIgcmVjb2duaXRpb247CiAgICB2YXIgcmVjb2duaXppbmc9MDsKCiAgICByZXR1cm4geyAKCiAgICAgICAgbG9hZExhbmc6IGZ1bmN0aW9uKHZhbHVlcykgewogICAgICAgICAgICB2YXIgaGFzaCA9IGhleF9tZDUoc2VjcmV0K2xhc3RrZXkpOwogICAgICAgICAgICBxdWV1ZWRjb21tYW5kID0gIjxtc2cgZGF0YT1cIiIgKyBteXBvc2l0aW9uICsgInxwbHVnaW5sYW5nfCIgKyBsYW5ndWFnZSArICJ+c3BlZWNoIiArICJ8IiArIGhhc2ggKyAiXCIgLz4iOwogICAgICAgICAgICBzZW5kY29tbWFuZCgpOwogICAgICAgIH0sCgogICAgICAgIHNldExhbmc6IGZ1bmN0aW9uKCkgewogICAgICAgICAgICBpZigkKCcjc3BlZWNoVGl0bGUnKS5sZW5ndGggPiAwKSB7CiAgICAgICAgICAgICAgICAkKCcjc3BlZWNoVGl0bGUnKS5odG1sKGxhbmdbJ3NwZWVjaF9pbnB1dCddKTsKICAgICAgICAgICAgICAgICQoJyNzcGVlY2gtaW5wdXQtZmllbGQnKS5hdHRyKCdsYW5nJyxzcGVlY2hsYW5ndWFnZSk7CiAgICAgICAgICAgIH0KICAgICAgICB9LAoKICAgICAgICBlbWJlZDogZnVuY3Rpb24oKSB7CgogICAgICAgICAgICBpZigkKCcjYm94X3NwZWVjaGJveCcpLmxlbmd0aDw9MCkgewogICAgICAgICAgICAgICAgdmFyIGtsb24gPSAkKCAnI2JveF9hc3Rlcm5pY1RhZ2JveCcgKTsKICAgICAgICAgICAgICAgIHZhciBuZXdrbG9uID0ga2xvbi5jbG9uZSgpLmF0dHIoIHsgaWQ6ICdib3hfc3BlZWNoYm94JyB9KS5jc3Moe2Rpc3BsYXk6ICdibG9jayd9KS5pbnNlcnRCZWZvcmUoIGtsb24gKTsKICAgICAgICAgICAgICAgIG5ld2tsb24uZmluZCgnKicpLmVhY2goZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICBpZih0eXBlb2YgJCh0aGlzKS5hdHRyKCdpZCcpID09ICd1bmRlZmluZWQnKSB7CiAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgIGlmKCQodGhpcykuYXR0cignaWQnKT09J3RhZ2NhbGwnKSB7ICQodGhpcykuYXR0cignaWQnLCdzcGVlY2hUaXRsZScpLmh0bWwobGFuZy5zcGVlY2hfaW5wdXQpOyB9CiAgICAgICAgICAgICAgICAgICAgICAgaWYoJCh0aGlzKS5hdHRyKCdpZCcpPT0ndG9nZ2xlLWFzdGVybmljVGFnJykgeyAkKHRoaXMpLmF0dHIoJ2lkJywndG9nZ2xlLXNwZWVjaCcpOyB9CiAgICAgICAgICAgICAgICAgICAgICAgaWYoJCh0aGlzKS5hdHRyKCdpZCcpPT0nYXN0ZXJuaWNUYWcnKSB7ICQodGhpcykuYXR0cignaWQnLCdzcGVlY2gnKS5jc3MoJ3RleHQtYWxpZ24nLCdjZW50ZXInKTsgfQogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8qJCgnI3NwZWVjaCcpLmh0bWwoIjxpbnB1dCBpZD0nc3BlZWNoLWlucHV0LWZpZWxkJyBzcGVlY2ggdHlwZT0ndGV4dCcgeC13ZWJraXQtc3BlZWNoIC8+Iik7Ki8KICAgICAgICAgICAgJCgnI3NwZWVjaCcpLmh0bWwoIjxpbnB1dCBpZD0nc3BlZWNoLWlucHV0LWZpZWxkJyB0eXBlPSd0ZXh0JyAvPjxidXR0b24gdHlwZT0nYnV0dG9uJyBpZD0nc3BlZWNoLW1pYycgY2xhc3M9J3NwZWVjaHJlY29mZicgLz4iKTsKCiAgICAgICAgICAgICQoIiNzcGVlY2gtbWljIikub24oICJjbGljayIsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgaWYocmVjb2duaXppbmc9PTApIHsKICAgICAgICAgICAgICAgICAgICByZWNvZ25pdGlvbi5zdGFydCgpOwogICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgcmVjb2duaXRpb24uc3RvcCgpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CgogICAgICAgICAgICBtYWtlU29ydGFibGUoJ3JpZ2h0Jyk7CgogICAgICAgICAgICBpZih0eXBlb2YobXlwcmVmZXJlbmNlcy5yaWdodENvbHVtbk9yZGVyKT09J3N0cmluZycpIHsKICAgICAgICAgICAgICAgIG9yZGVuYXJEaXYoJ3JpZ2h0X2NvbHVtbicsbXlwcmVmZXJlbmNlcy5yaWdodENvbHVtbk9yZGVyKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdGhpcy5sb2FkTGFuZygpOwogICAgICAgIH0sCgogICAgICAgIGlucHV0Q2hhbmdlOiBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgIGlmIChlLnJlc3VsdHMpIHsgCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMCwgcmVzdWx0OyByZXN1bHQgPSBlLnJlc3VsdHNbaV07ICsraSkgewogICAgICAgICAgICAgICAgICAgIGRlYnVnKHJlc3VsdC51dHRlcmFuY2UsIHJlc3VsdC5jb25maWRlbmNlKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGRlYnVnKCdCZXN0IHJlc3VsdDogJyArIHRoaXMudmFsdWUpOwoKICAgICAgICAgICAgICAgIGlmKHRoaXMudmFsdWUuaW5kZXhPZih0cmFuc2Zlcl93b3JkKT49MCkgewogICAgICAgICAgICAgICAgICAgIHZhciBkZXN0aW5vID0gc3RyaXBOb25OdW1lcmljKHRoaXMudmFsdWUpOwogICAgICAgICAgICAgICAgICAgIGRlYnVnKCJ0cmFuc2ZpZXJvIGEgIitkZXN0aW5vKTsKICAgICAgICAgICAgICAgICAgICBkaWFsKGRlc3Rpbm8pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYodGhpcy52YWx1ZS5pbmRleE9mKGRpYWxfd29yZCk+PTApIHsKICAgICAgICAgICAgICAgICAgICB2YXIgZGVzdGlubyA9IHN0cmlwTm9uTnVtZXJpYyh0aGlzLnZhbHVlKTsKICAgICAgICAgICAgICAgICAgICBkZWJ1ZygidHJhbnNmaWVybyBhICIrZGVzdGlubyk7CiAgICAgICAgICAgICAgICAgICAgZGlhbChkZXN0aW5vKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmKHRoaXMudmFsdWUuaW5kZXhPZihkb25vdGRpc3R1cmJfd29yZCk+PTApIHsKICAgICAgICAgICAgICAgICAgc2V0aW5mbygiRG8gbm90IERpc3R1cmIiKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmKHRoaXMudmFsdWUuaW5kZXhPZihhdmFpbGFibGVfd29yZCk+PTApIHsKICAgICAgICAgICAgICAgICAgc2V0aW5mbygnJyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZih0aGlzLnZhbHVlLmluZGV4T2YoaGFuZ3VwX3dvcmQpPj0wKSB7CiAgICAgICAgICAgICAgICAgICBoYW5ndXAobXlwb3NpdGlvbik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9LAoKICAgICAgICBpbml0OiBmdW5jdGlvbigpIHsKICAgICAgICAgICAgaWYoJCgnI2JveF9zcGVlY2hib3gnKS5sZW5ndGg9PTApIHsKICAgICAgICAgICAgICAgIGlmICgnd2Via2l0U3BlZWNoUmVjb2duaXRpb24nIGluIHdpbmRvdykgewogICAgICAgICAgICAgICAgICAgIHJlY29nbml0aW9uID0gbmV3IHdlYmtpdFNwZWVjaFJlY29nbml0aW9uKCk7CiAgICAgICAgICAgICAgICAgICAgcmVjb2duaXRpb24uY29udGludW91cyA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgcmVjb2duaXRpb24uaW50ZXJpbVJlc3VsdHMgPSBmYWxzZTsKCiAgICAgICAgICAgICAgICAgICAgcmVjb2duaXRpb24ub25zdGFydCA9IGZ1bmN0aW9uKCkgeyAKICAgICAgICAgICAgICAgICAgICAgICAgZGVidWcoJ3NwZWVjaCBzdGFydCcpOyAKICAgICAgICAgICAgICAgICAgICAgICAgcmVjb2duaXppbmc9MTsKICAgICAgICAgICAgICAgICAgICAgICAgJCgnI3NwZWVjaC1taWMnKS5hZGRDbGFzcygnc3BlZWNocmVjb24nKS5yZW1vdmVDbGFzcygnc3BlZWNocmVjb2ZmJyk7IAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICByZWNvZ25pdGlvbi5vbnJlc3VsdCA9IGZ1bmN0aW9uKGV2ZW50KSB7IAogICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IGV2ZW50LnJlc3VsdEluZGV4OyBpIDwgZXZlbnQucmVzdWx0cy5sZW5ndGg7ICsraSkgewogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LnJlc3VsdHNbaV0uaXNGaW5hbCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlYnVnKCdmaW5hbCA9ICcgKyBldmVudC5yZXN1bHRzW2ldWzBdLnRyYW5zY3JpcHQpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBiZXN0bWF0Y2ggPSBldmVudC5yZXN1bHRzW2ldWzBdLnRyYW5zY3JpcHQ7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnI3NwZWVjaC1pbnB1dC1maWVsZCcpLnZhbChiZXN0bWF0Y2gpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGJlc3RtYXRjaC5pbmRleE9mKHRyYW5zZmVyX3dvcmQpPj0wKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBkZXN0aW5vID0gc3RyaXBOb25OdW1lcmljKGJlc3RtYXRjaCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlYnVnKCJ0cmFuc2ZlciB0byAiK2Rlc3Rpbm8pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWFsKGRlc3Rpbm8pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihiZXN0bWF0Y2guaW5kZXhPZihkaWFsX3dvcmQpPj0wKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBkZXN0aW5vID0gc3RyaXBOb25OdW1lcmljKGJlc3RtYXRjaCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlYnVnKCJkaWFsICIrZGVzdGlubyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpYWwoZGVzdGlubyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGJlc3RtYXRjaC5pbmRleE9mKGRvbm90ZGlzdHVyYl93b3JkKT49MCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRpbmZvKCJEbyBub3QgRGlzdHVyYiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihiZXN0bWF0Y2guaW5kZXhPZihhdmFpbGFibGVfd29yZCk+PTApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0aW5mbygnJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGJlc3RtYXRjaC5pbmRleE9mKGhhbmd1cF93b3JkKT49MCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5ndXAobXlwb3NpdGlvbik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVidWcoJ2ludGVyaW0gPSAnICsgZXZlbnQucmVzdWx0c1tpXVswXS50cmFuc2NyaXB0KTsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgIH0gCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIHJlY29nbml0aW9uLm9uZXJyb3IgPSBmdW5jdGlvbihldmVudCkgeyAKICAgICAgICAgICAgICAgICAgICAgICAgZGVidWcoJ2Vycm9yJyk7IAogICAgICAgICAgICAgICAgICAgICAgICAkKCcjc3BlZWNoLW1pYycpLnJlbW92ZUNsYXNzKCdzcGVlY2hyZWNvbicpLmFkZENsYXNzKCdzcGVlY2hyZWNvZmYnKTsgCiAgICAgICAgICAgICAgICAgICAgICAgIHJlY29nbml6aW5nPTA7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIHJlY29nbml0aW9uLm9uZW5kID0gZnVuY3Rpb24oKSB7IAogICAgICAgICAgICAgICAgICAgICAgICBkZWJ1Zygnc3BlZWNoIGVuZCcpOyAKICAgICAgICAgICAgICAgICAgICAgICAgJCgnI3NwZWVjaC1taWMnKS5yZW1vdmVDbGFzcygnc3BlZWNocmVjb24nKS5hZGRDbGFzcygnc3BlZWNocmVjb2ZmJyk7IAogICAgICAgICAgICAgICAgICAgICAgICByZWNvZ25pemluZz0wOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICByZWNvZ25pdGlvbi5sYW5nID0gc3BlZWNobGFuZ3VhZ2U7CiAgICAgICAgICAgICAgICAgICAgcmVjb2duaXRpb24uc3RhcnQoKTsKCiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbWJlZCgpOwoKICAgICAgICAgICAgICAgICAgICAvL3ZhciBpbnB1dCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ1t4LXdlYmtpdC1zcGVlY2hdJyk7CiAgICAgICAgICAgICAgICAgICAgLy9pbnB1dC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCB0aGlzLmlucHV0Q2hhbmdlLCBmYWxzZSk7CiAgICAgICAgICAgICAgICAgICAgLy9pbnB1dC5hZGRFdmVudExpc3RlbmVyKCd3ZWJraXRzcGVlY2hjaGFuZ2UnLCB0aGlzLmlucHV0Q2hhbmdlLCBmYWxzZSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0oKSk7Cg==", "slot": "0" } Sending style speech to 5313 192.168.1.253:54735 => { "btn": "7@GENERAL", "cmd": "style", "data": "I3NwZWVjaC1pbnB1dC1maWVsZCB7CndpZHRoOiA3MCU7CmhlaWdodDogMjBweDsKcGFkZGluZzogMTBweCAxNXB4Owpmb250LXNpemU6IDEyMCU7CmJvcmRlci1yYWRpdXM6IDEwcHg7CmJvcmRlcjogMXB4IHNvbGlkICNjY2M7Cm91dGxpbmU6IDA7Cn0KCiNzcGVlY2gtbWljIHsKd2lkdGg6NTBweDsKaGVpZ2h0OjQwcHg7CmJvcmRlci1yYWRpdXM6IDEwcHg7CmJhY2tncm91bmQtY29sb3I6ICNGRkY7CmJvcmRlcjogMXB4IHNvbGlkICNjY2M7Cm91dGxpbmU6MDsKZmxvYXQ6cmlnaHQ7CmJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsKYmFja2dyb3VuZC1wb3NpdGlvbjpyaWdodDsKY3Vyc29yOiBwb2ludGVyOwp9Cgouc3BlZWNocmVjb24gewpiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9naWY7YmFzZTY0LFIwbEdPRGxoTWdBeUFLVXpBSm1abVpxYW1wdWJtNXljbkoyZG5aNmVucCtmbjZDZ29LR2hvYUtpb3FPam82U2twS1dscGFhbXBxZW5wNm1wcWFxcXFxdXJxNnlzcksydHJhNnVyckd4c2JLeXNyT3pzN1cxdGJhMnRybTV1YnE2dXJ5OHZMMjl2YjYrdnIrL3Y4REF3TUhCd2NiR3hzckt5czdPenMvUHo5SFIwZExTMHRQVDA5VFUxTnJhMnR6YzNON2UzdC9mMytEZzRPTGk0dVRrNU9YbDVlZm41Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL3lINUJBRVVBRDhBTEFBQUFBQXlBRElBQUFiK3dKOXdTQ3dhajhpa2NzbHNPcC9RcUhSS3JWcXYyS3gyeSsxNnYrQ3dlRXcreWthZVV4bHBNaVFPQzhlNktETU1CSUtCUWpJZmloUURBWUlDQlRKOVB4MElBb0tDQml1SGlZRUJlWTZRaW93Q2xYMkppNE1HTEphZGphQ2JsNTZrYzV5TUFRV29heDBIb2dDZlpDY2RLa0lkQ2FJQkJpMUNJaHlHWGg4WEhVSWxDNklEQTBNRUV5NWZLQThRUXcyN2VRNGdRakVHQjJFRUNLZ1ZCUVlFMjBJZkR4VmhIQTRSUkRLdUxRVUl1R0VLQ2haSUxBY05HV05hSEdEQWdBUVJHQjhDT0poUTVvVUVCZzBHTEhpZzZNRUJEWDFJVUFoQWdJQUJBeGZ1SGVxR0FNTWhJd2NVZkRoWkJNR0NZeXlIQ0lpd0llYVFFQjFTMk56SnM2Y0t6NTlBZ3dvZFN2UktFQUE3KTsKfQoKLnNwZWVjaHJlY29mZiB7CmJhY2tncm91bmQtaW1hZ2U6IHVybChkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhNZ0F5QU1aZ0FQc0RRL29FUlBzRlJQa0dSZnNHUmZvSFJ2Y0pSdnNJUi9zSlIvc0tTUHNMU2ZzTlN2c1FUZnNUVC9zZFZ1SXFXdndqVzl3MFgvd3ladFEvWnVRN1ovdzFhZGRDYU10T2J1Sk5kTUZkZC94T2U4Umdlc1ZoZThaaWZQeFVmOVZ4aTZ4K2l2MW9qcVNMa2FTTWt2MTBsK3A5bWFxU21KbVptWnFhbXEyVm01dWJtNXljbkoyZG5lcUduLzJCb1o2ZW5wK2ZuNkNnb0tHaG9hS2lvcU9qbzZTa3BLV2xwYWFtcHFlbnA2bXBxZjJRcktxcXFxdXJxNnlzcksydHJhNnVydjJaczdHeHNiT3pzN1cxdGJhMnRybTV1YnE2dXJ5OHZMMjl2YjYrdnIrL3YvNnR3c0RBd01IQndjYkd4c3JLeXM3T3p2N0EwTkhSMGRMUzB0UFQwOVRVMVA3TzJ0cmEydDdlM3QvZjMrRGc0T0xpNHVUazVPWGw1ZWZuNS8vbTdmLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL3lINUJBRVVBSDhBTEFBQUFBQXlBRElBQUFmK2dIK0NnNFNGaG9lSWlZcUxqSTJPajVDUmtwT1VsWmFYbUptYW01eWRucCtnb1poZlZsK2lqRkVPQUJxblhrOUpVNFk2RFFBQURLSlNNRE14TlRpRVVRcTFDQ1NoWGpBcktpb3JORDJDczdVS1VhSk9OQ3NvMXlvdlhsRzBBQTA2cDBneUt0ZlhNQ1hCM3RMaE10WW95aHNFdFEzcjdPUW9JQkVEdFFuZ3A0TGl5SWw0VUl0QWhTWC9CZ1ZFTWFGV2dCWUpDWWtiTVNFQWdBRWJzRVJVYUNKQ0xRTVpYbWpjK0FlSmhWb0RNcHlBTVZMVUZDUlgvbnpCVUF0QUJuTlpCRGs1NHVXVEVpRkkvb1NvZWVIYWloV0RXUGpROG9sS2poMUFhblpJdGdJSEUwRmRZTVFJeFlKRGdWb2hncnlBd2VLcUlDVTVnb1Q2c0ErQUIxT0ZYbHIreWZKQ1JzeFBRQmJVb21ES0VKWVlONGlBY2xGTGdJVVVOcUFRNHFJRUJRNGZuNzRNQmJ1bGg0MGJLMnJrR0pjalJwSElIbXFHNkF2bEJ3b1dMR0RBRUhLM1U1UUtOVjBZeWlwalNLZ29FR29kQUlJb0JnMGxvTGpWWXNBYmtZd2FRVDhSVnFkSUJROGp3U1ZBOEplb0NaSXFKTE5yMzg2OXUvZnY0TU9MSDc4cEVBQTcpOwp9Cg==", "slot": "0" } 192.168.1.253:54735 => { "btn": "21@GENERAL", "cmd": "zbuttons", "data": "MUBHRU5FUkFMfGJ1dHRvbnwhRVhURU5TSU9OPTI2NjQhUFJJVkFDWT1OT05FIUxBQkVMPUNvbmZlcmVuY2UhTUFJTkNIQU5ORUw9Q09ORkVSRU5DRS8yNjY0IUFVVE9BTlNXRVJIRUFERVI9X19TSVBBRERIRUFERVI1MT1DYWxsLUluZm89YW5zd2VyLWFmdGVyPTAuMDAxIVRZUEU9Y29uZmVyZW5jZSFDT05URVhUPWV4dC1tZWV0bWUKMkBHRU5FUkFMfGJ1dHRvbnwhRVhURU5TSU9OPTI2NjMhUFJJVkFDWT1OT05FIUxBQkVMPUNPTkYhTUFJTkNIQU5ORUw9Q09ORkVSRU5DRS8yNjYzIUFVVE9BTlNXRVJIRUFERVI9X19TSVBBRERIRUFERVI1MT1DYWxsLUluZm89YW5zd2VyLWFmdGVyPTAuMDAxIVRZUEU9Y29uZmVyZW5jZSFDT05URVhUPWV4dC1tZWV0bWUKM0BHRU5FUkFMfGJ1dHRvbnwhUFJJVkFDWT1OT05FIUVYVEVOVk9JQ0VNQUlMPSMyMjUxN0Bmcm9tLWludGVybmFsIUxBQkVMPUpvaGFubiFNQUlOQ0hBTk5FTD1sb2NhbC8yNTE3QG91dGJvdW5kLWFsbHJvdXRlcyFRVUVVRUNPTlRFWFQ9ZnJvbS1xdWV1ZSFDVVNUT01BU1REQj1DRi8yNTE3IVRZUEU9ZXh0ZW5zaW9uIVFVRVVFQ0hBTk5FTD1Mb2NhbC8yNTE3QGZyb20tcXVldWUvbnxQZW5hbHR5PTB8TWVtYmVyTmFtZT1Kb2hhbm58U3RhdGVJbnRlcmZhY2U9bG9jYWwvMjUxN0BvdXRib3VuZC1hbGxyb3V0ZXMhRU1BSUw9am9oYW5uLnp1cm5lckBzeWRhLm9yZyFFWFRFTlNJT049MjUxNyFFWFRFUk5BTD05ODY2MjQwMiFNQUlMQk9YPTI1MTdAZGVmYXVsdCFBVVRPQU5TV0VSSEVBREVSPV9fU0lQQURESEVBREVSNTE9Q2FsbC1JbmZvPWFuc3dlci1hZnRlcj0wLjAwMSFDT05URVhUPWZyb20taW50ZXJuYWwKNEBHRU5FUkFMfGJ1dHRvbnwhUFJJVkFDWT1OT05FIUxBQkVMPXRlc3QhTUFJTkNIQU5ORUw9bG9jYWwvMzEwMEBvdXRib3VuZC1hbGxyb3V0ZXMhUVVFVUVDT05URVhUPWZyb20tcXVldWUhQ1VTVE9NQVNUREI9Q0YvMzEwMCFUWVBFPWV4dGVuc2lvbiFRVUVVRUNIQU5ORUw9TG9jYWwvMzEwMEBmcm9tLXF1ZXVlL258UGVuYWx0eT0wfE1lbWJlck5hbWU9dGVzdHxTdGF0ZUludGVyZmFjZT1sb2NhbC8zMTAwQG91dGJvdW5kLWFsbHJvdXRlcyFFWFRFTlNJT049MzEwMCFBVVRPQU5TV0VSSEVBREVSPV9fU0lQQURESEVBREVSNTE9Q2FsbC1JbmZvPWFuc3dlci1hZnRlcj0wLjAwMSFDT05URVhUPWZyb20taW50ZXJuYWwKNUBHRU5FUkFMfGJ1dHRvbnwhUFJJVkFDWT1OT05FIUdST1VQPUFzdGVyaXNrIUxBQkVMPUpvaGFubiFNQUlOQ0hBTk5FTD1TSVAvNTMxMiFRVUVVRUNPTlRFWFQ9ZnJvbS1xdWV1ZSFDVVNUT01BU1REQj1DRi81MzEyIVRZUEU9ZXh0ZW5zaW9uIVFVRVVFQ0hBTk5FTD1Mb2NhbC81MzEyQGZyb20tcXVldWUvbnxQZW5hbHR5PTB8TWVtYmVyTmFtZT1Kb2hhbm58U3RhdGVJbnRlcmZhY2U9U0lQLzUzMTIhRVhURU5TSU9OPTUzMTIhQVVUT0FOU1dFUkhFQURFUj1fX1NJUEFEREhFQURFUjUxPUNhbGwtSW5mbz1hbnN3ZXItYWZ0ZXI9MC4wMDEhQ09OVEVYVD1mcm9tLWludGVybmFsCjZAR0VORVJBTHxidXR0b258IVBSSVZBQ1k9Tk9ORSFHUk9VUD1Bc3RlcmlzayFMQUJFTD1Kb2hhbm4gTW9iaWxlIU1BSU5DSEFOTkVMPUlBWDIvNTMxOCFRVUVVRUNPTlRFWFQ9ZnJvbS1xdWV1ZSFDVVNUT01BU1REQj1DRi81MzE4IVRZUEU9ZXh0ZW5zaW9uIVFVRVVFQ0hBTk5FTD1Mb2NhbC81MzE4QGZyb20tcXVldWUvbnxQZW5hbHR5PTB8TWVtYmVyTmFtZT1Kb2hhbm4gTW9iaWxlfFN0YXRlSW50ZXJmYWNlPUlBWDIvNTMxOCFFTUFJTD1Kb2hhbm4uWnVybmVyQHN5ZGEub3JnIUVYVEVOU0lPTj01MzE4IUVYVEVSTkFMPTk4NjYyNDAyIUFVVE9BTlNXRVJIRUFERVI9X19TSVBBRERIRUFERVI1MT1DYWxsLUluZm89YW5zd2VyLWFmdGVyPTAuMDAxIU9SSUdJTkFURUNIQU5ORUw9TG9jYWwvKjgwNTMxOEBmcm9tLWludGVybmFsIUNPTlRFWFQ9ZnJvbS1pbnRlcm5hbAo3QEdFTkVSQUx8YnV0dG9ufCFQUklWQUNZPU5PTkUhTEFCRUw9Sm9oYW5uIFJlbW90ZSBPZmZpY2UhTUFJTkNIQU5ORUw9U0lQLzUzMTMhUVVFVUVDT05URVhUPWZyb20tcXVldWUhQ1VTVE9NQVNUREI9Q0YvNTMxMyFRVUVVRUNIQU5ORUw9TG9jYWwvNTMxM0Bmcm9tLXF1ZXVlL258UGVuYWx0eT0wfE1lbWJlck5hbWU9Sm9oYW5uIFJlbW90ZSBPZmZpY2V8U3RhdGVJbnRlcmZhY2U9U0lQLzUzMTMmTG9jYWwvNTMxM0Bmcm9tLXF1ZXVlL258UGVuYWx0eT0wfE1lbWJlck5hbWU9Sm9oYW5uIFJlbW90ZSBPZmZpY2V8U3RhdGVJbnRlcmZhY2U9U0lQLzUzMTN8UXVldWU9NDQ0MyZMb2NhbC81MzEzQGZyb20tcXVldWUvbnxQZW5hbHR5PTB8TWVtYmVyTmFtZT1Kb2hhbm4gUmVtb3RlIE9mZmljZXxTdGF0ZUludGVyZmFjZT1TSVAvNTMxM3xRdWV1ZT01MzIwIUVYVEVSTkFMPTk0MzQyMDAwIUFVVE9BTlNXRVJIRUFERVI9X19TSVBBRERIRUFERVI1MT1DYWxsLUluZm89YW5zd2VyLWFmdGVyPTAuMDAxIU9SSUdJTkFURUNIQU5ORUw9TG9jYWwvKjgwNTMxM0Bmcm9tLWludGVybmFsIUdST1VQPUFzdGVyaXNrIUVYVEVOVk9JQ0VNQUlMPSMyNTMxM0Bmcm9tLWludGVybmFsIVRZUEU9ZXh0ZW5zaW9uIUVNQUlMPUpvaGFubi5adXJuZXJAc3lkYS5vcmchRVhURU5TSU9OPTUzMTMhTUFJTEJPWD01MzEzQGRlZmF1bHQhQ09OVEVYVD1mcm9tLWludGVybmFsCjhAR0VORVJBTHxidXR0b258IVBSSVZBQ1k9Tk9ORSFHUk9VUD1Bc3RlcmlzayFFWFRFTlZPSUNFTUFJTD0jMjIyNTBAZnJvbS1pbnRlcm5hbCFMQUJFTD1NYXR0IE9mZmljZSFNQUlOQ0hBTk5FTD1TSVAvMjI1MCFRVUVVRUNPTlRFWFQ9ZnJvbS1xdWV1ZSFDVVNUT01BU1REQj1DRi8yMjUwIVRZUEU9ZXh0ZW5zaW9uIVFVRVVFQ0hBTk5FTD1Mb2NhbC8yMjUwQGZyb20tcXVldWUvbnxQZW5hbHR5PTB8TWVtYmVyTmFtZT1PIE1hdHR8U3RhdGVJbnRlcmZhY2U9U0lQLzIyNTAhRU1BSUw9bWF0dGJAc3lkYS5vcmchRVhURU5TSU9OPTIyNTAhTUFJTEJPWD0yMjUwQGRlZmF1bHQhQVVUT0FOU1dFUkhFQURFUj1fX1NJUEFEREhFQURFUjUxPUNhbGwtSW5mbz1hbnN3ZXItYWZ0ZXI9MC4wMDEhQ09OVEVYVD1mcm9tLWludGVybmFsCjlAR0VORVJBTHxidXR0b258IVBSSVZBQ1k9Tk9ORSFHUk9VUD1Bc3RlcmlzayFMQUJFTD1Qb2x5Y29tIDMhTUFJTkNIQU5ORUw9U0lQLzUyMDMhUVVFVUVDT05URVhUPWZyb20tcXVldWUhQ1VTVE9NQVNUREI9Q0YvNTIwMyFUWVBFPWV4dGVuc2lvbiFRVUVVRUNIQU5ORUw9TG9jYWwvNTIwM0Bmcm9tLXF1ZXVlL258UGVuYWx0eT0wfE1lbWJlck5hbWU9UG9seWNvbSAzfFN0YXRlSW50ZXJmYWNlPVNJUC81MjAzIUVYVEVOU0lPTj01MjAzIUFVVE9BTlNXRVJIRUFERVI9X19TSVBBRERIRUFERVI1MT1DYWxsLUluZm89YW5zd2VyLWFmdGVyPTAuMDAxIUNPTlRFWFQ9ZnJvbS1pbnRlcm5hbAoxMEBHRU5FUkFMfGJ1dHRvbnwhUFJJVkFDWT1OT05FIUdST1VQPUFzdGVyaXNrIUVYVEVOVk9JQ0VNQUlMPSMyNTMxNUBmcm9tLWludGVybmFsIUxBQkVMPVNlYW4gTW9iaWxlIU1BSU5DSEFOTkVMPUlBWDIvNTMxNSFRVUVVRUNPTlRFWFQ9ZnJvbS1xdWV1ZSFDVVNUT01BU1REQj1DRi81MzE1IVRZUEU9ZXh0ZW5zaW9uIVFVRVVFQ0hBTk5FTD1Mb2NhbC81MzE1QGZyb20tcXVldWUvbnxQZW5hbHR5PTB8TWVtYmVyTmFtZT1TZWFuIE1vYmlsZXxTdGF0ZUludGVyZmFjZT1JQVgyLzUzMTUhRU1BSUw9U2Vhbi5aaWdtdW5kQHN5ZGEub3JnIUVYVEVOU0lPTj01MzE1IU1BSUxCT1g9NTMxNUBkZWZhdWx0IUFVVE9BTlNXRVJIRUFERVI9X19TSVBBRERIRUFERVI1MT1DYWxsLUluZm89YW5zd2VyLWFmdGVyPTAuMDAxIUNPTlRFWFQ9ZnJvbS1pbnRlcm5hbAoxMUBHRU5FUkFMfGJ1dHRvbnwhUFJJVkFDWT1OT05FIUdST1VQPUFzdGVyaXNrIUVYVEVOVk9JQ0VNQUlMPSMyNDAwMEBmcm9tLWludGVybmFsIUxBQkVMPVNoZWtoYXIgU3RvbGxlciBNb2JpbGUhTUFJTkNIQU5ORUw9SUFYMi80MDAwIVFVRVVFQ09OVEVYVD1mcm9tLXF1ZXVlIUNVU1RPTUFTVERCPUNGLzQwMDAhVFlQRT1leHRlbnNpb24hUVVFVUVDSEFOTkVMPUxvY2FsLzQwMDBAZnJvbS1xdWV1ZS9ufFBlbmFsdHk9MHxNZW1iZXJOYW1lPVNoZWtoYXIgU3RvbGxlciBNb2JpbGV8U3RhdGVJbnRlcmZhY2U9SUFYMi80MDAwIUVNQUlMPVNoZWtoYXJAc3lkYS5vcmchRVhURU5TSU9OPTQwMDAhTUFJTEJPWD00MDAwQGRlZmF1bHQhQVVUT0FOU1dFUkhFQURFUj1fX1NJUEFEREhFQURFUjUxPUNhbGwtSW5mbz1hbnN3ZXItYWZ0ZXI9MC4wMDEhQ09OVEVYVD1mcm9tLWludGVybmFsCjEyQEdFTkVSQUx8YnV0dG9ufCFQUklWQUNZPU5PTkUhR1JPVVA9QXN0ZXJpc2shTEFCRUw9Wm9pcGVyIFBDIU1BSU5DSEFOTkVMPUlBWDIvNTMxOSFRVUVVRUNPTlRFWFQ9ZnJvbS1xdWV1ZSFDVVNUT01BU1REQj1DRi81MzE5IVRZUEU9ZXh0ZW5zaW9uIVFVRVVFQ0hBTk5FTD1Mb2NhbC81MzE5QGZyb20tcXVldWUvbnxQZW5hbHR5PTB8TWVtYmVyTmFtZT1ab2lwZXIgUEN8U3RhdGVJbnRlcmZhY2U9SUFYMi81MzE5IUVYVEVOU0lPTj01MzE5IUFVVE9BTlNXRVJIRUFERVI9X19TSVBBRERIRUFERVI1MT1DYWxsLUluZm89YW5zd2VyLWFmdGVyPTAuMDAxIUNPTlRFWFQ9ZnJvbS1pbnRlcm5hbAoxM0BHRU5FUkFMfGJ1dHRvbnwhRVhURU5TSU9OPTcwIVBSSVZBQ1k9Tk9ORSFMQUJFTD1Td2l0Y2hib2FyZCBDYWxsIFBhcmshTUFJTkNIQU5ORUw9UEFSSy9kZWZhdWx0IUFVVE9BTlNXRVJIRUFERVI9X19TSVBBRERIRUFERVI1MT1DYWxsLUluZm89YW5zd2VyLWFmdGVyPTAuMDAxIVRZUEU9cGFyayFDT05URVhUPXBhcmtlZGNhbGxzCjE0QEdFTkVSQUx8YnV0dG9ufCFFWFRFTlNJT049NTMyMCFQUklWQUNZPU5PTkUhTEFCRUw9UmVndWxhciBDYWxscyB0byBBdHRlbmRhbnQhTUFJTkNIQU5ORUw9UVVFVUUvNTMyMF5MT0NBTEhPU1QhQVVUT0FOU1dFUkhFQURFUj1fX1NJUEFEREhFQURFUjUxPUNhbGwtSW5mbz1hbnN3ZXItYWZ0ZXI9MC4wMDEhVFlQRT1xdWV1ZSFDT05URVhUPWZyb20taW50ZXJuYWwKMTVAR0VORVJBTHxidXR0b258IUVYVEVOU0lPTj00NDQzIVBSSVZBQ1k9Tk9ORSFMQUJFTD1TZWN1cml0eSFNQUlOQ0hBTk5FTD1RVUVVRS80NDQzXkxPQ0FMSE9TVCFBVVRPQU5TV0VSSEVBREVSPV9fU0lQQURESEVBREVSNTE9Q2FsbC1JbmZvPWFuc3dlci1hZnRlcj0wLjAwMSFUWVBFPXF1ZXVlIUNPTlRFWFQ9ZnJvbS1pbnRlcm5hbAo=", "slot": "" } Send status notification to AnyEvent::Handle=HASH(0x62406b0), user: 5313 192.168.1.253:54735 => { "btn": "0@GENERAL", "cmd": "notionline", "data": "7", "slot": "0" } 192.168.1.253:54735 <= -- PROCESS_FLASH_COMMAND origen 7 accion pluginlang destino en~conferencebutton password 71da90c984de996b59e39db4114d63ad Change language for plugin conferencebutton to en Language file found /var/www/html/fop2/admin/plugins/conferencebutton/lang/en.js 192.168.1.253:54735 => { "btn": "0", "cmd": "setpluginlang", "data": "conferencebutton!bGFuZ1snY29uZmVyZW5jZSddPSdDb25mZXJlbmNlJzsK", "slot": "0" } New client connection from socket AnyEvent::Handle=HASH(0x78bfd30) - 127.0.0.1:44998 Flash clients connected: 2 -------------------------------------------------------------------------------------------------- Client 127.0.0.1:44998, user: no user, type: no type Client 192.168.1.253:54735, user: 5313@GENERAL, type: websocket (AnyEvent::Handle=HASH(0x62406b0)) -------------------------------------------------------------------------------------------------- 127.0.0.1:44998 <= -- PROCESS_FLASH_COMMAND origen GENERAL accion checkauth destino 5313 password 71da90c984de996b59e39db4114d63ad Check Auth ok for 5313 from 127.0.0.1:44998 Client Disconnection - remove client on error from socket AnyEvent::Handle=HASH(0x78bfd30) (127.0.0.1:44998) 192.168.1.253:54735 <= -- PROCESS_FLASH_COMMAND origen 7 accion pluginlang destino en~changepresence password 71da90c984de996b59e39db4114d63ad Change language for plugin changepresence to en Language file found /var/www/html/fop2/admin/plugins/changepresence/lang/en.js 192.168.1.253:54735 => { "btn": "0", "cmd": "setpluginlang", "data": "changepresence!bGFuZ1snc2V0cHJlc2VuY2UnXT0nU2V0IFByZXNlbmNlJzsK", "slot": "0" } 192.168.1.253:54735 <= -- PROCESS_FLASH_COMMAND origen 7 accion pluginlang destino en~clock password 71da90c984de996b59e39db4114d63ad Change language for plugin clock to en Language file found /var/www/html/fop2/admin/plugins/clock/lang/en.js 192.168.1.253:54735 => { "btn": "0", "cmd": "setpluginlang", "data": "clock!bGFuZ1snY2xvY2snXT0nQ2xvY2snOwoK", "slot": "0" } 192.168.1.253:54735 <= -- PROCESS_FLASH_COMMAND origen 7 accion pluginlang destino en~conferencebutton password 71da90c984de996b59e39db4114d63ad Change language for plugin conferencebutton to en Language file found /var/www/html/fop2/admin/plugins/conferencebutton/lang/en.js 192.168.1.253:54735 => { "btn": "0", "cmd": "setpluginlang", "data": "conferencebutton!bGFuZ1snY29uZmVyZW5jZSddPSdDb25mZXJlbmNlJzsK", "slot": "0" } 192.168.1.253:54735 <= -- PROCESS_FLASH_COMMAND origen 7 accion pluginlang destino en~callforwardfpbx password 71da90c984de996b59e39db4114d63ad Change language for plugin callforwardfpbx to en Language file found /var/www/html/fop2/admin/plugins/callforwardfpbx/lang/en.js 192.168.1.253:54735 => { "btn": "0", "cmd": "setpluginlang", "data": "callforwardfpbx!bGFuZ1snc2V0Y2FsbGZvcndhcmQnXT0nU2V0IENhbGwgRm9yd2FyZCc7CmxhbmdbJ2VudGVyY2FsbGZvcndhcmQnXT0nRW50ZXIgQ2FsbCBGb3J3YXJkIE51bWJlciBmb3InOwo=", "slot": "0" } 192.168.1.253:54735 <= -- PROCESS_FLASH_COMMAND origen 7 accion pluginlang destino en~speech password 71da90c984de996b59e39db4114d63ad Change language for plugin speech to en Language file found /var/www/html/fop2/admin/plugins/speech/lang/en.js 192.168.1.253:54735 => { "btn": "0", "cmd": "setpluginlang", "data": "speech!bGFuZ1snc3BlZWNoX2lucHV0J109J1NwZWVjaCBJbnB1dCc7Cg==", "slot": "0" } 192.168.1.253:54735 <= � -- PROCESS_FLASH_COMMAND No destination in command. Ignoring. -- TIMER asterisk_ami_connect and async config check Set doing hup to zero ** Asterisk Manager logged in localhost for 9 seconds (Tue Mar 31 09:02:25 2015) Flash clients connected: 1 -------------------------------------------------------------------------------------------------- Client 192.168.1.253:54735, user: 5313@GENERAL, type: websocket (AnyEvent::Handle=HASH(0x62406b0)) -------------------------------------------------------------------------------------------------- -- TIMER asterisk_ami_connect and async config check Set doing hup to zero ** Asterisk Manager logged in localhost for 12 seconds (Tue Mar 31 09:02:28 2015) Flash clients connected: 1 -------------------------------------------------------------------------------------------------- Client 192.168.1.253:54735, user: 5313@GENERAL, type: websocket (AnyEvent::Handle=HASH(0x62406b0)) -------------------------------------------------------------------------------------------------- New client connection from socket AnyEvent::Handle=HASH(0x7711500) - 192.168.1.253:54796 Flash clients connected: 2 -------------------------------------------------------------------------------------------------- Client 192.168.1.253:54796, user: no user, type: no type Client 192.168.1.253:54735, user: 5313@GENERAL, type: websocket (AnyEvent::Handle=HASH(0x62406b0)) -------------------------------------------------------------------------------------------------- 192.168.1.253:54796 <= -- PROCESS_FLASH_COMMAND origen GENERAL accion contexto destino 1 password 192.168.1.253:54796 => { "btn": "0", "cmd": "key", "data": "XNGBz3LCEEHQquHcjgWsEIZT96dslI", "slot": "" } 192.168.1.253:54796 => { "btn": "0", "cmd": "version", "data": "2.29.00!!1", "slot": "" } 192.168.1.253:54796 <= -- PROCESS_FLASH_COMMAND origen 1 accion auth destino 5313 password 4aacc06cabbceff30e8bdefb1b58cb5f ** RECEIVING AUTH REQUEST for 5313 TRYING TO VALIDATE USER 5313 VALIDAR USUARIO 5313@GENERAL validate password using key XNGBz3LCEEHQquHcjgWsEIZT96dslI VALIDAR USUARIO 5313 OK con clave regular (192.168.1.253:54796) 192.168.1.253:54796 => { "btn": "0", "cmd": "correct", "data": "0", "slot": "" } ** SENDING BUTTONS from GENERAL to socket AnyEvent::Handle=HASH(0x7711500) for client at 192.168.1.253:54796 ** LITE VERSION limited to 15 buttons -- data discarded ** LITE VERSION limited to 15 buttons -- data discarded ** LITE VERSION limited to 15 buttons -- data discarded ** LITE VERSION limited to 15 buttons -- data discarded ** LITE VERSION limited to 15 buttons -- data discarded 192.168.1.253:54796 => { "btn": "0@GENERAL", "cmd": "preferences", "data": "eyAiYXV0b1BvcHVwIjogIiIsImRpc3BsYXlRdWV1ZSI6ICJtYXgiLCJkeW5hbWljTGluZURpc3BsYXkiOiAib24iLCJsYW5ndWFnZSI6ICJlbiIsImxlZnRDb2x1bW5PcmRlciI6ICJib3hfZ3JwMSxib3hfZ3JwMCxib3hfZXh0ZW5zaW9uYm94Iiwibm90aWZ5RHVyYXRpb24iOiAiNiIsInBvcHVwVXJsIjogIiIsInJpZ2h0Q29sdW1uT3JkZXIiOiAiYm94X2FzdGVybmljVGFnYm94LGJveF9zbXNib3gsYm94X3F1ZXVlYm94LGJveF9wYXJrYm94LGJveF9yaW5nZ3JvdXBib3gsYm94X2NvbmZlcmVuY2Vib3gsYm94X3NwZWVjaGJveCxib3hfdHJ1bmtib3giLCJzb3VuZENoYXQiOiAib24iLCJzb3VuZFF1ZXVlIjogIm9uIiwic291bmRSaW5nIjogIiJ9", "slot": "" } 192.168.1.253:54796 => { "btn": "0@GENERAL", "cmd": "vmailpath", "data": "/var/spool/asterisk/voicemail", "slot": "" } 192.168.1.253:54796 => { "btn": "0@GENERAL", "cmd": "permit", "data": "YWxs", "slot": "" } mi perm all = 0 (0) 192.168.1.253:54796 => { "btn": "0@GENERAL", "cmd": "permitbtn", "data": "YWxsITA=", "slot": "" } Trying to send plugin (configonreload) to user 5313 at context GENERAL Sending plugin configonreload to 5313 192.168.1.253:54796 => { "btn": "7@GENERAL", "cmd": "plugin", "data": "Y29uZmlnb25yZWxvYWQhaWYodHlwZW9mIHBsdWdpbmNvbmZpZz09J3VuZGVmaW5lZCcpIHsgcGx1Z2luY29uZmlnID0ge319OwpwbHVnaW5jb25maWdbJ2NvbmZpZ29ucmVsb2FkJ109e307CmlmKHBsdWdpbmNvbmZpZ1snY29uZmlnb25yZWxvYWQnXVsnc2NyaXB0UmVsb2FkJ109PXVuZGVmaW5lZCkgeyBwbHVnaW5jb25maWdbJ2NvbmZpZ29ucmVsb2FkJ11bJ3NjcmlwdFJlbG9hZCddPXt9fTsKcGx1Z2luY29uZmlnWydjb25maWdvbnJlbG9hZCddWydzY3JpcHRSZWxvYWQnXVsnJ109Jy91c3IvYmluL3BocCAtZiAvdmFyL3d3dy9odG1sL2ZvcDIvYWRtaW4vdXBkYXRlX2NvbmYucGhwJzsKCnBsdWdpbnNbJ2NvbmZpZ29ucmVsb2FkJ10gPSAoZnVuY3Rpb24oKSB7CgogICAgcmV0dXJuIHsgCgogICAgICAgIGxvYWRMYW5nOiBmdW5jdGlvbih2YWx1ZXMpIHsKICAgICAgICB9LAoKICAgICAgICBzZXRMYW5nOiBmdW5jdGlvbigpIHsKICAgICAgICB9LAoKICAgICAgICBpbml0OiBmdW5jdGlvbigpIHsKICAgICAgICB9CiAgICB9Cn0oKSk7Cg==", "slot": "0" } Sending style configonreload to 5313 192.168.1.253:54796 => { "btn": "7@GENERAL", "cmd": "style", "data": "", "slot": "0" } Trying to send plugin (presencedndfpbx) to user 5313 at context GENERAL Sending plugin presencedndfpbx to 5313 192.168.1.253:54796 => { "btn": "7@GENERAL", "cmd": "plugin", "data": "cHJlc2VuY2VkbmRmcGJ4IQpwbHVnaW5zWydwcmVzZW5jZWRuZGZwYngnXSA9IChmdW5jdGlvbigpIHsKICAgIHJldHVybiB7IAogICAgICAgIGxvYWRMYW5nOiBmdW5jdGlvbih2YWx1ZXMpIHsKICAgICAgICB9LAogICAgICAgIHNldExhbmc6IGZ1bmN0aW9uKCkgewogICAgICAgIH0sCiAgICAgICAgaW5pdDogZnVuY3Rpb24oKSB7CiAgICAgICAgfQogICAgfQp9KCkpOwo=", "slot": "0" } Sending style presencedndfpbx to 5313 192.168.1.253:54796 => { "btn": "7@GENERAL", "cmd": "style", "data": "", "slot": "0" } Trying to send plugin (changepresence) to user 5313 at context GENERAL Sending plugin changepresence to 5313 192.168.1.253:54796 => { "btn": "7@GENERAL", "cmd": "plugin", "data": "Y2hhbmdlcHJlc2VuY2UhCnBsdWdpbnNbJ2NoYW5nZXByZXNlbmNlJ10gPSAoZnVuY3Rpb24oKSB7CgogICAgLy8gUHJpdmF0ZSB2YXJpYWJsZXMKCiAgICB2YXIgbWVudU9wdGlvbiA9IHsKICAgICAgICAic2V0cHJlc2VuY2UiOiAgICB7IG5hbWU6ICdTZXQgUHJlc2VuY2UnLCBpY29uOiAncHJlc2VuY2UnLCBpdGVtczogeyB9IH0KICAgIH0KCiAgICByZXR1cm4geyAKCiAgICAgICAgbG9hZExhbmc6IGZ1bmN0aW9uKHZhbHVlcykgewogICAgICAgICAgICB2YXIgaGFzaCA9IGhleF9tZDUoc2VjcmV0K2xhc3RrZXkpOwogICAgICAgICAgICBxdWV1ZWRjb21tYW5kID0gIjxtc2cgZGF0YT1cIiIgKyBteXBvc2l0aW9uICsgInxwbHVnaW5sYW5nfCIgKyBsYW5ndWFnZSArICJ+Y2hhbmdlcHJlc2VuY2UiICsgInwiICsgaGFzaCArICJcIiAvPiI7CiAgICAgICAgICAgIHNlbmRjb21tYW5kKCk7CiAgICAgICAgfSwKCiAgICAgICAgc2V0TGFuZzogZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGRlYnVnKCdjaGFuZ2UgcHJlc2VuY2Ugc2V0bGFuZycpOwogICAgICAgICAgICAvLyBjaGFuZ2UgbGFuZ3VhZ2Ugc3RyaW5ncwogICAgICAgICAgICBtZW51T3B0aW9uWydzZXRwcmVzZW5jZSddWyduYW1lJ10gPSBsYW5nLnNldHByZXNlbmNlOwoKICAgICAgICAgICAgLy8gYWRkaW5nIHByZXNlbmNlIG9wdGlvbnMgdG8gdGhlIGNvbnRleHQgbWVudQogICAgICAgICAgICB2YXIgY29udD0wOwogICAgICAgICAgICBmb3IgKHZhciBpdGVtIGluIHByZXNlbmNlKSB7CiAgICAgICAgICAgICAgICBpZiAocHJlc2VuY2UuaGFzT3duUHJvcGVydHkoaXRlbSkpIHsKICAgICAgICAgICAgICAgICAgICBpZihpdGVtPT09IiIpIHsKICAgICAgICAgICAgICAgICAgICAgICBpdGVtUHJpbnQgPSBsYW5nWydhdmFpbGFibGUnXTsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICBpZihsYW5nLmhhc093blByb3BlcnR5KGl0ZW0pKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtUHJpbnQgPSBsYW5nW2l0ZW1dOwogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVByaW50ID0gaXRlbTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBtZW51T3B0aW9uWyJzZXRwcmVzZW5jZSJdWyJpdGVtcyJdWyJzZXRQcmVzZW5jZV4iK2NvbnRdID0geyBuYW1lOiBpdGVtUHJpbnQgfTsKICAgICAgICAgICAgICAgICAgICBjb250Kys7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgfSwKICAgICAgICBzZXRFeHRlbnNpb25NZW51OiBmdW5jdGlvbihpdGVtcykgewogICAgICAgICAgICAvLyBjYWxsZWQgZnJvbSBidWlsZCBleHRlbnNpb24gbWVudSBhcyBjYWxsYmFjawogICAgICAgICAgICBqUXVlcnkuZXh0ZW5kKGl0ZW1zLG1lbnVPcHRpb24pOwogICAgICAgICAgICByZXR1cm4gaXRlbXM7CiAgICAgICAgfSwKICAgICAgICBzZXRQcmVzZW5jZTogZnVuY3Rpb24odGFyZ2V0LHNvdXJjZSkgewoKICAgICAgICAgICAgZGVidWcoInNldCBwcmVzZW5jZSIpOwogICAgICAgICAgICB2YXIgdGhpc2V4dGVuID0gYm90b25pdG9zW3NvdXJjZV1bJ0VYVEVOU0lPTiddOwogICAgICAgICAgICB2YXIgY29udD0wOwogICAgICAgICAgICB2YXIgdmFsdWU9JycKICAgICAgICAgICAgZm9yICh2YXIgaXRlbSBpbiBwcmVzZW5jZSkgewogICAgICAgICAgICAgICAgaWYoY29udCA9PSB0YXJnZXQpIHsKICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGl0ZW07CiAgICAgICAgICAgICAgICAgICAgZGVidWcoJ3B1c28gcHJlc2VuY2lhIGVuICcrdmFsdWUpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgY29udCsrOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZihqUXVlcnkuaW5BcnJheSgnMCcscGVybWlzb3NidG5bJ3ByZXNlbmNlbWFuYWdlciddKT49MCB8fCBqUXVlcnkuaW5BcnJheSgnMCcscGVybWlzb3NidG5bJ2FsbCddKT49MCkgewogICAgICAgICAgICAgICAgdmFyIGhhc2ggPSBoZXhfbWQ1KHNlY3JldCtsYXN0a2V5KTsKICAgICAgICAgICAgICAgIHZhciB2YWx1ZTY0ID0gQmFzZTY0LmVuY29kZSh2YWx1ZSk7CiAgICAgICAgICAgICAgICBxdWV1ZWRjb21tYW5kID0gIjxtc2cgZGF0YT1cIiIrc291cmNlKyJ8c2V0YXN0ZGJ8Zm9wMnN0YXRlfiIrdGhpc2V4dGVuKyJ+Iit2YWx1ZTY0KyJ8IitoYXNoKyJcIiAvPiI7CiAgICAgICAgICAgICAgICBzZW5kY29tbWFuZCgpOwogICAgICAgICAgICB9CgogICAgICAgIH0sCiAgICAgICAgaW5pdDogZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIC8vIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uCiAgICAgICAgICAgIGRlYnVnKCdjaGFuZ2UgcHJlc2VuY2UgaW5pdCcpOwogICAgICAgIH0KICAgIH0KfSgpKTsK", "slot": "0" } Sending style changepresence to 5313 192.168.1.253:54796 => { "btn": "7@GENERAL", "cmd": "style", "data": "LmNvbnRleHQtbWVudS1pdGVtLmljb24tcHJlc2VuY2UgIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4vaW1hZ2VzL3Nwcml0ZXMwMS5wbmcpO2JhY2tncm91bmQtcG9zaXRpb246MCAtMjQwcHg7YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDt9Cg==", "slot": "0" } Trying to send plugin (clock) to user 5313 at context GENERAL Sending plugin clock to 5313 192.168.1.253:54796 => { "btn": "7@GENERAL", "cmd": "plugin", "data": "Y2xvY2shCnBsdWdpbnNbJ2Nsb2NrJ10gPSAoZnVuY3Rpb24oKSB7CgogICAgcmV0dXJuIHsgCgogICAgICAgIGxvYWRMYW5nOiBmdW5jdGlvbih2YWx1ZXMpIHsKICAgICAgICAgICAgdmFyIGhhc2ggPSBoZXhfbWQ1KHNlY3JldCtsYXN0a2V5KTsKICAgICAgICAgICAgcXVldWVkY29tbWFuZCA9ICI8bXNnIGRhdGE9XCIiICsgbXlwb3NpdGlvbiArICJ8cGx1Z2lubGFuZ3wiICsgbGFuZ3VhZ2UgKyAifmNsb2NrIiArICJ8IiArIGhhc2ggKyAiXCIgLz4iOwogICAgICAgICAgICBzZW5kY29tbWFuZCgpOwogICAgICAgIH0sCgogICAgICAgIHNldExhbmc6IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAvLyBUaGlzIG1ldGhvZCBpcyB1c2VkIHRvIGFwcGx5IGEgbGFuZ3VhZ2Ugc3RyaW5ncyB0byBodG1sIGVsZW1lbnRzCiAgICAgICAgfSwKCiAgICAgICAgdXBkYXRlQ2xvY2s6IGZ1bmN0aW9uKCkgewoKICAgICAgICAgICAgdmFyIGN1cnJlbnRUaW1lID0gbmV3IERhdGUgKCApOwoKICAgICAgICAgICAgdmFyIGN1cnJlbnRIb3VycyA9IGN1cnJlbnRUaW1lLmdldEhvdXJzICggKTsKICAgICAgICAgICAgdmFyIGN1cnJlbnRNaW51dGVzID0gY3VycmVudFRpbWUuZ2V0TWludXRlcyAoICk7CiAgICAgICAgICAgIHZhciBjdXJyZW50U2Vjb25kcyA9IGN1cnJlbnRUaW1lLmdldFNlY29uZHMgKCApOwoKICAgICAgICAgICAgLy8gUGFkIHRoZSBtaW51dGVzIGFuZCBzZWNvbmRzIHdpdGggbGVhZGluZyB6ZXJvcywgaWYgcmVxdWlyZWQKICAgICAgICAgICAgY3VycmVudE1pbnV0ZXMgPSAoIGN1cnJlbnRNaW51dGVzIDwgMTAgPyAiMCIgOiAiIiApICsgY3VycmVudE1pbnV0ZXM7CiAgICAgICAgICAgIGN1cnJlbnRTZWNvbmRzID0gKCBjdXJyZW50U2Vjb25kcyA8IDEwID8gIjAiIDogIiIgKSArIGN1cnJlbnRTZWNvbmRzOwoKICAgICAgICAgICAgLy8gQ2hvb3NlIGVpdGhlciAiQU0iIG9yICJQTSIgYXMgYXBwcm9wcmlhdGUKICAgICAgICAgICAgdmFyIHRpbWVPZkRheSA9ICggY3VycmVudEhvdXJzIDwgMTIgKSA/ICJBTSIgOiAiUE0iOwoKICAgICAgICAgICAgLy8gQ29udmVydCB0aGUgaG91cnMgY29tcG9uZW50IHRvIDEyLWhvdXIgZm9ybWF0IGlmIG5lZWRlZAogICAgICAgICAgICBjdXJyZW50SG91cnMgPSAoIGN1cnJlbnRIb3VycyA+IDEyICkgPyBjdXJyZW50SG91cnMgLSAxMiA6IGN1cnJlbnRIb3VyczsKCiAgICAgICAgICAgIC8vIENvbnZlcnQgYW4gaG91cnMgY29tcG9uZW50IG9mICIwIiB0byAiMTIiCiAgICAgICAgICAgIGN1cnJlbnRIb3VycyA9ICggY3VycmVudEhvdXJzID09IDAgKSA/IDEyIDogY3VycmVudEhvdXJzOwoKICAgICAgICAgICAgLy8gQ29tcG9zZSB0aGUgc3RyaW5nIGZvciBkaXNwbGF5CiAgICAgICAgICAgIHZhciBjdXJyZW50VGltZVN0cmluZyA9IGN1cnJlbnRIb3VycyArICI6IiArIGN1cnJlbnRNaW51dGVzICsgIjoiICsgY3VycmVudFNlY29uZHMgKyAiICIgKyB0aW1lT2ZEYXk7CgogICAgICAgICAgICAvLyBVcGRhdGUgdGhlIHRpbWUgZGlzcGxheQogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2xvY2siKS5maXJzdENoaWxkLm5vZGVWYWx1ZSA9IGN1cnJlbnRUaW1lU3RyaW5nOwoKICAgICAgICB9LAogICAgICAgIGluaXQ6IGZ1bmN0aW9uKCkgewoKICAgICAgICAgICAgJCggIiNzZWNvbmR0b29sYmFyIiApLmJlZm9yZSggIjxzcGFuIGlkPSdjbG9jayc+Jm5ic3A7PC9zcGFuPiIgKTsKCiAgICAgICAgICAgIHdpbmRvdy5zZXRJbnRlcnZhbChmdW5jdGlvbigpewogICAgICAgICAgICAgICAgcGx1Z2luc1snY2xvY2snXS51cGRhdGVDbG9jaygpOwogICAgICAgICAgICB9LCAxMDAwKTsKICAgICAgICB9CiAgICB9Cn0oKSk7Cg==", "slot": "0" } Sending style clock to 5313 192.168.1.253:54796 => { "btn": "7@GENERAL", "cmd": "style", "data": "I2Nsb2NrIHsKcG9zaXRpb246YWJzb2x1dGU7CnRvcDoxMHB4Owp9Cg==", "slot": "0" } Trying to send plugin (conferencebutton) to user 5313 at context GENERAL Sending plugin conferencebutton to 5313 192.168.1.253:54796 => { "btn": "7@GENERAL", "cmd": "plugin", "data": "Y29uZmVyZW5jZWJ1dHRvbiEKcGx1Z2luc1snY29uZmVyZW5jZWJ1dHRvbiddID0gKGZ1bmN0aW9uKCkgewogICAgLy8gdmFyIHByaXZhdGUgPSBbXTsgCgogICAgcmV0dXJuIHsgCgogICAgICAgIGxvYWRMYW5nOiBmdW5jdGlvbih2YWx1ZXMpIHsKICAgICAgICAgICAgdmFyIGhhc2ggPSBoZXhfbWQ1KHNlY3JldCtsYXN0a2V5KTsKICAgICAgICAgICAgcXVldWVkY29tbWFuZCA9ICI8bXNnIGRhdGE9XCIiICsgbXlwb3NpdGlvbiArICJ8cGx1Z2lubGFuZ3wiICsgbGFuZ3VhZ2UgKyAifmNvbmZlcmVuY2VidXR0b24iICsgInwiICsgaGFzaCArICJcIiAvPiI7CiAgICAgICAgICAgIHNlbmRjb21tYW5kKCk7CiAgICAgICAgfSwKCiAgICAgICAgc2V0TGFuZzogZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIC8vIGNoYW5nZSBsYW5ndWFnZSBzdHJpbmdzCiAgICAgICAgICAgICQoJyNhY3Rpb25fY29uZmVyZW5jZWNhbGwnKS5hdHRyKCd0aXRsZScsbGFuZy5jb25mZXJlbmNlKTsKICAgICAgICAgICAgc2V0VGlwcygkKCcjYWN0aW9uX2NvbmZlcmVuY2VjYWxsJykpOwogICAgICAgIH0sCgogICAgICAgIGVtYmVkOiBmdW5jdGlvbigpIHsKICAgICAgICAgICAgLy8gZW1iZWQgZWxlbWVudHMgaW4gcGFnZSwgbG9hZCBzdHlsZSBmaWxlcwogICAgICAgICAgICBpZigkKCcjYWN0aW9uX2NvbmZlcmVuY2VjYWxsJykubGVuZ3RoID09IDApIHsKICAgICAgICAgICAgICAgIHZhciBhY3Rpb25iYXIgPSAkKCcjY3VzdG9tYmFyJyk7CiAgICAgICAgICAgICAgICBidXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICAgICAgICAgICQoYnV0KS5hdHRyKHtpZDogJ2FjdGlvbl9jb25mZXJlbmNlY2FsbCcsIHRpdGxlOiAnQ29uZmVyZW5jZSd9KS5hZGRDbGFzcygnYWN0aW9uYnV0dG9uIG15Y2xpY2snKTsKICAgICAgICAgICAgICAgIGltZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2ltZycpOwogICAgICAgICAgICAgICAgJChpbWcpLmF0dHIoJ3NyYycsJy4vaW1hZ2VzL3Rvb2xiYXIvY29uZmVyZW5jZS5wbmcnKTsKICAgICAgICAgICAgICAgICQoYnV0KS5hcHBlbmQoaW1nKTsKICAgICAgICAgICAgICAgIGFjdGlvbmJhci5hcHBlbmQoYnV0KTsKICAgICAgICAgICAgfQogICAgICAgIH0sCgogICAgICAgIGFjdGlvbl9jb25mZXJlbmNlY2FsbDogZnVuY3Rpb24odGFyZ2V0KSB7CiAgICAgICAgICAgIGRlYnVnKCdkbyBjb25mZXJlbmNlIHdpdGggJyt0YXJnZXQpOwoKICAgICAgICAgICAgaWYgKG15cG9zaXRpb24gPiAwKSB7CiAgICAgICAgICAgICAgICB2YXIgYm90b24gPSAkKCcjYm90b24nICsgbXlwb3NpdGlvbik7CiAgICAgICAgICAgICAgICB2YXIgbnVtYmVyX3RvX2RpYWw7CiAgICAgICAgICAgICAgICAvLyBMb29rIGZvciB0eXBlZCBudW1iZXIgaW4gdGhlIGRpYWwgdGV4dGJveCBmaWVsZAogICAgICAgICAgICAgICAgaWYgKCQoJyNkaWFsdGV4dCcpWzBdLnZhbHVlLmluZGV4T2YobGFuZy5kaWFsKSA+PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgLy8gUGxhY2Vob2xkZXIgdGV4dCwgd2UgaGF2ZSB0byByZW1vdmUgaXQKICAgICAgICAgICAgICAgICAgICB2YXIgbGFyZ28gPSBsYW5nLmRpYWwubGVuZ3RoOwogICAgICAgICAgICAgICAgICAgIG51bWJlcl90b19kaWFsID0gJCgnI2RpYWx0ZXh0JylbMF0udmFsdWUuc3Vic3RyKGxhcmdvKTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgbnVtYmVyX3RvX2RpYWwgPSAkKCcjZGlhbHRleHQnKVswXS52YWx1ZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIC8vIElmIHRoZSBkaWFsYm94IGlzIGVtcHR5LCBjaGVjayBpZiB3ZSBoYXZlIGEgdGFyZ2V0IHNlbGVjdGVkCiAgICAgICAgICAgICAgICAvLyBhbmQgdXNlIHRoZSB0YXJnZXQgZXh0ZW5zaW9uIG51bWJlcgogICAgICAgICAgICAgICAgaWYgKG51bWJlcl90b19kaWFsID09ICIiKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKHRhcmdldCA+IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyX3RvX2RpYWwgPSBib3Rvbml0b3NbdGFyZ2V0XVsnRVhURU5TSU9OJ107CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKG51bWJlcl90b19kaWFsID09ICIiKSB7CiAgICAgICAgICAgICAgICAgICAgZGVidWcoIldlIGRvIG5vdCBoYXZlIGEgdGFyZ2V0IG51bWJlciB0byBkaWFsLCBleGl0Iik7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGRlYnVnKG51bWJlcl90b19kaWFsKTsKCiAgICAgICAgICAgICAgICBpZiAoYm90b24uaGFzQ2xhc3MoJ2J1c3knKSkgewogICAgICAgICAgICAgICAgICAgIHZhciBoYXNoID0gaGV4X21kNShzZWNyZXQrbGFzdGtleSk7CiAgICAgICAgICAgICAgICAgICAgcXVldWVkY29tbWFuZCA9ICI8bXNnIGRhdGE9XCIiICsgbXlwb3NpdGlvbiArICJ8Y3VzdG9tY29uZmVyZW5jZXwiICsgbnVtYmVyX3RvX2RpYWwgKyAifCIgKyBoYXNoICsgIlwiIC8+IjsKICAgICAgICAgICAgICAgICAgICBzZW5kY29tbWFuZCgpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAvLyBXZSBhcmUgbm90IG9uIGEgY2FsbCwgbGV0cyB0cnkgdG8gYmFyZ2UgaW4KICAgICAgICAgICAgICAgICAgICBib3RvbiA9ICQoJyNib3RvbicgKyB0YXJnZXQpOwogICAgICAgICAgICAgICAgICAgIGlmIChib3Rvbi5oYXNDbGFzcygnYnVzeScpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlcl90b19kaWFsID0gYm90b25pdG9zW215cG9zaXRpb25dWydFWFRFTlNJT04nXTsKICAgICAgICAgICAgICAgICAgICAgICAgcXVldWVkY29tbWFuZCA9ICI8bXNnIGRhdGE9XCIiICsgdGFyZ2V0ICsgInxjdXN0b21jb25mZXJlbmNlfCIgKyBudW1iZXJfdG9fZGlhbCArICJ8IiArIGhhc2ggKyAiXCIgLz4iOwogICAgICAgICAgICAgICAgICAgICAgICBzZW5kY29tbWFuZCgpOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGRlYnVnKCJOb3Igc291cmNlIG9yIHRhcmdldCBleHRlbnNpb25zIGFyZSBidXN5LCBjb25mZXJlbmNlIGNhbiBiZSBkb25lIGlmIHNvbWVvbmUgaXMgb24gYSBjYWxsIG9ubHkiKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KIAogICAgICAgIH0sCgogICAgICAgIGluaXQ6IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAvLyBpbml0aWFsaXphdGlvbiBmdW5jdGlvbgogICAgICAgICAgICB0aGlzLmVtYmVkKCk7CiAgICAgICAgICAgIHRoaXMubG9hZExhbmcoKTsKICAgICAgICB9CiAgICB9Cn0oKSk7Cg==", "slot": "0" } Sending style conferencebutton to 5313 192.168.1.253:54796 => { "btn": "7@GENERAL", "cmd": "style", "data": "", "slot": "0" } Trying to send plugin (holdreport) to user 5313 at context GENERAL Sending plugin holdreport to 5313 192.168.1.253:54796 => { "btn": "7@GENERAL", "cmd": "plugin", "data": "aG9sZHJlcG9ydCEKcGx1Z2luc1snaG9sZHJlcG9ydCddID0gKGZ1bmN0aW9uKCkgewogICAgcmV0dXJuIHsgCiAgICAgICAgbG9hZExhbmc6IGZ1bmN0aW9uKHZhbHVlcykgewogICAgICAgIH0sCiAgICAgICAgc2V0TGFuZzogZnVuY3Rpb24oKSB7CiAgICAgICAgfSwKICAgICAgICBpbml0OiBmdW5jdGlvbigpIHsKICAgICAgICB9CiAgICB9Cn0oKSk7Cg==", "slot": "0" } Sending style holdreport to 5313 192.168.1.253:54796 => { "btn": "7@GENERAL", "cmd": "style", "data": "", "slot": "0" } Trying to send plugin (presencepause) to user 5313 at context GENERAL Sending plugin presencepause to 5313 192.168.1.253:54796 => { "btn": "7@GENERAL", "cmd": "plugin", "data": "cHJlc2VuY2VwYXVzZSEKcGx1Z2luc1sncHJlc2VuY2VwYXVzZSddID0gKGZ1bmN0aW9uKCkgewoKICAgIHJldHVybiB7IAoKICAgICAgICBsb2FkTGFuZzogZnVuY3Rpb24odmFsdWVzKSB7CiAgICAgICAgfSwKICAgICAgICBzZXRMYW5nOiBmdW5jdGlvbigpIHsKICAgICAgICB9LAogICAgICAgIGluaXQ6IGZ1bmN0aW9uKCkgewogICAgICAgIH0KICAgIH0KfSgpKTsK", "slot": "0" } Sending style presencepause to 5313 192.168.1.253:54796 => { "btn": "7@GENERAL", "cmd": "style", "data": "Cg==", "slot": "0" } Trying to send plugin (callforwardfpbx) to user 5313 at context GENERAL Sending plugin callforwardfpbx to 5313 192.168.1.253:54796 => { "btn": "7@GENERAL", "cmd": "plugin", "data": "Y2FsbGZvcndhcmRmcGJ4IQpwbHVnaW5zWydjYWxsZm9yd2FyZGZwYngnXSA9IChmdW5jdGlvbigpIHsKCiAgICAvLyBQcml2YXRlIHZhcmlhYmxlcwoKICAgIHZhciBtZW51T3B0aW9uID0gewogICAgICAgICJzZXRDYWxsRm9yd2FyZCI6IHsgbmFtZTogJ1NldCBDYWxsIEZvcndhcmQnLCBpY29uOiAnc2V0Y2YnIH0sCiAgICB9CgogICAgcmV0dXJuIHsgCgogICAgICAgIGxvYWRMYW5nOiBmdW5jdGlvbih2YWx1ZXMpIHsKICAgICAgICAgICAgdmFyIGhhc2ggPSBoZXhfbWQ1KHNlY3JldCtsYXN0a2V5KTsKICAgICAgICAgICAgcXVldWVkY29tbWFuZCA9ICI8bXNnIGRhdGE9XCIiICsgbXlwb3NpdGlvbiArICJ8cGx1Z2lubGFuZ3wiICsgbGFuZ3VhZ2UgKyAifmNhbGxmb3J3YXJkZnBieCIgKyAifCIgKyBoYXNoICsgIlwiIC8+IjsKICAgICAgICAgICAgc2VuZGNvbW1hbmQoKTsKICAgICAgICB9LAoKICAgICAgICBzZXRMYW5nOiBmdW5jdGlvbigpIHsKICAgICAgICAgICAgZGVidWcoJ2NhbGwgZm9yd2FyZCBzZXRsYW5nJyk7CiAgICAgICAgICAgIC8vIGNoYW5nZSBsYW5ndWFnZSBzdHJpbmdzCiAgICAgICAgICAgIG1lbnVPcHRpb25bJ3NldENhbGxGb3J3YXJkJ11bJ25hbWUnXSA9IGxhbmcuc2V0Y2FsbGZvcndhcmQ7CiAgICAgICAgfSwKCiAgICAgICAgc2V0RXh0ZW5zaW9uTWVudTogZnVuY3Rpb24oaXRlbXMpIHsKICAgICAgICAgICAgLy8gY2FsbGVkIGZyb20gYnVpbGQgZXh0ZW5zaW9uIG1lbnUgYXMgY2FsbGJhY2sKICAgICAgICAgICAgalF1ZXJ5LmV4dGVuZChpdGVtcyxtZW51T3B0aW9uKTsKICAgICAgICAgICAgcmV0dXJuIGl0ZW1zOwogICAgICAgIH0sCgogICAgICAgIHNldENhbGxGb3J3YXJkOiBmdW5jdGlvbih0YXJnZXQsc291cmNlKSB7CgogICAgICAgICAgICBkZWJ1Zygnc2V0IGNhbGwgZm9yd2FyZCcpOwogICAgICAgICAgICB2YXIgdGhpc2V4dGVuID0gYm90b25pdG9zW3NvdXJjZV1bJ0VYVEVOU0lPTiddOwogICAgICAgICAgICB2YXIgY3VycmVudHZhbHVlID0gJCgnI2V4dHJhaW5mbycrc291cmNlKS5hdHRyKCdvbGR0aXRsZScpOwogICAgICAgICAgICBhbGVydGlmeS5wcm9tcHQobGFuZy5lbnRlcmNhbGxmb3J3YXJkKycgJyt0aGlzZXh0ZW4sIGZ1bmN0aW9uIChlLCBzdHIpIHsKICAgICAgICAgICAgICAgIC8vIHN0ciBpcyB0aGUgaW5wdXQgdGV4dAogICAgICAgICAgICAgICAgaWYgKGUpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgaGFzaCA9IGhleF9tZDUoc2VjcmV0K2xhc3RrZXkpOwogICAgICAgICAgICAgICAgICAgIHZhciBzdHJlbmNvZGVkID0gQmFzZTY0LmVuY29kZShzdHIpOwogICAgICAgICAgICAgICAgICAgIHF1ZXVlZGNvbW1hbmQgPSAiPG1zZyBkYXRhPVwiIitzb3VyY2UrInxzZXRhc3RkYnxDRn4iK3RoaXNleHRlbisifiIrc3RyZW5jb2RlZCsifCIraGFzaCsiXCIgLz4iOwogICAgICAgICAgICAgICAgICAgIHNlbmRjb21tYW5kKCk7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIC8vIHVzZXIgY2xpY2tlZCAiY2FuY2VsIgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LGN1cnJlbnR2YWx1ZSk7CiAgICAgICAgfSwKICAgICAgICBpbml0OiBmdW5jdGlvbigpIHsKICAgICAgICAgICAgLy8gaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24KICAgICAgICAgICAgZGVidWcoJ2NhbGwgZm9yd2FyZCBpbml0Jyk7CiAgICAgICAgfQogICAgfQp9KCkpOwo=", "slot": "0" } Sending style callforwardfpbx to 5313 192.168.1.253:54796 => { "btn": "7@GENERAL", "cmd": "style", "data": "LmNvbnRleHQtbWVudS1pdGVtLmljb24tc2V0Y2YgIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4vaW1hZ2VzL3Nwcml0ZXMwMS5wbmcpO2JhY2tncm91bmQtcG9zaXRpb246MCAtMjcycHg7YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDt9Cg==", "slot": "0" } Trying to send plugin (speech) to user 5313 at context GENERAL Sending plugin speech to 5313 192.168.1.253:54796 => { "btn": "7@GENERAL", "cmd": "plugin", "data": "c3BlZWNoIWlmKHR5cGVvZiBwbHVnaW5jb25maWc9PSd1bmRlZmluZWQnKSB7IHBsdWdpbmNvbmZpZyA9IHt9fTsKcGx1Z2luY29uZmlnWydzcGVlY2gnXT17fTsKaWYocGx1Z2luY29uZmlnWydzcGVlY2gnXVsnaGFuZ3VwX3dvcmQnXT09dW5kZWZpbmVkKSB7IHBsdWdpbmNvbmZpZ1snc3BlZWNoJ11bJ2hhbmd1cF93b3JkJ109e319OwpwbHVnaW5jb25maWdbJ3NwZWVjaCddWydoYW5ndXBfd29yZCddWycnXT0naGFuZ3VwJzsKaWYocGx1Z2luY29uZmlnWydzcGVlY2gnXVsnbGFuZ3VhZ2UnXT09dW5kZWZpbmVkKSB7IHBsdWdpbmNvbmZpZ1snc3BlZWNoJ11bJ2xhbmd1YWdlJ109e319OwpwbHVnaW5jb25maWdbJ3NwZWVjaCddWydsYW5ndWFnZSddWycnXT0nZW4tRU4nOwppZihwbHVnaW5jb25maWdbJ3NwZWVjaCddWydhdmFpbGFibGVfd29yZCddPT11bmRlZmluZWQpIHsgcGx1Z2luY29uZmlnWydzcGVlY2gnXVsnYXZhaWxhYmxlX3dvcmQnXT17fX07CnBsdWdpbmNvbmZpZ1snc3BlZWNoJ11bJ2F2YWlsYWJsZV93b3JkJ11bJyddPSdhdmFpbGFibGUnOwppZihwbHVnaW5jb25maWdbJ3NwZWVjaCddWyd0cmFuc2Zlcl93b3JkJ109PXVuZGVmaW5lZCkgeyBwbHVnaW5jb25maWdbJ3NwZWVjaCddWyd0cmFuc2Zlcl93b3JkJ109e319OwpwbHVnaW5jb25maWdbJ3NwZWVjaCddWyd0cmFuc2Zlcl93b3JkJ11bJyddPSd0cmFuc2Zlcic7CmlmKHBsdWdpbmNvbmZpZ1snc3BlZWNoJ11bJ2Rvbm90ZGlzdHVyYl93b3JkJ109PXVuZGVmaW5lZCkgeyBwbHVnaW5jb25maWdbJ3NwZWVjaCddWydkb25vdGRpc3R1cmJfd29yZCddPXt9fTsKcGx1Z2luY29uZmlnWydzcGVlY2gnXVsnZG9ub3RkaXN0dXJiX3dvcmQnXVsnJ109J2RvIG5vdCBkaXN0dXJiJzsKaWYocGx1Z2luY29uZmlnWydzcGVlY2gnXVsnZGlhbF93b3JkJ109PXVuZGVmaW5lZCkgeyBwbHVnaW5jb25maWdbJ3NwZWVjaCddWydkaWFsX3dvcmQnXT17fX07CnBsdWdpbmNvbmZpZ1snc3BlZWNoJ11bJ2RpYWxfd29yZCddWycnXT0nZGlhbCc7CgpwbHVnaW5zWydzcGVlY2gnXSA9IChmdW5jdGlvbigpIHsKCiAgICB2YXIgc3BlZWNobGFuZ3VhZ2UgPSBwbHVnaW5jb25maWdbJ3NwZWVjaCddWydsYW5ndWFnZSddWycnXTsKICAgIHZhciBkaWFsX3dvcmQgPSBwbHVnaW5jb25maWdbJ3NwZWVjaCddWydkaWFsX3dvcmQnXVsnJ107CiAgICB2YXIgdHJhbnNmZXJfd29yZCA9IHBsdWdpbmNvbmZpZ1snc3BlZWNoJ11bJ3RyYW5zZmVyX3dvcmQnXVsnJ107CiAgICB2YXIgaGFuZ3VwX3dvcmQgPSBwbHVnaW5jb25maWdbJ3NwZWVjaCddWydoYW5ndXBfd29yZCddWycnXTsKICAgIHZhciBkb25vdGRpc3R1cmJfd29yZCA9IHBsdWdpbmNvbmZpZ1snc3BlZWNoJ11bJ2Rvbm90ZGlzdHVyYl93b3JkJ11bJyddOwogICAgdmFyIGF2YWlsYWJsZV93b3JkID0gcGx1Z2luY29uZmlnWydzcGVlY2gnXVsnYXZhaWxhYmxlX3dvcmQnXVsnJ107CiAgICB2YXIgcmVjb2duaXRpb247CiAgICB2YXIgcmVjb2duaXppbmc9MDsKCiAgICByZXR1cm4geyAKCiAgICAgICAgbG9hZExhbmc6IGZ1bmN0aW9uKHZhbHVlcykgewogICAgICAgICAgICB2YXIgaGFzaCA9IGhleF9tZDUoc2VjcmV0K2xhc3RrZXkpOwogICAgICAgICAgICBxdWV1ZWRjb21tYW5kID0gIjxtc2cgZGF0YT1cIiIgKyBteXBvc2l0aW9uICsgInxwbHVnaW5sYW5nfCIgKyBsYW5ndWFnZSArICJ+c3BlZWNoIiArICJ8IiArIGhhc2ggKyAiXCIgLz4iOwogICAgICAgICAgICBzZW5kY29tbWFuZCgpOwogICAgICAgIH0sCgogICAgICAgIHNldExhbmc6IGZ1bmN0aW9uKCkgewogICAgICAgICAgICBpZigkKCcjc3BlZWNoVGl0bGUnKS5sZW5ndGggPiAwKSB7CiAgICAgICAgICAgICAgICAkKCcjc3BlZWNoVGl0bGUnKS5odG1sKGxhbmdbJ3NwZWVjaF9pbnB1dCddKTsKICAgICAgICAgICAgICAgICQoJyNzcGVlY2gtaW5wdXQtZmllbGQnKS5hdHRyKCdsYW5nJyxzcGVlY2hsYW5ndWFnZSk7CiAgICAgICAgICAgIH0KICAgICAgICB9LAoKICAgICAgICBlbWJlZDogZnVuY3Rpb24oKSB7CgogICAgICAgICAgICBpZigkKCcjYm94X3NwZWVjaGJveCcpLmxlbmd0aDw9MCkgewogICAgICAgICAgICAgICAgdmFyIGtsb24gPSAkKCAnI2JveF9hc3Rlcm5pY1RhZ2JveCcgKTsKICAgICAgICAgICAgICAgIHZhciBuZXdrbG9uID0ga2xvbi5jbG9uZSgpLmF0dHIoIHsgaWQ6ICdib3hfc3BlZWNoYm94JyB9KS5jc3Moe2Rpc3BsYXk6ICdibG9jayd9KS5pbnNlcnRCZWZvcmUoIGtsb24gKTsKICAgICAgICAgICAgICAgIG5ld2tsb24uZmluZCgnKicpLmVhY2goZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICBpZih0eXBlb2YgJCh0aGlzKS5hdHRyKCdpZCcpID09ICd1bmRlZmluZWQnKSB7CiAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgIGlmKCQodGhpcykuYXR0cignaWQnKT09J3RhZ2NhbGwnKSB7ICQodGhpcykuYXR0cignaWQnLCdzcGVlY2hUaXRsZScpLmh0bWwobGFuZy5zcGVlY2hfaW5wdXQpOyB9CiAgICAgICAgICAgICAgICAgICAgICAgaWYoJCh0aGlzKS5hdHRyKCdpZCcpPT0ndG9nZ2xlLWFzdGVybmljVGFnJykgeyAkKHRoaXMpLmF0dHIoJ2lkJywndG9nZ2xlLXNwZWVjaCcpOyB9CiAgICAgICAgICAgICAgICAgICAgICAgaWYoJCh0aGlzKS5hdHRyKCdpZCcpPT0nYXN0ZXJuaWNUYWcnKSB7ICQodGhpcykuYXR0cignaWQnLCdzcGVlY2gnKS5jc3MoJ3RleHQtYWxpZ24nLCdjZW50ZXInKTsgfQogICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8qJCgnI3NwZWVjaCcpLmh0bWwoIjxpbnB1dCBpZD0nc3BlZWNoLWlucHV0LWZpZWxkJyBzcGVlY2ggdHlwZT0ndGV4dCcgeC13ZWJraXQtc3BlZWNoIC8+Iik7Ki8KICAgICAgICAgICAgJCgnI3NwZWVjaCcpLmh0bWwoIjxpbnB1dCBpZD0nc3BlZWNoLWlucHV0LWZpZWxkJyB0eXBlPSd0ZXh0JyAvPjxidXR0b24gdHlwZT0nYnV0dG9uJyBpZD0nc3BlZWNoLW1pYycgY2xhc3M9J3NwZWVjaHJlY29mZicgLz4iKTsKCiAgICAgICAgICAgICQoIiNzcGVlY2gtbWljIikub24oICJjbGljayIsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgaWYocmVjb2duaXppbmc9PTApIHsKICAgICAgICAgICAgICAgICAgICByZWNvZ25pdGlvbi5zdGFydCgpOwogICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgcmVjb2duaXRpb24uc3RvcCgpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CgogICAgICAgICAgICBtYWtlU29ydGFibGUoJ3JpZ2h0Jyk7CgogICAgICAgICAgICBpZih0eXBlb2YobXlwcmVmZXJlbmNlcy5yaWdodENvbHVtbk9yZGVyKT09J3N0cmluZycpIHsKICAgICAgICAgICAgICAgIG9yZGVuYXJEaXYoJ3JpZ2h0X2NvbHVtbicsbXlwcmVmZXJlbmNlcy5yaWdodENvbHVtbk9yZGVyKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdGhpcy5sb2FkTGFuZygpOwogICAgICAgIH0sCgogICAgICAgIGlucHV0Q2hhbmdlOiBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgIGlmIChlLnJlc3VsdHMpIHsgCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMCwgcmVzdWx0OyByZXN1bHQgPSBlLnJlc3VsdHNbaV07ICsraSkgewogICAgICAgICAgICAgICAgICAgIGRlYnVnKHJlc3VsdC51dHRlcmFuY2UsIHJlc3VsdC5jb25maWRlbmNlKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGRlYnVnKCdCZXN0IHJlc3VsdDogJyArIHRoaXMudmFsdWUpOwoKICAgICAgICAgICAgICAgIGlmKHRoaXMudmFsdWUuaW5kZXhPZih0cmFuc2Zlcl93b3JkKT49MCkgewogICAgICAgICAgICAgICAgICAgIHZhciBkZXN0aW5vID0gc3RyaXBOb25OdW1lcmljKHRoaXMudmFsdWUpOwogICAgICAgICAgICAgICAgICAgIGRlYnVnKCJ0cmFuc2ZpZXJvIGEgIitkZXN0aW5vKTsKICAgICAgICAgICAgICAgICAgICBkaWFsKGRlc3Rpbm8pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYodGhpcy52YWx1ZS5pbmRleE9mKGRpYWxfd29yZCk+PTApIHsKICAgICAgICAgICAgICAgICAgICB2YXIgZGVzdGlubyA9IHN0cmlwTm9uTnVtZXJpYyh0aGlzLnZhbHVlKTsKICAgICAgICAgICAgICAgICAgICBkZWJ1ZygidHJhbnNmaWVybyBhICIrZGVzdGlubyk7CiAgICAgICAgICAgICAgICAgICAgZGlhbChkZXN0aW5vKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmKHRoaXMudmFsdWUuaW5kZXhPZihkb25vdGRpc3R1cmJfd29yZCk+PTApIHsKICAgICAgICAgICAgICAgICAgc2V0aW5mbygiRG8gbm90IERpc3R1cmIiKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmKHRoaXMudmFsdWUuaW5kZXhPZihhdmFpbGFibGVfd29yZCk+PTApIHsKICAgICAgICAgICAgICAgICAgc2V0aW5mbygnJyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZih0aGlzLnZhbHVlLmluZGV4T2YoaGFuZ3VwX3dvcmQpPj0wKSB7CiAgICAgICAgICAgICAgICAgICBoYW5ndXAobXlwb3NpdGlvbik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9LAoKICAgICAgICBpbml0OiBmdW5jdGlvbigpIHsKICAgICAgICAgICAgaWYoJCgnI2JveF9zcGVlY2hib3gnKS5sZW5ndGg9PTApIHsKICAgICAgICAgICAgICAgIGlmICgnd2Via2l0U3BlZWNoUmVjb2duaXRpb24nIGluIHdpbmRvdykgewogICAgICAgICAgICAgICAgICAgIHJlY29nbml0aW9uID0gbmV3IHdlYmtpdFNwZWVjaFJlY29nbml0aW9uKCk7CiAgICAgICAgICAgICAgICAgICAgcmVjb2duaXRpb24uY29udGludW91cyA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgcmVjb2duaXRpb24uaW50ZXJpbVJlc3VsdHMgPSBmYWxzZTsKCiAgICAgICAgICAgICAgICAgICAgcmVjb2duaXRpb24ub25zdGFydCA9IGZ1bmN0aW9uKCkgeyAKICAgICAgICAgICAgICAgICAgICAgICAgZGVidWcoJ3NwZWVjaCBzdGFydCcpOyAKICAgICAgICAgICAgICAgICAgICAgICAgcmVjb2duaXppbmc9MTsKICAgICAgICAgICAgICAgICAgICAgICAgJCgnI3NwZWVjaC1taWMnKS5hZGRDbGFzcygnc3BlZWNocmVjb24nKS5yZW1vdmVDbGFzcygnc3BlZWNocmVjb2ZmJyk7IAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICByZWNvZ25pdGlvbi5vbnJlc3VsdCA9IGZ1bmN0aW9uKGV2ZW50KSB7IAogICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IGV2ZW50LnJlc3VsdEluZGV4OyBpIDwgZXZlbnQucmVzdWx0cy5sZW5ndGg7ICsraSkgewogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LnJlc3VsdHNbaV0uaXNGaW5hbCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlYnVnKCdmaW5hbCA9ICcgKyBldmVudC5yZXN1bHRzW2ldWzBdLnRyYW5zY3JpcHQpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBiZXN0bWF0Y2ggPSBldmVudC5yZXN1bHRzW2ldWzBdLnRyYW5zY3JpcHQ7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCgnI3NwZWVjaC1pbnB1dC1maWVsZCcpLnZhbChiZXN0bWF0Y2gpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGJlc3RtYXRjaC5pbmRleE9mKHRyYW5zZmVyX3dvcmQpPj0wKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBkZXN0aW5vID0gc3RyaXBOb25OdW1lcmljKGJlc3RtYXRjaCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlYnVnKCJ0cmFuc2ZlciB0byAiK2Rlc3Rpbm8pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWFsKGRlc3Rpbm8pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihiZXN0bWF0Y2guaW5kZXhPZihkaWFsX3dvcmQpPj0wKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBkZXN0aW5vID0gc3RyaXBOb25OdW1lcmljKGJlc3RtYXRjaCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlYnVnKCJkaWFsICIrZGVzdGlubyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpYWwoZGVzdGlubyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGJlc3RtYXRjaC5pbmRleE9mKGRvbm90ZGlzdHVyYl93b3JkKT49MCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRpbmZvKCJEbyBub3QgRGlzdHVyYiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihiZXN0bWF0Y2guaW5kZXhPZihhdmFpbGFibGVfd29yZCk+PTApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0aW5mbygnJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGJlc3RtYXRjaC5pbmRleE9mKGhhbmd1cF93b3JkKT49MCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5ndXAobXlwb3NpdGlvbik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVidWcoJ2ludGVyaW0gPSAnICsgZXZlbnQucmVzdWx0c1tpXVswXS50cmFuc2NyaXB0KTsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgIH0gCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIHJlY29nbml0aW9uLm9uZXJyb3IgPSBmdW5jdGlvbihldmVudCkgeyAKICAgICAgICAgICAgICAgICAgICAgICAgZGVidWcoJ2Vycm9yJyk7IAogICAgICAgICAgICAgICAgICAgICAgICAkKCcjc3BlZWNoLW1pYycpLnJlbW92ZUNsYXNzKCdzcGVlY2hyZWNvbicpLmFkZENsYXNzKCdzcGVlY2hyZWNvZmYnKTsgCiAgICAgICAgICAgICAgICAgICAgICAgIHJlY29nbml6aW5nPTA7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIHJlY29nbml0aW9uLm9uZW5kID0gZnVuY3Rpb24oKSB7IAogICAgICAgICAgICAgICAgICAgICAgICBkZWJ1Zygnc3BlZWNoIGVuZCcpOyAKICAgICAgICAgICAgICAgICAgICAgICAgJCgnI3NwZWVjaC1taWMnKS5yZW1vdmVDbGFzcygnc3BlZWNocmVjb24nKS5hZGRDbGFzcygnc3BlZWNocmVjb2ZmJyk7IAogICAgICAgICAgICAgICAgICAgICAgICByZWNvZ25pemluZz0wOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICByZWNvZ25pdGlvbi5sYW5nID0gc3BlZWNobGFuZ3VhZ2U7CiAgICAgICAgICAgICAgICAgICAgcmVjb2duaXRpb24uc3RhcnQoKTsKCiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbWJlZCgpOwoKICAgICAgICAgICAgICAgICAgICAvL3ZhciBpbnB1dCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ1t4LXdlYmtpdC1zcGVlY2hdJyk7CiAgICAgICAgICAgICAgICAgICAgLy9pbnB1dC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCB0aGlzLmlucHV0Q2hhbmdlLCBmYWxzZSk7CiAgICAgICAgICAgICAgICAgICAgLy9pbnB1dC5hZGRFdmVudExpc3RlbmVyKCd3ZWJraXRzcGVlY2hjaGFuZ2UnLCB0aGlzLmlucHV0Q2hhbmdlLCBmYWxzZSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0oKSk7Cg==", "slot": "0" } Sending style speech to 5313 192.168.1.253:54796 => { "btn": "7@GENERAL", "cmd": "style", "data": "I3NwZWVjaC1pbnB1dC1maWVsZCB7CndpZHRoOiA3MCU7CmhlaWdodDogMjBweDsKcGFkZGluZzogMTBweCAxNXB4Owpmb250LXNpemU6IDEyMCU7CmJvcmRlci1yYWRpdXM6IDEwcHg7CmJvcmRlcjogMXB4IHNvbGlkICNjY2M7Cm91dGxpbmU6IDA7Cn0KCiNzcGVlY2gtbWljIHsKd2lkdGg6NTBweDsKaGVpZ2h0OjQwcHg7CmJvcmRlci1yYWRpdXM6IDEwcHg7CmJhY2tncm91bmQtY29sb3I6ICNGRkY7CmJvcmRlcjogMXB4IHNvbGlkICNjY2M7Cm91dGxpbmU6MDsKZmxvYXQ6cmlnaHQ7CmJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsKYmFja2dyb3VuZC1wb3NpdGlvbjpyaWdodDsKY3Vyc29yOiBwb2ludGVyOwp9Cgouc3BlZWNocmVjb24gewpiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9naWY7YmFzZTY0LFIwbEdPRGxoTWdBeUFLVXpBSm1abVpxYW1wdWJtNXljbkoyZG5aNmVucCtmbjZDZ29LR2hvYUtpb3FPam82U2twS1dscGFhbXBxZW5wNm1wcWFxcXFxdXJxNnlzcksydHJhNnVyckd4c2JLeXNyT3pzN1cxdGJhMnRybTV1YnE2dXJ5OHZMMjl2YjYrdnIrL3Y4REF3TUhCd2NiR3hzckt5czdPenMvUHo5SFIwZExTMHRQVDA5VFUxTnJhMnR6YzNON2UzdC9mMytEZzRPTGk0dVRrNU9YbDVlZm41Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL3lINUJBRVVBRDhBTEFBQUFBQXlBRElBQUFiK3dKOXdTQ3dhajhpa2NzbHNPcC9RcUhSS3JWcXYyS3gyeSsxNnYrQ3dlRXcreWthZVV4bHBNaVFPQzhlNktETU1CSUtCUWpJZmloUURBWUlDQlRKOVB4MElBb0tDQml1SGlZRUJlWTZRaW93Q2xYMkppNE1HTEphZGphQ2JsNTZrYzV5TUFRV29heDBIb2dDZlpDY2RLa0lkQ2FJQkJpMUNJaHlHWGg4WEhVSWxDNklEQTBNRUV5NWZLQThRUXcyN2VRNGdRakVHQjJFRUNLZ1ZCUVlFMjBJZkR4VmhIQTRSUkRLdUxRVUl1R0VLQ2haSUxBY05HV05hSEdEQWdBUVJHQjhDT0poUTVvVUVCZzBHTEhpZzZNRUJEWDFJVUFoQWdJQUJBeGZ1SGVxR0FNTWhJd2NVZkRoWkJNR0NZeXlIQ0lpd0llYVFFQjFTMk56SnM2Y0t6NTlBZ3dvZFN2UktFQUE3KTsKfQoKLnNwZWVjaHJlY29mZiB7CmJhY2tncm91bmQtaW1hZ2U6IHVybChkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhNZ0F5QU1aZ0FQc0RRL29FUlBzRlJQa0dSZnNHUmZvSFJ2Y0pSdnNJUi9zSlIvc0tTUHNMU2ZzTlN2c1FUZnNUVC9zZFZ1SXFXdndqVzl3MFgvd3ladFEvWnVRN1ovdzFhZGRDYU10T2J1Sk5kTUZkZC94T2U4Umdlc1ZoZThaaWZQeFVmOVZ4aTZ4K2l2MW9qcVNMa2FTTWt2MTBsK3A5bWFxU21KbVptWnFhbXEyVm01dWJtNXljbkoyZG5lcUduLzJCb1o2ZW5wK2ZuNkNnb0tHaG9hS2lvcU9qbzZTa3BLV2xwYWFtcHFlbnA2bXBxZjJRcktxcXFxdXJxNnlzcksydHJhNnVydjJaczdHeHNiT3pzN1cxdGJhMnRybTV1YnE2dXJ5OHZMMjl2YjYrdnIrL3YvNnR3c0RBd01IQndjYkd4c3JLeXM3T3p2N0EwTkhSMGRMUzB0UFQwOVRVMVA3TzJ0cmEydDdlM3QvZjMrRGc0T0xpNHVUazVPWGw1ZWZuNS8vbTdmLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL3lINUJBRVVBSDhBTEFBQUFBQXlBRElBQUFmK2dIK0NnNFNGaG9lSWlZcUxqSTJPajVDUmtwT1VsWmFYbUptYW01eWRucCtnb1poZlZsK2lqRkVPQUJxblhrOUpVNFk2RFFBQURLSlNNRE14TlRpRVVRcTFDQ1NoWGpBcktpb3JORDJDczdVS1VhSk9OQ3NvMXlvdlhsRzBBQTA2cDBneUt0ZlhNQ1hCM3RMaE10WW95aHNFdFEzcjdPUW9JQkVEdFFuZ3A0TGl5SWw0VUl0QWhTWC9CZ1ZFTWFGV2dCWUpDWWtiTVNFQWdBRWJzRVJVYUNKQ0xRTVpYbWpjK0FlSmhWb0RNcHlBTVZMVUZDUlgvbnpCVUF0QUJuTlpCRGs1NHVXVEVpRkkvb1NvZWVIYWloV0RXUGpROG9sS2poMUFhblpJdGdJSEUwRmRZTVFJeFlKRGdWb2hncnlBd2VLcUlDVTVnb1Q2c0ErQUIxT0ZYbHIreWZKQ1JzeFBRQmJVb21ES0VKWVlONGlBY2xGTGdJVVVOcUFRNHFJRUJRNGZuNzRNQmJ1bGg0MGJLMnJrR0pjalJwSElIbXFHNkF2bEJ3b1dMR0RBRUhLM1U1UUtOVjBZeWlwalNLZ29FR29kQUlJb0JnMGxvTGpWWXNBYmtZd2FRVDhSVnFkSUJROGp3U1ZBOEplb0NaSXFKTE5yMzg2OXUvZnY0TU9MSDc4cEVBQTcpOwp9Cg==", "slot": "0" } 192.168.1.253:54796 => { "btn": "21@GENERAL", "cmd": "zbuttons", "data": "MUBHRU5FUkFMfGJ1dHRvbnwhRVhURU5TSU9OPTI2NjQhUFJJVkFDWT1OT05FIUxBQkVMPUNvbmZlcmVuY2UhTUFJTkNIQU5ORUw9Q09ORkVSRU5DRS8yNjY0IUFVVE9BTlNXRVJIRUFERVI9X19TSVBBRERIRUFERVI1MT1DYWxsLUluZm89YW5zd2VyLWFmdGVyPTAuMDAxIVRZUEU9Y29uZmVyZW5jZSFDT05URVhUPWV4dC1tZWV0bWUKMkBHRU5FUkFMfGJ1dHRvbnwhRVhURU5TSU9OPTI2NjMhUFJJVkFDWT1OT05FIUxBQkVMPUNPTkYhTUFJTkNIQU5ORUw9Q09ORkVSRU5DRS8yNjYzIUFVVE9BTlNXRVJIRUFERVI9X19TSVBBRERIRUFERVI1MT1DYWxsLUluZm89YW5zd2VyLWFmdGVyPTAuMDAxIVRZUEU9Y29uZmVyZW5jZSFDT05URVhUPWV4dC1tZWV0bWUKM0BHRU5FUkFMfGJ1dHRvbnwhUFJJVkFDWT1OT05FIUVYVEVOVk9JQ0VNQUlMPSMyMjUxN0Bmcm9tLWludGVybmFsIUxBQkVMPUpvaGFubiFNQUlOQ0hBTk5FTD1sb2NhbC8yNTE3QG91dGJvdW5kLWFsbHJvdXRlcyFRVUVVRUNPTlRFWFQ9ZnJvbS1xdWV1ZSFDVVNUT01BU1REQj1DRi8yNTE3IVRZUEU9ZXh0ZW5zaW9uIVFVRVVFQ0hBTk5FTD1Mb2NhbC8yNTE3QGZyb20tcXVldWUvbnxQZW5hbHR5PTB8TWVtYmVyTmFtZT1Kb2hhbm58U3RhdGVJbnRlcmZhY2U9bG9jYWwvMjUxN0BvdXRib3VuZC1hbGxyb3V0ZXMhRU1BSUw9am9oYW5uLnp1cm5lckBzeWRhLm9yZyFFWFRFTlNJT049MjUxNyFFWFRFUk5BTD05ODY2MjQwMiFNQUlMQk9YPTI1MTdAZGVmYXVsdCFBVVRPQU5TV0VSSEVBREVSPV9fU0lQQURESEVBREVSNTE9Q2FsbC1JbmZvPWFuc3dlci1hZnRlcj0wLjAwMSFDT05URVhUPWZyb20taW50ZXJuYWwKNEBHRU5FUkFMfGJ1dHRvbnwhUFJJVkFDWT1OT05FIUxBQkVMPXRlc3QhTUFJTkNIQU5ORUw9bG9jYWwvMzEwMEBvdXRib3VuZC1hbGxyb3V0ZXMhUVVFVUVDT05URVhUPWZyb20tcXVldWUhQ1VTVE9NQVNUREI9Q0YvMzEwMCFUWVBFPWV4dGVuc2lvbiFRVUVVRUNIQU5ORUw9TG9jYWwvMzEwMEBmcm9tLXF1ZXVlL258UGVuYWx0eT0wfE1lbWJlck5hbWU9dGVzdHxTdGF0ZUludGVyZmFjZT1sb2NhbC8zMTAwQG91dGJvdW5kLWFsbHJvdXRlcyFFWFRFTlNJT049MzEwMCFBVVRPQU5TV0VSSEVBREVSPV9fU0lQQURESEVBREVSNTE9Q2FsbC1JbmZvPWFuc3dlci1hZnRlcj0wLjAwMSFDT05URVhUPWZyb20taW50ZXJuYWwKNUBHRU5FUkFMfGJ1dHRvbnwhUFJJVkFDWT1OT05FIUdST1VQPUFzdGVyaXNrIUxBQkVMPUpvaGFubiFNQUlOQ0hBTk5FTD1TSVAvNTMxMiFRVUVVRUNPTlRFWFQ9ZnJvbS1xdWV1ZSFDVVNUT01BU1REQj1DRi81MzEyIVRZUEU9ZXh0ZW5zaW9uIVFVRVVFQ0hBTk5FTD1Mb2NhbC81MzEyQGZyb20tcXVldWUvbnxQZW5hbHR5PTB8TWVtYmVyTmFtZT1Kb2hhbm58U3RhdGVJbnRlcmZhY2U9U0lQLzUzMTIhRVhURU5TSU9OPTUzMTIhQVVUT0FOU1dFUkhFQURFUj1fX1NJUEFEREhFQURFUjUxPUNhbGwtSW5mbz1hbnN3ZXItYWZ0ZXI9MC4wMDEhQ09OVEVYVD1mcm9tLWludGVybmFsCjZAR0VORVJBTHxidXR0b258IVBSSVZBQ1k9Tk9ORSFHUk9VUD1Bc3RlcmlzayFMQUJFTD1Kb2hhbm4gTW9iaWxlIU1BSU5DSEFOTkVMPUlBWDIvNTMxOCFRVUVVRUNPTlRFWFQ9ZnJvbS1xdWV1ZSFDVVNUT01BU1REQj1DRi81MzE4IVRZUEU9ZXh0ZW5zaW9uIVFVRVVFQ0hBTk5FTD1Mb2NhbC81MzE4QGZyb20tcXVldWUvbnxQZW5hbHR5PTB8TWVtYmVyTmFtZT1Kb2hhbm4gTW9iaWxlfFN0YXRlSW50ZXJmYWNlPUlBWDIvNTMxOCFFTUFJTD1Kb2hhbm4uWnVybmVyQHN5ZGEub3JnIUVYVEVOU0lPTj01MzE4IUVYVEVSTkFMPTk4NjYyNDAyIUFVVE9BTlNXRVJIRUFERVI9X19TSVBBRERIRUFERVI1MT1DYWxsLUluZm89YW5zd2VyLWFmdGVyPTAuMDAxIU9SSUdJTkFURUNIQU5ORUw9TG9jYWwvKjgwNTMxOEBmcm9tLWludGVybmFsIUNPTlRFWFQ9ZnJvbS1pbnRlcm5hbAo3QEdFTkVSQUx8YnV0dG9ufCFQUklWQUNZPU5PTkUhTEFCRUw9Sm9oYW5uIFJlbW90ZSBPZmZpY2UhTUFJTkNIQU5ORUw9U0lQLzUzMTMhUVVFVUVDT05URVhUPWZyb20tcXVldWUhQ1VTVE9NQVNUREI9Q0YvNTMxMyFRVUVVRUNIQU5ORUw9TG9jYWwvNTMxM0Bmcm9tLXF1ZXVlL258UGVuYWx0eT0wfE1lbWJlck5hbWU9Sm9oYW5uIFJlbW90ZSBPZmZpY2V8U3RhdGVJbnRlcmZhY2U9U0lQLzUzMTMmTG9jYWwvNTMxM0Bmcm9tLXF1ZXVlL258UGVuYWx0eT0wfE1lbWJlck5hbWU9Sm9oYW5uIFJlbW90ZSBPZmZpY2V8U3RhdGVJbnRlcmZhY2U9U0lQLzUzMTN8UXVldWU9NDQ0MyZMb2NhbC81MzEzQGZyb20tcXVldWUvbnxQZW5hbHR5PTB8TWVtYmVyTmFtZT1Kb2hhbm4gUmVtb3RlIE9mZmljZXxTdGF0ZUludGVyZmFjZT1TSVAvNTMxM3xRdWV1ZT01MzIwIUVYVEVSTkFMPTk0MzQyMDAwIUFVVE9BTlNXRVJIRUFERVI9X19TSVBBRERIRUFERVI1MT1DYWxsLUluZm89YW5zd2VyLWFmdGVyPTAuMDAxIU9SSUdJTkFURUNIQU5ORUw9TG9jYWwvKjgwNTMxM0Bmcm9tLWludGVybmFsIUdST1VQPUFzdGVyaXNrIUVYVEVOVk9JQ0VNQUlMPSMyNTMxM0Bmcm9tLWludGVybmFsIVRZUEU9ZXh0ZW5zaW9uIUVNQUlMPUpvaGFubi5adXJuZXJAc3lkYS5vcmchRVhURU5TSU9OPTUzMTMhTUFJTEJPWD01MzEzQGRlZmF1bHQhQ09OVEVYVD1mcm9tLWludGVybmFsCjhAR0VORVJBTHxidXR0b258IVBSSVZBQ1k9Tk9ORSFHUk9VUD1Bc3RlcmlzayFFWFRFTlZPSUNFTUFJTD0jMjIyNTBAZnJvbS1pbnRlcm5hbCFMQUJFTD1NYXR0IE9mZmljZSFNQUlOQ0hBTk5FTD1TSVAvMjI1MCFRVUVVRUNPTlRFWFQ9ZnJvbS1xdWV1ZSFDVVNUT01BU1REQj1DRi8yMjUwIVRZUEU9ZXh0ZW5zaW9uIVFVRVVFQ0hBTk5FTD1Mb2NhbC8yMjUwQGZyb20tcXVldWUvbnxQZW5hbHR5PTB8TWVtYmVyTmFtZT1PIE1hdHR8U3RhdGVJbnRlcmZhY2U9U0lQLzIyNTAhRU1BSUw9bWF0dGJAc3lkYS5vcmchRVhURU5TSU9OPTIyNTAhTUFJTEJPWD0yMjUwQGRlZmF1bHQhQVVUT0FOU1dFUkhFQURFUj1fX1NJUEFEREhFQURFUjUxPUNhbGwtSW5mbz1hbnN3ZXItYWZ0ZXI9MC4wMDEhQ09OVEVYVD1mcm9tLWludGVybmFsCjlAR0VORVJBTHxidXR0b258IVBSSVZBQ1k9Tk9ORSFHUk9VUD1Bc3RlcmlzayFMQUJFTD1Qb2x5Y29tIDMhTUFJTkNIQU5ORUw9U0lQLzUyMDMhUVVFVUVDT05URVhUPWZyb20tcXVldWUhQ1VTVE9NQVNUREI9Q0YvNTIwMyFUWVBFPWV4dGVuc2lvbiFRVUVVRUNIQU5ORUw9TG9jYWwvNTIwM0Bmcm9tLXF1ZXVlL258UGVuYWx0eT0wfE1lbWJlck5hbWU9UG9seWNvbSAzfFN0YXRlSW50ZXJmYWNlPVNJUC81MjAzIUVYVEVOU0lPTj01MjAzIUFVVE9BTlNXRVJIRUFERVI9X19TSVBBRERIRUFERVI1MT1DYWxsLUluZm89YW5zd2VyLWFmdGVyPTAuMDAxIUNPTlRFWFQ9ZnJvbS1pbnRlcm5hbAoxMEBHRU5FUkFMfGJ1dHRvbnwhUFJJVkFDWT1OT05FIUdST1VQPUFzdGVyaXNrIUVYVEVOVk9JQ0VNQUlMPSMyNTMxNUBmcm9tLWludGVybmFsIUxBQkVMPVNlYW4gTW9iaWxlIU1BSU5DSEFOTkVMPUlBWDIvNTMxNSFRVUVVRUNPTlRFWFQ9ZnJvbS1xdWV1ZSFDVVNUT01BU1REQj1DRi81MzE1IVRZUEU9ZXh0ZW5zaW9uIVFVRVVFQ0hBTk5FTD1Mb2NhbC81MzE1QGZyb20tcXVldWUvbnxQZW5hbHR5PTB8TWVtYmVyTmFtZT1TZWFuIE1vYmlsZXxTdGF0ZUludGVyZmFjZT1JQVgyLzUzMTUhRU1BSUw9U2Vhbi5aaWdtdW5kQHN5ZGEub3JnIUVYVEVOU0lPTj01MzE1IU1BSUxCT1g9NTMxNUBkZWZhdWx0IUFVVE9BTlNXRVJIRUFERVI9X19TSVBBRERIRUFERVI1MT1DYWxsLUluZm89YW5zd2VyLWFmdGVyPTAuMDAxIUNPTlRFWFQ9ZnJvbS1pbnRlcm5hbAoxMUBHRU5FUkFMfGJ1dHRvbnwhUFJJVkFDWT1OT05FIUdST1VQPUFzdGVyaXNrIUVYVEVOVk9JQ0VNQUlMPSMyNDAwMEBmcm9tLWludGVybmFsIUxBQkVMPVNoZWtoYXIgU3RvbGxlciBNb2JpbGUhTUFJTkNIQU5ORUw9SUFYMi80MDAwIVFVRVVFQ09OVEVYVD1mcm9tLXF1ZXVlIUNVU1RPTUFTVERCPUNGLzQwMDAhVFlQRT1leHRlbnNpb24hUVVFVUVDSEFOTkVMPUxvY2FsLzQwMDBAZnJvbS1xdWV1ZS9ufFBlbmFsdHk9MHxNZW1iZXJOYW1lPVNoZWtoYXIgU3RvbGxlciBNb2JpbGV8U3RhdGVJbnRlcmZhY2U9SUFYMi80MDAwIUVNQUlMPVNoZWtoYXJAc3lkYS5vcmchRVhURU5TSU9OPTQwMDAhTUFJTEJPWD00MDAwQGRlZmF1bHQhQVVUT0FOU1dFUkhFQURFUj1fX1NJUEFEREhFQURFUjUxPUNhbGwtSW5mbz1hbnN3ZXItYWZ0ZXI9MC4wMDEhQ09OVEVYVD1mcm9tLWludGVybmFsCjEyQEdFTkVSQUx8YnV0dG9ufCFQUklWQUNZPU5PTkUhR1JPVVA9QXN0ZXJpc2shTEFCRUw9Wm9pcGVyIFBDIU1BSU5DSEFOTkVMPUlBWDIvNTMxOSFRVUVVRUNPTlRFWFQ9ZnJvbS1xdWV1ZSFDVVNUT01BU1REQj1DRi81MzE5IVRZUEU9ZXh0ZW5zaW9uIVFVRVVFQ0hBTk5FTD1Mb2NhbC81MzE5QGZyb20tcXVldWUvbnxQZW5hbHR5PTB8TWVtYmVyTmFtZT1ab2lwZXIgUEN8U3RhdGVJbnRlcmZhY2U9SUFYMi81MzE5IUVYVEVOU0lPTj01MzE5IUFVVE9BTlNXRVJIRUFERVI9X19TSVBBRERIRUFERVI1MT1DYWxsLUluZm89YW5zd2VyLWFmdGVyPTAuMDAxIUNPTlRFWFQ9ZnJvbS1pbnRlcm5hbAoxM0BHRU5FUkFMfGJ1dHRvbnwhRVhURU5TSU9OPTcwIVBSSVZBQ1k9Tk9ORSFMQUJFTD1Td2l0Y2hib2FyZCBDYWxsIFBhcmshTUFJTkNIQU5ORUw9UEFSSy9kZWZhdWx0IUFVVE9BTlNXRVJIRUFERVI9X19TSVBBRERIRUFERVI1MT1DYWxsLUluZm89YW5zd2VyLWFmdGVyPTAuMDAxIVRZUEU9cGFyayFDT05URVhUPXBhcmtlZGNhbGxzCjE0QEdFTkVSQUx8YnV0dG9ufCFFWFRFTlNJT049NTMyMCFQUklWQUNZPU5PTkUhTEFCRUw9UmVndWxhciBDYWxscyB0byBBdHRlbmRhbnQhTUFJTkNIQU5ORUw9UVVFVUUvNTMyMF5MT0NBTEhPU1QhQVVUT0FOU1dFUkhFQURFUj1fX1NJUEFEREhFQURFUjUxPUNhbGwtSW5mbz1hbnN3ZXItYWZ0ZXI9MC4wMDEhVFlQRT1xdWV1ZSFDT05URVhUPWZyb20taW50ZXJuYWwKMTVAR0VORVJBTHxidXR0b258IUVYVEVOU0lPTj00NDQzIVBSSVZBQ1k9Tk9ORSFMQUJFTD1TZWN1cml0eSFNQUlOQ0hBTk5FTD1RVUVVRS80NDQzXkxPQ0FMSE9TVCFBVVRPQU5TV0VSSEVBREVSPV9fU0lQQURESEVBREVSNTE9Q2FsbC1JbmZvPWFuc3dlci1hZnRlcj0wLjAwMSFUWVBFPXF1ZXVlIUNPTlRFWFQ9ZnJvbS1pbnRlcm5hbAo=", "slot": "" } Send status notification to AnyEvent::Handle=HASH(0x7711500), user: 5313 192.168.1.253:54796 => { "btn": "0@GENERAL", "cmd": "notionline", "data": "7", "slot": "0" } Send status notification to AnyEvent::Handle=HASH(0x62406b0), user: 5313 192.168.1.253:54735 => { "btn": "0@GENERAL", "cmd": "notionline", "data": "7", "slot": "0" } 192.168.1.253:54796 <= -- PROCESS_FLASH_COMMAND origen 0 accion pluginlang destino en~conferencebutton password 4aacc06cabbceff30e8bdefb1b58cb5f Change language for plugin conferencebutton to en Language file found /var/www/html/fop2/admin/plugins/conferencebutton/lang/en.js 192.168.1.253:54796 => { "btn": "0", "cmd": "setpluginlang", "data": "conferencebutton!bGFuZ1snY29uZmVyZW5jZSddPSdDb25mZXJlbmNlJzsK", "slot": "0" } New client connection from socket AnyEvent::Handle=HASH(0x7711af0) - 127.0.0.1:45000 Flash clients connected: 3 -------------------------------------------------------------------------------------------------- Client 192.168.1.253:54796, user: 5313@GENERAL, type: websocket (AnyEvent::Handle=HASH(0x7711500)) Client 127.0.0.1:45000, user: no user, type: no type Client 192.168.1.253:54735, user: 5313@GENERAL, type: websocket (AnyEvent::Handle=HASH(0x62406b0)) -------------------------------------------------------------------------------------------------- 127.0.0.1:45000 <= -- PROCESS_FLASH_COMMAND origen GENERAL accion checkauth destino 5313 password 4aacc06cabbceff30e8bdefb1b58cb5f Check Auth ok for 5313 from 127.0.0.1:45000 Client Disconnection - remove client on error from socket AnyEvent::Handle=HASH(0x7711af0) (127.0.0.1:45000) 192.168.1.253:54796 <= -- PROCESS_FLASH_COMMAND origen 0 accion pluginlang destino en~speech password 4aacc06cabbceff30e8bdefb1b58cb5f Change language for plugin speech to en Language file found /var/www/html/fop2/admin/plugins/speech/lang/en.js 192.168.1.253:54796 => { "btn": "0", "cmd": "setpluginlang", "data": "speech!bGFuZ1snc3BlZWNoX2lucHV0J109J1NwZWVjaCBJbnB1dCc7Cg==", "slot": "0" } 192.168.1.253:54796 <= -- PROCESS_FLASH_COMMAND origen 1 accion initState destino password 4aacc06cabbceff30e8bdefb1b58cb5f ** FIRST CLIENT STATUS for client at 192.168.1.253:54796 192.168.1.253:54796 => { "btn": "0@GENERAL", "cmd": "demo", "data": "2", "slot": "0" } 192.168.1.253:54796 => { "btn": "0", "cmd": "pong", "data": "CiAgICAgICAgdmFyIHpoID0gZmluZEhpZ2hlc3RaKCk7CiAgICAgICAgdmFyIGZvb3QgPSAkKCJmb290ZXIiKTsKICAgICAgICB2YXIgdGVtcGxhdGUgPSBCYXNlNjQuZGVjb2RlKCJQR1JwZGlCcFpEMGlJM3RwWkgwaVBqeGhJSFJoY21kbGREMGlYMkpzWVc1cklpQm9jbVZtUFNKb2RIUndPaTh2ZDNkM0xtWnZjREl1WTI5dElqNUdUMUF5UEM5aFBpQXRJRlpsY25OcGIyNGdQSE53WVc0Z2FXUTlJbVp2Y0habGNuTnBiMjRpUGlON2RtVnljMmx2Ym4wOEwzTndZVzQrSUMwZ1RHbDBaU0JXWlhKemFXOXVJQzBnVEdsdGFYUmxaQ0IwYnlBeE5TQmxlSFJsYm5OcGIyNXpJQzRnUW5WNUlHbDBJRHhoSUdoeVpXWTlJbWgwZEhBNkx5OTNkM2N1Wm05d01pNWpiMjB2WW5WNUxuQm9jQ0krYm05M1BDOWhQaUJtYjNJZ2RXNXNhVzFwZEdWa0lHVjRkR1Z1YzJsdmJuTXVJRWxtSUhsdmRTQmhiSEpsWVdSNUlHaGhkbVVnWVNCamIyUmxJR1Z1ZEdWeUlHbDBJRHhoSUdoeVpXWTlJaU1pSUc5dVEyeHBZMnM5SW1admNESmZjbVZuYVhOMFpYSW9LVHNnY21WMGRYSnVJR1poYkhObE95SSthR1Z5WlR3dllUNDhMMlJwZGo0PSIpOwoKICAgICAgICBpZihjdXJyZW50cmVsZWFzZSAhPT0gIiIpIHsKICAgICAgICAgICAgaWYoZGVtb3ZlcnNpb24gPT0gIjAiKSB7CiAgICAgICAgICAgICAgICBkb2N1bWVudC50aXRsZSA9ICJGbGFzaCBPcGVyYXRvciBQYW5lbCAyIjsKICAgICAgICAgICAgICAgIGZvb3QudXBkYXRlKG5ldyBUZW1wbGF0ZSh0ZW1wbGF0ZSkuZXZhbHVhdGUoe3ZlcnNpb246IGN1cnJlbnRyZWxlYXNlLCBsaWNlbnNlOiBjdXJyZW50bGljZW5zZX0pLCAiYWZ0ZXIiICk7CiAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICBpZihkZW1vdmVyc2lvbiA9PSAiMSIpIHsKICAgICAgICAgICAgICAgIGRvY3VtZW50LnRpdGxlID0gIkZsYXNoIE9wZXJhdG9yIFBhbmVsIDIiOwogICAgICAgICAgICAgICAgZm9vdC51cGRhdGUobmV3IFRlbXBsYXRlKHRlbXBsYXRlKS5ldmFsdWF0ZSh7dmVyc2lvbjogY3VycmVudHJlbGVhc2UsIGxpY2Vuc2U6IGN1cnJlbnRsaWNlbnNlfSksICJhZnRlciIgKTsKICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgIGlmKGRlbW92ZXJzaW9uID09ICIyIikgewogICAgICAgICAgICAgICAgZG9jdW1lbnQudGl0bGUgPSAiRmxhc2ggT3BlcmF0b3IgUGFuZWwgMiI7CiAgICAgICAgICAgICAgICBmb290LnVwZGF0ZShuZXcgVGVtcGxhdGUodGVtcGxhdGUpLmV2YWx1YXRlKHt2ZXJzaW9uOiBjdXJyZW50cmVsZWFzZSwgbGljZW5zZTogY3VycmVudGxpY2Vuc2V9KSwgImFmdGVyIiApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZvb3Quc3R5bGUudmlzaWJpbGl0eSA9ICJ2aXNpYmxlIjsKICAgICAgICAgICAgZm9vdC5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIjsKICAgICAgICAgICAgZm9vdC5zdHlsZS5iYWNrZ3JvdW5kID0gIiNBQUEiOwogICAgICAgICAgICBmb290LnN0eWxlLmNvbG9yID0gIiMwMDAiOwogICAgICAgICAgICBmb290LnN0eWxlLmJvdHRvbSA9ICIwIjsKICAgICAgICAgICAgZm9vdC5zdHlsZS5sZWZ0ID0gIjAiOwogICAgICAgICAgICBmb290LnN0eWxlLnBhZGRpbmdUb3AgPSAiM3B4IjsKICAgICAgICAgICAgZm9vdC5zdHlsZS53aWR0aCA9ICIxMDAlIjsKICAgICAgICAgICAgZm9vdC5zdHlsZS5wb3NpdGlvbiA9ICJmaXhlZCI7CiAgICAgICAgICAgIGZvb3Quc3R5bGUuekluZGV4ID0gIiIremg7CiAgICAgICAgfQogICAg", "slot": "" } Not a reference at all Not a reference at all It's blessed into class FOP2::Conference Not a reference at all Not a reference at all Not a reference at all It's blessed into class FOP2::Conference Not a reference at all It's blessed into class FOP2::Extension 192.168.1.253:54796 => { "btn": "3@GENERAL", "cmd": "voicemail", "data": "1", "slot": "" } 192.168.1.253:54796 => { "btn": "3@GENERAL", "cmd": "voicemailcount", "data": "&vmail_count!27!0", "slot": "" } no qualify info for LOCAL/2517@OUTBOUND-ALLROUTES 3@GENERAL Not a reference at all Not a reference at all Not a reference at all It's blessed into class FOP2::Extension no qualify info for LOCAL/3100@OUTBOUND-ALLROUTES 4@GENERAL Not a reference at all Not a reference at all Not a reference at all It's blessed into class FOP2::Extension ++ GET IP for SIP/5312 = 90.124.123.123 ++ GET QUALIFY for SIP/5312 = ok 192.168.1.253:54796 => { "btn": "5@GENERAL", "cmd": "qualify", "data": "ok", "slot": "0" } Not a reference at all Not a reference at all Not a reference at all It's blessed into class FOP2::Extension ++ GET IP for IAX2/5318 = 90.124.123.123 ++ GET QUALIFY for IAX2/5318 = ok 192.168.1.253:54796 => { "btn": "6@GENERAL", "cmd": "qualify", "data": "ok", "slot": "0" } Not a reference at all Not a reference at all Not a reference at all It's blessed into class FOP2::Extension ++ GET STATUS for SIP/5313 = unpaused ++ GET IP for SIP/5313 = 90.124.123.123 192.168.1.253:54796 => { "btn": "7@GENERAL", "cmd": "status", "data": "unpaused", "slot": "0" } 192.168.1.253:54796 => { "btn": "7@GENERAL", "cmd": "rename", "data": "5313 Johann Remote Office", "slot": "" } 192.168.1.253:54796 => { "btn": "7@GENERAL", "cmd": "voicemail", "data": "2", "slot": "" } 192.168.1.253:54796 => { "btn": "7@GENERAL", "cmd": "voicemailcount", "data": "&vmail_count!0!1", "slot": "" } ++ GET QUALIFY for SIP/5313 = ok 192.168.1.253:54796 => { "btn": "7@GENERAL", "cmd": "qualify", "data": "ok", "slot": "0" } Not a reference at all Not a reference at all Not a reference at all It's blessed into class FOP2::Extension ++ GET IP for SIP/2250 = 10.1.9.29 ++ GET QUALIFY for SIP/2250 = ok 192.168.1.253:54796 => { "btn": "8@GENERAL", "cmd": "qualify", "data": "ok", "slot": "0" } Not a reference at all Not a reference at all Not a reference at all It's blessed into class FOP2::Extension ++ GET IP for SIP/5203 = 90.124.123.123 ++ GET QUALIFY for SIP/5203 = ok 192.168.1.253:54796 => { "btn": "9@GENERAL", "cmd": "qualify", "data": "ok", "slot": "0" } Not a reference at all Not a reference at all Not a reference at all It's blessed into class FOP2::Extension ++ GET IP for IAX2/5315 = (null) 192.168.1.253:54796 => { "btn": "10@GENERAL", "cmd": "voicemail", "data": "1", "slot": "" } 192.168.1.253:54796 => { "btn": "10@GENERAL", "cmd": "voicemailcount", "data": "&vmail_count!4!0", "slot": "" } ++ GET QUALIFY for IAX2/5315 = notok 192.168.1.253:54796 => { "btn": "10@GENERAL", "cmd": "qualify", "data": "notok", "slot": "0" } Not a reference at all Not a reference at all Not a reference at all It's blessed into class FOP2::Extension ++ GET IP for IAX2/4000 = (null) ++ GET QUALIFY for IAX2/4000 = notok 192.168.1.253:54796 => { "btn": "11@GENERAL", "cmd": "qualify", "data": "notok", "slot": "0" } Not a reference at all Not a reference at all Not a reference at all It's blessed into class FOP2::Extension ++ GET IP for IAX2/5319 = (null) ++ GET QUALIFY for IAX2/5319 = notok 192.168.1.253:54796 => { "btn": "12@GENERAL", "cmd": "qualify", "data": "notok", "slot": "0" } Not a reference at all Not a reference at all Not a reference at all Not a reference at all Not a reference at all Not a reference at all It's blessed into class FOP2::Park It's blessed into class FOP2::Park 192.168.1.253:54796 => { "btn": "13@GENERAL", "cmd": "details", "data": "WyBd", "slot": "0" } Not a reference at all It's blessed into class FOP2::Queue It's blessed into class FOP2::Queue ** QUEUE MEMBER LIST start for queue QUEUE/5320^LOCALHOST ** QUEUE MEMBER LIST devuelve [ { "paused": "0", "state": "free", "loc": "Local/5313@from-queue/n", "queue": "QUEUE/5320^LOCALHOST", "pty": "0", "name":"Johann Remote Office", "callstaken": "0" } ] 192.168.1.253:54796 => { "btn": "14@GENERAL", "cmd": "queuemembers", "data": "WyB7ICJwYXVzZWQiOiAiMCIsICJzdGF0ZSI6ICJmcmVlIiwgImxvYyI6ICJMb2NhbC81MzEzQGZyb20tcXVldWUvbiIsICJxdWV1ZSI6ICJRVUVVRS81MzIwXkxPQ0FMSE9TVCIsICJwdHkiOiAiMCIsICJuYW1lIjoiSm9oYW5uIFJlbW90ZSBPZmZpY2UiLCAiY2FsbHN0YWtlbiI6ICIwIiB9IF0=", "slot": "" } It's blessed into class FOP2::Queue Not a reference at all Not a reference at all Not a reference at all It's blessed into class FOP2::Queue It's blessed into class FOP2::Queue ** QUEUE MEMBER LIST start for queue QUEUE/4443^LOCALHOST ** QUEUE MEMBER LIST devuelve [ { "paused": "0", "state": "free", "loc": "Local/5313@from-queue/n", "queue": "QUEUE/4443^LOCALHOST", "pty": "0", "name":"Johann Remote Office", "callstaken": "0" } ] 192.168.1.253:54796 => { "btn": "15@GENERAL", "cmd": "queuemembers", "data": "WyB7ICJwYXVzZWQiOiAiMCIsICJzdGF0ZSI6ICJmcmVlIiwgImxvYyI6ICJMb2NhbC81MzEzQGZyb20tcXVldWUvbiIsICJxdWV1ZSI6ICJRVUVVRS80NDQzXkxPQ0FMSE9TVCIsICJwdHkiOiAiMCIsICJuYW1lIjoiSm9oYW5uIFJlbW90ZSBPZmZpY2UiLCAiY2FsbHN0YWtlbiI6ICIwIiB9IF0=", "slot": "" } It's blessed into class FOP2::Queue Not a reference at all Not a reference at all It's blessed into class FOP2::Extension ** DEMO MODE -- data discarded - 16 It's blessed into class FOP2::Extension ++ GET IP for SIP/5296644656GW2 = 74.81.71.18 ** DEMO MODE -- data discarded - 17 It's blessed into class FOP2::Extension ++ GET IP for SIP/5296644656GW1 = 65.254.44.194 ** DEMO MODE -- data discarded - 18 It's blessed into class FOP2::Extension ++ GET IP for SIP/G200AG = 10.1.1.185 ** DEMO MODE -- data discarded - 19 It's blessed into class FOP2::Extension ++ GET IP for SIP/G200AN = 10.1.1.183 ** DEMO MODE -- data discarded - 20 192.168.1.253:54796 => { "btn": "7@GENERAL", "cmd": "usersonline", "data": "Nyw3", "slot": "0" } 192.168.1.253:54796 <= -- PROCESS_FLASH_COMMAND origen 7 accion pluginlang destino en~changepresence password 4aacc06cabbceff30e8bdefb1b58cb5f Change language for plugin changepresence to en Language file found /var/www/html/fop2/admin/plugins/changepresence/lang/en.js 192.168.1.253:54796 => { "btn": "0", "cmd": "setpluginlang", "data": "changepresence!bGFuZ1snc2V0cHJlc2VuY2UnXT0nU2V0IFByZXNlbmNlJzsK", "slot": "0" } 192.168.1.253:54796 <= -- PROCESS_FLASH_COMMAND origen 7 accion pluginlang destino en~clock password 4aacc06cabbceff30e8bdefb1b58cb5f Change language for plugin clock to en Language file found /var/www/html/fop2/admin/plugins/clock/lang/en.js 192.168.1.253:54796 => { "btn": "0", "cmd": "setpluginlang", "data": "clock!bGFuZ1snY2xvY2snXT0nQ2xvY2snOwoK", "slot": "0" } 192.168.1.253:54796 <= -- PROCESS_FLASH_COMMAND origen 7 accion pluginlang destino en~conferencebutton password 4aacc06cabbceff30e8bdefb1b58cb5f Change language for plugin conferencebutton to en Language file found /var/www/html/fop2/admin/plugins/conferencebutton/lang/en.js 192.168.1.253:54796 => { "btn": "0", "cmd": "setpluginlang", "data": "conferencebutton!bGFuZ1snY29uZmVyZW5jZSddPSdDb25mZXJlbmNlJzsK", "slot": "0" } 192.168.1.253:54796 <= -- PROCESS_FLASH_COMMAND origen 7 accion pluginlang destino en~callforwardfpbx password 4aacc06cabbceff30e8bdefb1b58cb5f Change language for plugin callforwardfpbx to en Language file found /var/www/html/fop2/admin/plugins/callforwardfpbx/lang/en.js 192.168.1.253:54796 => { "btn": "0", "cmd": "setpluginlang", "data": "callforwardfpbx!bGFuZ1snc2V0Y2FsbGZvcndhcmQnXT0nU2V0IENhbGwgRm9yd2FyZCc7CmxhbmdbJ2VudGVyY2FsbGZvcndhcmQnXT0nRW50ZXIgQ2FsbCBGb3J3YXJkIE51bWJlciBmb3InOwo=", "slot": "0" } 192.168.1.253:54796 <= -- PROCESS_FLASH_COMMAND origen 7 accion pluginlang destino en~speech password 4aacc06cabbceff30e8bdefb1b58cb5f Change language for plugin speech to en Language file found /var/www/html/fop2/admin/plugins/speech/lang/en.js 192.168.1.253:54796 => { "btn": "0", "cmd": "setpluginlang", "data": "speech!bGFuZ1snc3BlZWNoX2lucHV0J109J1NwZWVjaCBJbnB1dCc7Cg==", "slot": "0" } 192.168.1.253:54796 <= -- PROCESS_FLASH_COMMAND origen 7 accion autoanswer destino 0 password 192.168.1.253:54796 <= -- PROCESS_FLASH_COMMAND origen 1 accion ping destino password Executing Client Pre Command Handler for ping pong pong conferencebutton! 127.0.0.1 -> ActionID: 27 Executing Client Pre Command Handler for ping pong pong queuecounter! 192.168.1.253:54796 => { "btn": "0", "cmd": "pong", "data": "CiAgICAgICAgdmFyIHpoID0gZmluZEhpZ2hlc3RaKCk7CiAgICAgICAgdmFyIGZvb3QgPSAkKCJmb290ZXIiKTsKICAgICAgICB2YXIgdGVtcGxhdGUgPSBCYXNlNjQuZGVjb2RlKCJQR1JwZGlCcFpEMGlJM3RwWkgwaVBqeGhJSFJoY21kbGREMGlYMkpzWVc1cklpQm9jbVZtUFNKb2RIUndPaTh2ZDNkM0xtWnZjREl1WTI5dElqNUdUMUF5UEM5aFBpQXRJRlpsY25OcGIyNGdQSE53WVc0Z2FXUTlJbVp2Y0habGNuTnBiMjRpUGlON2RtVnljMmx2Ym4wOEwzTndZVzQrSUMwZ1RHbDBaU0JXWlhKemFXOXVJQzBnVEdsdGFYUmxaQ0IwYnlBeE5TQmxlSFJsYm5OcGIyNXpJQzRnUW5WNUlHbDBJRHhoSUdoeVpXWTlJbWgwZEhBNkx5OTNkM2N1Wm05d01pNWpiMjB2WW5WNUxuQm9jQ0krYm05M1BDOWhQaUJtYjNJZ2RXNXNhVzFwZEdWa0lHVjRkR1Z1YzJsdmJuTXVJRWxtSUhsdmRTQmhiSEpsWVdSNUlHaGhkbVVnWVNCamIyUmxJR1Z1ZEdWeUlHbDBJRHhoSUdoeVpXWTlJaU1pSUc5dVEyeHBZMnM5SW1admNESmZjbVZuYVhOMFpYSW9LVHNnY21WMGRYSnVJR1poYkhObE95SSthR1Z5WlR3dllUNDhMMlJwZGo0PSIpOwoKICAgICAgICBpZihjdXJyZW50cmVsZWFzZSAhPT0gIiIpIHsKICAgICAgICAgICAgaWYoZGVtb3ZlcnNpb24gPT0gIjAiKSB7CiAgICAgICAgICAgICAgICBkb2N1bWVudC50aXRsZSA9ICJGbGFzaCBPcGVyYXRvciBQYW5lbCAyIjsKICAgICAgICAgICAgICAgIGZvb3QudXBkYXRlKG5ldyBUZW1wbGF0ZSh0ZW1wbGF0ZSkuZXZhbHVhdGUoe3ZlcnNpb246IGN1cnJlbnRyZWxlYXNlLCBsaWNlbnNlOiBjdXJyZW50bGljZW5zZX0pLCAiYWZ0ZXIiICk7CiAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICBpZihkZW1vdmVyc2lvbiA9PSAiMSIpIHsKICAgICAgICAgICAgICAgIGRvY3VtZW50LnRpdGxlID0gIkZsYXNoIE9wZXJhdG9yIFBhbmVsIDIiOwogICAgICAgICAgICAgICAgZm9vdC51cGRhdGUobmV3IFRlbXBsYXRlKHRlbXBsYXRlKS5ldmFsdWF0ZSh7dmVyc2lvbjogY3VycmVudHJlbGVhc2UsIGxpY2Vuc2U6IGN1cnJlbnRsaWNlbnNlfSksICJhZnRlciIgKTsKICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgIGlmKGRlbW92ZXJzaW9uID09ICIyIikgewogICAgICAgICAgICAgICAgZG9jdW1lbnQudGl0bGUgPSAiRmxhc2ggT3BlcmF0b3IgUGFuZWwgMiI7CiAgICAgICAgICAgICAgICBmb290LnVwZGF0ZShuZXcgVGVtcGxhdGUodGVtcGxhdGUpLmV2YWx1YXRlKHt2ZXJzaW9uOiBjdXJyZW50cmVsZWFzZSwgbGljZW5zZTogY3VycmVudGxpY2Vuc2V9KSwgImFmdGVyIiApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZvb3Quc3R5bGUudmlzaWJpbGl0eSA9ICJ2aXNpYmxlIjsKICAgICAgICAgICAgZm9vdC5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIjsKICAgICAgICAgICAgZm9vdC5zdHlsZS5iYWNrZ3JvdW5kID0gIiNBQUEiOwogICAgICAgICAgICBmb290LnN0eWxlLmNvbG9yID0gIiMwMDAiOwogICAgICAgICAgICBmb290LnN0eWxlLmJvdHRvbSA9ICIwIjsKICAgICAgICAgICAgZm9vdC5zdHlsZS5sZWZ0ID0gIjAiOwogICAgICAgICAgICBmb290LnN0eWxlLnBhZGRpbmdUb3AgPSAiM3B4IjsKICAgICAgICAgICAgZm9vdC5zdHlsZS53aWR0aCA9ICIxMDAlIjsKICAgICAgICAgICAgZm9vdC5zdHlsZS5wb3NpdGlvbiA9ICJmaXhlZCI7CiAgICAgICAgICAgIGZvb3Quc3R5bGUuekluZGV4ID0gIiIremg7CiAgICAgICAgfQogICAg", "slot": "" } 127.0.0.1 <- Response: Error 127.0.0.1 <- ActionID: 27 127.0.0.1 <- Message: Missing action in request ** Llego un response que falta configurar! MISSING ACTION IN REQUEST HASH(0x766fa00) -- TIMER asterisk_ami_connect and async config check Set doing hup to zero ** Asterisk Manager logged in localhost for 15 seconds (Tue Mar 31 09:02:31 2015) Flash clients connected: 2 -------------------------------------------------------------------------------------------------- Client 192.168.1.253:54796, user: 5313@GENERAL, type: websocket (AnyEvent::Handle=HASH(0x7711500)) Client 192.168.1.253:54735, user: 5313@GENERAL, type: websocket (AnyEvent::Handle=HASH(0x62406b0)) -------------------------------------------------------------------------------------------------- 127.0.0.1 -> Action: Ping 127.0.0.1 -> ActionID: 28 127.0.0.1 <- Response: Success 127.0.0.1 <- ActionID: 28 127.0.0.1 <- Ping: Pong 127.0.0.1 <- Timestamp: 1427806951.003985 -- TIMER asterisk_ami_connect and async config check Set doing hup to zero ** Asterisk Manager logged in localhost for 18 seconds (Tue Mar 31 09:02:34 2015) Flash clients connected: 2 -------------------------------------------------------------------------------------------------- Client 192.168.1.253:54796, user: 5313@GENERAL, type: websocket (AnyEvent::Handle=HASH(0x7711500)) Client 192.168.1.253:54735, user: 5313@GENERAL, type: websocket (AnyEvent::Handle=HASH(0x62406b0)) -------------------------------------------------------------------------------------------------- -- TIMER asterisk_ami_connect and async config check Set doing hup to zero ** Asterisk Manager logged in localhost for 21 seconds (Tue Mar 31 09:02:37 2015) Flash clients connected: 2 -------------------------------------------------------------------------------------------------- Client 192.168.1.253:54796, user: 5313@GENERAL, type: websocket (AnyEvent::Handle=HASH(0x7711500)) Client 192.168.1.253:54735, user: 5313@GENERAL, type: websocket (AnyEvent::Handle=HASH(0x62406b0)) -------------------------------------------------------------------------------------------------- -- TIMER asterisk_ami_connect and async config check Set doing hup to zero ** Asterisk Manager logged in localhost for 24 seconds (Tue Mar 31 09:02:40 2015) Flash clients connected: 2 -------------------------------------------------------------------------------------------------- Client 192.168.1.253:54796, user: 5313@GENERAL, type: websocket (AnyEvent::Handle=HASH(0x7711500)) Client 192.168.1.253:54735, user: 5313@GENERAL, type: websocket (AnyEvent::Handle=HASH(0x62406b0)) -------------------------------------------------------------------------------------------------- -- TIMER asterisk_ami_connect and async config check Set doing hup to zero ** Asterisk Manager logged in localhost for 27 seconds (Tue Mar 31 09:02:43 2015) Flash clients connected: 2 -------------------------------------------------------------------------------------------------- Client 192.168.1.253:54796, user: 5313@GENERAL, type: websocket (AnyEvent::Handle=HASH(0x7711500)) Client 192.168.1.253:54735, user: 5313@GENERAL, type: websocket (AnyEvent::Handle=HASH(0x62406b0)) -------------------------------------------------------------------------------------------------- 192.168.1.253:54796 <= -- PROCESS_FLASH_COMMAND origen 1 accion dial destino 5203 password 4aacc06cabbceff30e8bdefb1b58cb5f VALIDAR USUARIO 5313@GENERAL validate password using key XNGBz3LCEEHQquHcjgWsEIZT96dslI VALIDAR USUARIO 5313 OK con clave regular (192.168.1.253:54796) Validation ok, have all permissions for 0 Not a reference at all 127.0.0.1 -> Action: Originate 127.0.0.1 -> Channel: Local/2664@ext-meetme 127.0.0.1 -> Exten: 5203 127.0.0.1 -> Context: ext-meetme 127.0.0.1 -> Priority: 1 127.0.0.1 -> Variable: FOP2DIALCONFERENCE=5203 127.0.0.1 -> CallerID: Conference <5203> 127.0.0.1 -> Async: True 127.0.0.1 <- Response: Error 127.0.0.1 <- Message: Extension does not exist. -- TIMER asterisk_ami_connect and async config check Set doing hup to zero ** Asterisk Manager logged in localhost for 30 seconds (Tue Mar 31 09:02:46 2015) Flash clients connected: 2 -------------------------------------------------------------------------------------------------- Client 192.168.1.253:54796, user: 5313@GENERAL, type: websocket (AnyEvent::Handle=HASH(0x7711500)) Client 192.168.1.253:54735, user: 5313@GENERAL, type: websocket (AnyEvent::Handle=HASH(0x62406b0)) -------------------------------------------------------------------------------------------------- 127.0.0.1 -> Action: Ping 127.0.0.1 -> ActionID: 29 127.0.0.1 <- Response: Success 127.0.0.1 <- ActionID: 29 127.0.0.1 <- Ping: Pong 127.0.0.1 <- Timestamp: 1427806966.003744 -- TIMER asterisk_ami_connect and async config check Set doing hup to zero ** Asterisk Manager logged in localhost for 33 seconds (Tue Mar 31 09:02:49 2015) Flash clients connected: 2 -------------------------------------------------------------------------------------------------- Client 192.168.1.253:54796, user: 5313@GENERAL, type: websocket (AnyEvent::Handle=HASH(0x7711500)) Client 192.168.1.253:54735, user: 5313@GENERAL, type: websocket (AnyEvent::Handle=HASH(0x62406b0)) -------------------------------------------------------------------------------------------------- 127.0.0.1 <- Event: PeerStatus 127.0.0.1 <- Privilege: system,all 127.0.0.1 <- ChannelType: SIP 127.0.0.1 <- Peer: SIP/5312 127.0.0.1 <- PeerStatus: Registered 127.0.0.1 <- Address: 90.124.123.123:1851 It's blessed into class FOP2::Extension ++ SET QUALIFY for SIP/5312 lo dejo como estaba ok -- TIMER asterisk_ami_connect and async config check Set doing hup to zero ** Asterisk Manager logged in localhost for 36 seconds (Tue Mar 31 09:02:52 2015) Flash clients connected: 2 -------------------------------------------------------------------------------------------------- Client 192.168.1.253:54796, user: 5313@GENERAL, type: websocket (AnyEvent::Handle=HASH(0x7711500)) Client 192.168.1.253:54735, user: 5313@GENERAL, type: websocket (AnyEvent::Handle=HASH(0x62406b0)) -------------------------------------------------------------------------------------------------- -- TIMER asterisk_ami_connect and async config check Set doing hup to zero ** Asterisk Manager logged in localhost for 39 seconds (Tue Mar 31 09:02:55 2015) Flash clients connected: 2 -------------------------------------------------------------------------------------------------- Client 192.168.1.253:54796, user: 5313@GENERAL, type: websocket (AnyEvent::Handle=HASH(0x7711500)) Client 192.168.1.253:54735, user: 5313@GENERAL, type: websocket (AnyEvent::Handle=HASH(0x62406b0)) -------------------------------------------------------------------------------------------------- 127.0.0.1 <- Event: PeerStatus 127.0.0.1 <- Privilege: system,all 127.0.0.1 <- ChannelType: SIP 127.0.0.1 <- Peer: SIP/5203 127.0.0.1 <- PeerStatus: Registered 127.0.0.1 <- Address: 90.124.123.123:1832 It's blessed into class FOP2::Extension ++ SET QUALIFY for SIP/5203 lo dejo como estaba ok -- TIMER asterisk_ami_connect and async config check Set doing hup to zero ** Asterisk Manager logged in localhost for 42 seconds (Tue Mar 31 09:02:58 2015) Flash clients connected: 2 -------------------------------------------------------------------------------------------------- Client 192.168.1.253:54796, user: 5313@GENERAL, type: websocket (AnyEvent::Handle=HASH(0x7711500)) Client 192.168.1.253:54735, user: 5313@GENERAL, type: websocket (AnyEvent::Handle=HASH(0x62406b0)) -------------------------------------------------------------------------------------------------- 192.168.1.253:54796 <= -- PROCESS_FLASH_COMMAND origen 1 accion ping destino password Executing Client Pre Command Handler for ping pong pong conferencebutton! 127.0.0.1 -> ActionID: 30 Executing Client Pre Command Handler for ping pong pong queuecounter! 192.168.1.253:54796 => { "btn": "0", "cmd": "pong", "data": "CiAgICAgICAgdmFyIHpoID0gZmluZEhpZ2hlc3RaKCk7CiAgICAgICAgdmFyIGZvb3QgPSAkKCJmb290ZXIiKTsKICAgICAgICB2YXIgdGVtcGxhdGUgPSBCYXNlNjQuZGVjb2RlKCJQR1JwZGlCcFpEMGlJM3RwWkgwaVBqeGhJSFJoY21kbGREMGlYMkpzWVc1cklpQm9jbVZtUFNKb2RIUndPaTh2ZDNkM0xtWnZjREl1WTI5dElqNUdUMUF5UEM5aFBpQXRJRlpsY25OcGIyNGdQSE53WVc0Z2FXUTlJbVp2Y0habGNuTnBiMjRpUGlON2RtVnljMmx2Ym4wOEwzTndZVzQrSUMwZ1RHbDBaU0JXWlhKemFXOXVJQzBnVEdsdGFYUmxaQ0IwYnlBeE5TQmxlSFJsYm5OcGIyNXpJQzRnUW5WNUlHbDBJRHhoSUdoeVpXWTlJbWgwZEhBNkx5OTNkM2N1Wm05d01pNWpiMjB2WW5WNUxuQm9jQ0krYm05M1BDOWhQaUJtYjNJZ2RXNXNhVzFwZEdWa0lHVjRkR1Z1YzJsdmJuTXVJRWxtSUhsdmRTQmhiSEpsWVdSNUlHaGhkbVVnWVNCamIyUmxJR1Z1ZEdWeUlHbDBJRHhoSUdoeVpXWTlJaU1pSUc5dVEyeHBZMnM5SW1admNESmZjbVZuYVhOMFpYSW9LVHNnY21WMGRYSnVJR1poYkhObE95SSthR1Z5WlR3dllUNDhMMlJwZGo0PSIpOwoKICAgICAgICBpZihjdXJyZW50cmVsZWFzZSAhPT0gIiIpIHsKICAgICAgICAgICAgaWYoZGVtb3ZlcnNpb24gPT0gIjAiKSB7CiAgICAgICAgICAgICAgICBkb2N1bWVudC50aXRsZSA9ICJGbGFzaCBPcGVyYXRvciBQYW5lbCAyIjsKICAgICAgICAgICAgICAgIGZvb3QudXBkYXRlKG5ldyBUZW1wbGF0ZSh0ZW1wbGF0ZSkuZXZhbHVhdGUoe3ZlcnNpb246IGN1cnJlbnRyZWxlYXNlLCBsaWNlbnNlOiBjdXJyZW50bGljZW5zZX0pLCAiYWZ0ZXIiICk7CiAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICBpZihkZW1vdmVyc2lvbiA9PSAiMSIpIHsKICAgICAgICAgICAgICAgIGRvY3VtZW50LnRpdGxlID0gIkZsYXNoIE9wZXJhdG9yIFBhbmVsIDIiOwogICAgICAgICAgICAgICAgZm9vdC51cGRhdGUobmV3IFRlbXBsYXRlKHRlbXBsYXRlKS5ldmFsdWF0ZSh7dmVyc2lvbjogY3VycmVudHJlbGVhc2UsIGxpY2Vuc2U6IGN1cnJlbnRsaWNlbnNlfSksICJhZnRlciIgKTsKICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgIGlmKGRlbW92ZXJzaW9uID09ICIyIikgewogICAgICAgICAgICAgICAgZG9jdW1lbnQudGl0bGUgPSAiRmxhc2ggT3BlcmF0b3IgUGFuZWwgMiI7CiAgICAgICAgICAgICAgICBmb290LnVwZGF0ZShuZXcgVGVtcGxhdGUodGVtcGxhdGUpLmV2YWx1YXRlKHt2ZXJzaW9uOiBjdXJyZW50cmVsZWFzZSwgbGljZW5zZTogY3VycmVudGxpY2Vuc2V9KSwgImFmdGVyIiApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZvb3Quc3R5bGUudmlzaWJpbGl0eSA9ICJ2aXNpYmxlIjsKICAgICAgICAgICAgZm9vdC5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIjsKICAgICAgICAgICAgZm9vdC5zdHlsZS5iYWNrZ3JvdW5kID0gIiNBQUEiOwogICAgICAgICAgICBmb290LnN0eWxlLmNvbG9yID0gIiMwMDAiOwogICAgICAgICAgICBmb290LnN0eWxlLmJvdHRvbSA9ICIwIjsKICAgICAgICAgICAgZm9vdC5zdHlsZS5sZWZ0ID0gIjAiOwogICAgICAgICAgICBmb290LnN0eWxlLnBhZGRpbmdUb3AgPSAiM3B4IjsKICAgICAgICAgICAgZm9vdC5zdHlsZS53aWR0aCA9ICIxMDAlIjsKICAgICAgICAgICAgZm9vdC5zdHlsZS5wb3NpdGlvbiA9ICJmaXhlZCI7CiAgICAgICAgICAgIGZvb3Quc3R5bGUuekluZGV4ID0gIiIremg7CiAgICAgICAgfQogICAg", "slot": "" } 127.0.0.1 <- Response: Error 127.0.0.1 <- ActionID: 30 127.0.0.1 <- Message: Missing action in request ** Llego un response que falta configurar! MISSING ACTION IN REQUEST HASH(0x766fbb0) -- TIMER asterisk_ami_connect and async config check Set doing hup to zero ** Asterisk Manager logged in localhost for 45 seconds (Tue Mar 31 09:03:01 2015) Flash clients connected: 2 -------------------------------------------------------------------------------------------------- Client 192.168.1.253:54796, user: 5313@GENERAL, type: websocket (AnyEvent::Handle=HASH(0x7711500)) Client 192.168.1.253:54735, user: 5313@GENERAL, type: websocket (AnyEvent::Handle=HASH(0x62406b0)) -------------------------------------------------------------------------------------------------- 127.0.0.1 -> Action: Ping 127.0.0.1 -> ActionID: 31 127.0.0.1 <- Response: Success 127.0.0.1 <- ActionID: 31 127.0.0.1 <- Ping: Pong 127.0.0.1 <- Timestamp: 1427806981.003201 ^C127.0.0.1 -> Action: Logoff 127.0.0.1 -> ActionID: 32 Removing /var/www/html/fop2/fop2-variablesGENERAL.txt... Disconnecting from settings DB Exiting... ++ QUEUE OBJECT DESTROYED FOP2::Queue=HASH(0x6011f70) ++ QUEUE OBJECT DESTROYED FOP2::Queue=HASH(0x6011910) ++ EXTENSION OBJECT DESTROYED FOP2::Extension=HASH(0x56fe220) ++ QUEUE OBJECT DESTROYED FOP2::Queue=HASH(0x5bbee90) ++ EXTENSION OBJECT DESTROYED FOP2::Extension=HASH(0x5c71160) ++ QUEUE OBJECT DESTROYED FOP2::Queue=HASH(0x5bbf2a0) ++ EXTENSION OBJECT DESTROYED FOP2::Extension=HASH(0x5bbf820) ++ EXTENSION OBJECT DESTROYED FOP2::Extension=HASH(0x5c70c00) ++ EXTENSION OBJECT DESTROYED FOP2::Extension=HASH(0x5c70460) ++ EXTENSION OBJECT DESTROYED FOP2::Extension=HASH(0x5a5efd0) ++ EXTENSION OBJECT DESTROYED FOP2::Extension=HASH(0x5a5ef30) ++ EXTENSION OBJECT DESTROYED FOP2::Extension=HASH(0x5b10f70) ++ EXTENSION OBJECT DESTROYED FOP2::Extension=HASH(0x599a360) ++ EXTENSION OBJECT DESTROYED FOP2::Extension=HASH(0x599acc0) ++ EXTENSION OBJECT DESTROYED FOP2::Extension=HASH(0x599a2f0) ++ EXTENSION OBJECT DESTROYED FOP2::Extension=HASH(0x599acd0) ++ EXTENSION OBJECT DESTROYED FOP2::Extension=HASH(0x53b7990) ++ EXTENSION OBJECT DESTROYED FOP2::Extension=HASH(0x53b7860) ++ EXTENSION OBJECT DESTROYED FOP2::Extension=HASH(0x53b8600) ++ EXTENSION OBJECT DESTROYED FOP2::Extension=HASH(0x53b8f70) ++ EXTENSION OBJECT DESTROYED FOP2::Extension=HASH(0x58da2b0) ++ EXTENSION OBJECT DESTROYED FOP2::Extension=HASH(0x53b8ea0) ++ EXTENSION OBJECT DESTROYED FOP2::Extension=HASH(0x58da2c0) ++ EXTENSION OBJECT DESTROYED FOP2::Extension=HASH(0x5622af0) ++ EXTENSION OBJECT DESTROYED FOP2::Extension=HASH(0x56ebd10) ++ EXTENSION OBJECT DESTROYED FOP2::Extension=HASH(0x5622a70) ++ EXTENSION OBJECT DESTROYED FOP2::Extension=HASH(0x56ebd20) ++ EXTENSION OBJECT DESTROYED FOP2::Extension=HASH(0x556d510) ++ EXTENSION OBJECT DESTROYED FOP2::Extension=HASH(0x556e110) ++ EXTENSION OBJECT DESTROYED FOP2::Extension=HASH(0x556d460) ++ EXTENSION OBJECT DESTROYED FOP2::Extension=HASH(0x556e170) ++ EXTENSION OBJECT DESTROYED FOP2::Extension=HASH(0x54d0510) ++ EXTENSION OBJECT DESTROYED FOP2::Extension=HASH(0x4f4e810) ++ EXTENSION OBJECT DESTROYED FOP2::Extension=HASH(0x4f4eff0) ++ EXTENSION OBJECT DESTROYED FOP2::Extension=HASH(0x4f4ef80) ++ EXTENSION OBJECT DESTROYED FOP2::Extension=HASH(0x5343160) ++ EXTENSION OBJECT DESTROYED FOP2::Extension=HASH(0x5343090) ++ EXTENSION OBJECT DESTROYED FOP2::Extension=HASH(0x527bf50) ++ EXTENSION OBJECT DESTROYED FOP2::Extension=HASH(0x527be60) ++ EXTENSION OBJECT DESTROYED FOP2::Extension=HASH(0x53429e0) ++ EXTENSION OBJECT DESTROYED FOP2::Extension=HASH(0x527b880) ++ EXTENSION OBJECT DESTROYED FOP2::Extension=HASH(0x52507d0) ++ EXTENSION OBJECT DESTROYED FOP2::Extension=HASH(0x52507c0) ++ EXTENSION OBJECT DESTROYED FOP2::Extension=HASH(0x359bbc0) ++ EXTENSION OBJECT DESTROYED FOP2::Extension=HASH(0x3737920) ]0;root@privatepbx:/usr/local/fop2root@privatepbx:/usr/local/fop2 $ (Bexit exit Script done on Tue 31 Mar 2015 09:03:05 AM EDT