Size: a a a

2021 February 16

V

Viktor in ru_freeswitch
halt✯
И по моему он на переменную ругается
Доброго времени суток. Пробовал так и сяк скрипт написать, все равно в консоли :mod_lua.cpp:202 /usr/local/freeswitch/scripts/2.lua:3: attempt to index global 'event' (a nil value)
stack traceback:
       /usr/local/freeswitch/scripts/2.lua:3: in main chunk
источник

V

Viktor in ru_freeswitch
api = freeswitch.API();
api:executeString("info");
local dat = session:getVariable("Other-Leg-Channel-Answered-Time")  
freeswitch.consoleLog("INFO","OLCA is: " .. dat .. "\n")
источник

V

Viktor in ru_freeswitch
api = freeswitch.API();
api:executeString("info");
local dat = event:getHeader("Other-Leg-Channel-Answered-Time")
freeswitch.consoleLog("INFO","OLCA is: " .. dat .. "\n")
источник

h

halt✯ in ru_freeswitch
Оставь только это
api = freeswitch.API();
api:executeString("info");
источник

V

Viktor in ru_freeswitch
в xml диалплане вот так: <action application="set" data="execute_on_answer=lua::2.lua"/>
источник

h

halt✯ in ru_freeswitch
Выводятся переменные?
источник

V

Viktor in ru_freeswitch
halt✯
Оставь только это
api = freeswitch.API();
api:executeString("info");
это работает, выводится инфо, но как вырвать значентие поля?
источник

h

halt✯ in ru_freeswitch
Давай ка вывод info на пастебин
источник

AK

Andrey Kryukov in ru_freeswitch
tmp = api:executeString("info");
freeswitch.consoleLog("INFO","OLCA is: " .. tmp .. "\n")
источник

AK

Andrey Kryukov in ru_freeswitch
что выводит ?
источник

AK

Andrey Kryukov in ru_freeswitch
вы никак не сможете просто что-то оттуда взять  - если оно не запишет данные в строковую переменную  или в табличную
источник

AK

Andrey Kryukov in ru_freeswitch
соответственно если вот так не сработает
tmp = api:executeString("info");
freeswitch.consoleLog("INFO","OLCA is: " .. tmp .. "\n")
то никак нельзя штатными средствами получить доступ к данным
источник

V

Viktor in ru_freeswitch
Andrey Kryukov
соответственно если вот так не сработает
tmp = api:executeString("info");
freeswitch.consoleLog("INFO","OLCA is: " .. tmp .. "\n")
то никак нельзя штатными средствами получить доступ к данным
[INFO] switch_cpp.cpp:1443 OLCA is: INVALID COMMAND!
источник

h

halt✯ in ru_freeswitch
Andrey Kryukov
соответственно если вот так не сработает
tmp = api:executeString("info");
freeswitch.consoleLog("INFO","OLCA is: " .. tmp .. "\n")
то никак нельзя штатными средствами получить доступ к данным
Я думаю там в другом дело... Прилетает 2 события в одном из есть необходимая инфа, в другом нет её. Нужно отфильтровать
источник

AK

Andrey Kryukov in ru_freeswitch
не хуки не являются событиями , как вы их фильтровать будете ? у вас и доступа к ESL  нет  просто скрипт диалплана
источник

AK

Andrey Kryukov in ru_freeswitch
api_on_answer  и  прочее не имеют доступа к объекту env который для события
источник

AK

Andrey Kryukov in ru_freeswitch
когда событие наступило просто запустилось приложение без передачи ему объекта env
источник

V

Viktor in ru_freeswitch
Andrey Kryukov
когда событие наступило просто запустилось приложение без передачи ему объекта env
Задача - положить в переменную номер ответившего оператора в момент поднятия трубки. Через ESL у меня это реализовано  (скрипт на питоне), проблема в том, что мне надо вернуть  номер ответившего оператора в диалплан для обработки файла звукозаписи.
источник

V

Viktor in ru_freeswitch
текст скрипта такой.
источник

V

Viktor in ru_freeswitch
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import string
import sys

from ESL import *

con = ESLconnection("127.0.0.1","8021","ClueCon")
#are we connected?

if con.connected:

 con.events("plain", "all");

 while 1:
 #my $e = $con->recvEventTimed(100);
   e = con.recvEvent()
 
   if e:
  s=e.serialize()
  if s=="":
   continue
  else:    
   s2=s.split('\n')
   mas={}
   for i in s2:
     if i!="":
       st=i.strip().split(':')
       mas[st[0].strip()]=st[1].strip()
       

   if mas['Event-Name'] == 'CHANNEL_BRIDGE':
     telefon=mas["Other-Leg-Destination-Number"][0:]
     print telefon
источник