@ru_freeswitch

Страница 78 из 430
Igor
19.04.2017
10:47:16
на чем пишете?

Denis 災 nobody
19.04.2017
10:47:19
питон

Igor
19.04.2017
10:47:27
2.7? 3.Х

?

Google
Denis 災 nobody
19.04.2017
10:47:34
так-то есть там пачка send*

2.7

»> dir(con) ['__del__', '__doc__', '__getattr__', '__init__', '__module__', '__repr__', '__setattr__', '__swig_destroy__', '__swig_getmethods__', '__swig_setmethods__', 'api', 'bgapi', 'connected', 'disconnect', 'events', 'execute', 'executeAsync', 'filter', 'getInfo', 'recvEvent', 'recvEventTimed', 'send', 'sendEvent', 'sendMSG', 'sendRecv', 'setAsyncExecute', 'setEventLock', 'socketDescriptor', 'this']

но если тот же sendMSG, что туда передавать?

заработало примерно так r=con.send("sendmsg 7c825e65-9040-4ef9-8dc4-79b74c611f2c\ncall-command: execute\nexecute-app-name: playback\nexecute-app-arg: tone_stream://%(2000,4000,440,480)\n\n")

но с чтением событий..

»> while True: ... e=con.recvEvent() ... e.getHeader(e.firstHeader())

Igor
19.04.2017
11:03:26
там sendRecv должен быть, ща сек разрабов попинаю

отвлекли

Denis 災 nobody
19.04.2017
11:07:26
»> e.serialize() 'Event-Name: SOCKET_DATA\nContent-Type: command/reply\nReply-Text: %2BOK\n\n'

да, вот и ответ..

и нет переключения каналов, как с *broadcast

»> r=con.sendRecv("sendmsg 2f66d07b-766a-4ca9-85fa-bc94979708e2\ncall-command: execute\nexecute-app-name: bind_digit_action\nexecute-app-arg: bind3,#55,exec:execute_extension, dx XML features,same,other\n\n") »> r <ESL.ESLevent; proxy of <Swig Object of type 'ESLevent *' at 0x24ea4e0> > »> r.serialize() 'Event-Name: SOCKET_DATA\nContent-Type: command/reply\nReply-Text: %2BOK\n\n'

Google
Denis 災 nobody
19.04.2017
11:09:44
да, спс за наводку

Igor
19.04.2017
11:12:53
да короче, подтвердили) ты всё правильно понял)

Denis 災 nobody
19.04.2017
11:14:42
»> def run(): ... i=0 ... t1=time.time() ... while i<10000: ... r=con.sendRecv("sendmsg 2f66d07b-766a-4ca9-85fa-bc94979708e2\ncall-command: execute\nexecute-app-name: bind_digit_action\nexecute-app-arg: bind3,#55,exec:execute_extension, dx XML features,same,other\n\n") ... i=i+1 ... t2=time.time() ... print t2-t1 ... »> con = ESL.ESLconnection("192.168.10.220","8021","ClueCon") »> run() 0.131443023682

да, шустро )

да короче, подтвердили) ты всё правильно понял)
а спроси, можно это как-то в самом фс запустить? Коннект к фс у нас есть, а esl нет

через хуки пока сделано

Denis 災 nobody
19.04.2017
11:31:27
как это можно сделать через консоль фрисвича

в хуке доступны только команды, что есть в консоли

Alexandru
19.04.2017
11:31:46
python script.py

из fs_cli

Denis 災 nobody
19.04.2017
11:32:09
python script.py
вариант, но костыль :)

можно ивенты формировать самому, и потом event::fire, я пока в эту сторону думаю

ивент типа Event-Name: SOCKET_DATA

но что странно - в одной консоли запустил слушалку, в другой закинул ивент, но в первой нет ни запроса, ни ответа

Igor
19.04.2017
12:12:47
слушалку как запустил?

там хрень была с подпиской на ивенты

Denis 災 nobody
19.04.2017
12:13:10
весь код выше..

Igor
19.04.2017
12:13:12
там надо было подписываться на всё а фильтровать уже потом

Denis 災 nobody
19.04.2017
12:13:25
а, слушалка всего?

Google
Denis 災 nobody
19.04.2017
12:13:28
на всё

Igor
19.04.2017
12:13:29
да

тогда странно

Denis 災 nobody
19.04.2017
12:13:48
self.con = ESL.ESLconnection(self.hostname,self.port, self.password) self._connected=True self.con.events("plain", "all");

но при этом запрос-ответ был..

так как можно в хуке сделать это ивентом? )

хотя не, есть ивенты Event-Name: CHANNEL_EXECUTE Event-Name: PRIVATE_COMMAND

но нет того что в ответе и самого запроса

то что Event-Name: SOCKET_DATA

Igor
19.04.2017
12:21:43
CHANNEL_EXECUTE эт понятно, это каждый пук сеанса

PRIVATE_COMMAND не помню

так как можно в хуке сделать это ивентом? )
не понял? в хуке запалить ивент?

Denis 災 nobody
19.04.2017
12:22:58
да

Igor
19.04.2017
12:23:18
дык это

python script.py

Denis 災 nobody
19.04.2017
12:23:36
пихнуть на ансвер 2 ивента, а поскольку оно в очередь встанет, не должно быть косяков как с uuid_broadcast

не. И сам хук на луа )

ща

local event = freeswitch.Event("message_waiting"); event:addHeader("MWI-Messages-Waiting", "no"); event:addHeader("MWI-Message-Account", "sip:1000@10.0.1.100"); event:addHeader("Sofia-Profile", "internal"); event:fire();

вот типа такого

Google
Igor
19.04.2017
12:25:24
да ладно, вот с той же самой херней морочаемся ?

Denis 災 nobody
19.04.2017
12:25:34
?

Igor
19.04.2017
12:26:13
с отправкой notify хомячку

по получению голосовой почты

тем же принципом вобщем

генерацией ивента

Denis 災 nobody
19.04.2017
12:28:28
для нотифая была какая-то генерилка, уже закрыл

Igor
19.04.2017
12:28:51
да мы через аутбаунд сокет пилим

понять не можем как правильно генерить

погоди, ты хочешь подписаться на ивент, поймать его и заменить аудио в канале?

Admin
ERROR: S client not available

Denis 災 nobody
19.04.2017
12:30:12
нет

сгенерить

а для этого поймать то что через esl вылетает

и повторить прямой генерацией

http://wiki.freeswitch.org/wiki/Event_Socket#sendevent

не?

No Message sendevent message_waiting MWI-Messages-Waiting: no MWI-Message-Account: sip:user1@192.168.1.14 Some Message sendevent message_waiting MWI-Messages-Waiting: yes MWI-Message-Account: sip:user1@192.168.1.14 MWI-Voice-Message: 0/1 (0/0)

и с примером выхлопа даже

Igor
19.04.2017
12:32:03
MWI-Message-Account: sip:user1@192.168.1.14

Google
Igor
19.04.2017
12:32:11
вот с этим сложность, херня какая то летит

Denis 災 nobody
19.04.2017
12:32:17
?

Igor
19.04.2017
12:33:12
да на контакт не летит нихрена, щас вот пробуем, вроде проканало

Denis 災 nobody
19.04.2017
12:35:23
должно..

T 192.168.10.250:35197 -> 192.168.10.220:8021 [AP] sendmsg 14455508-c4cc-4317-b4cd-b09f8b241860 call-command: execute execute-app-name: bind_digit_action execute-app-arg: bind3,#55,exec:execute_extension, dx XML features,same,other T 192.168.10.220:8021 -> 192.168.10.250:35197 [AP] Content-Type: command/reply Reply-Text: -ERR invalid session id [14455508-c4cc-4317-b4cd-b09f8b241860]

во, поймал

Igor
19.04.2017
12:43:09
не та нога чтоли?

или звонок уже дохлый?

Yuriy
19.04.2017
12:46:18
Всем добрый день. Никак не могу найти инфу где у freeswitch настраиваются feature codes? Хочу использовать свой функционал для работы с трансфером и тд (переписать стандартные функции)

или все пилится во features.xml?

Denis 災 nobody
19.04.2017
12:48:36
не та нога чтоли?
Ошибка? Это норм, канал хэнгапнут

Yuriy
19.04.2017
12:50:19
То есть тут обрабатывается и кнопрка трансфера на телефоне, я правильно понимаю? Просто в астеирске например трансфер на телефоне в ядре. То ес тьможно трансфер реализовать без ядра но он по feature коду а не по SIP методу Кнжка есть. 1.6

Denis 災 nobody
19.04.2017
12:55:23
То есть тут обрабатывается и кнопрка трансфера на телефоне, я правильно понимаю? Просто в астеирске например трансфер на телефоне в ядре. То ес тьможно трансфер реализовать без ядра но он по feature коду а не по SIP методу Кнжка есть. 1.6
Частично. Сам рефер только смотрит на переменную запрета трансфера и отдает 200, а дальше уже просто формируем новый инвайт как обычно. Ну можно в отдельный контекст кинуть и всё.

Точнее 202 код.

Yuriy
19.04.2017
12:56:42
Ок. Спасибо. Видимо тут гибче чем на астериске)

Igor
19.04.2017
12:59:53
Ок. Спасибо. Видимо тут гибче чем на астериске)
настолько что можно всё поломать на ровном месте)

mad
19.04.2017
13:05:52
?

Denis 災 nobody
19.04.2017
13:41:14
не получается получить sendmsg из евента..

Igor
19.04.2017
13:41:26
что говорит?

Страница 78 из 430