freeswitchforum.com

Форум поддержки FreeSWITCH

FreeSWITCH is a registered trademark of Anthony Minessale. Official FreeSWITCH site.

Текущее время: 28 мар 2024 13:37

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
СообщениеДобавлено: 17 мар 2018 16:43 

Зарегистрирован: 13 мар 2018 21:46
Сообщения: 12
Приветствую. Сразу прощу прощения за возможно глупые вопросы, т.к FS впервые увидел неделю назад.
Второй день не могу решить проблему. :( Стоит задача организовать "звонок с сайта", в том смысле, что пользователь вводит номер, а fs уже звонит на внутренний коллцентр, после поднятия трубки оператором - произносит сообщение (айди сайта), и звонит самому пользователю на внешнюю линию.
Уже сломал мозг.
Как заставить originate создать линию на колл центр (21000)? Пишет нет такого пользователя. Окей. Создаю пользователя и такой же экстеншен, скажем 10001. Ставлю ему редирект всех звонков на 21000. Запускаю originate. и внезапно, получаю: Cannot locate registered user 10001@192.168.1.110
При том, что беру любой внутренний телефон - звоню на номер 10001 - попадаю в нужный колл-центр.
Если же сделать originate на реальный внутренний телефон - все проходит, линия создается, приветствие проигрывается.
Код:
originate {'call_timeout=15,origination_caller_id_number=+1234567890'}sofia/internal/10001%192.168.1.110 &playback('$${sounds_dir}/custom/call-from-site.wav') &transfer(+1234567890 XML 192.168.1.110)
...
Cannot locate registered user 10001@192.168.1.110

Если же 10001 заменить на 201 (реальный телефон) - то именно этот телефон начинает звонить, снимаю трубку, проигрывается приветствие, и вылазит еще одна проблема - звонок на внешнюю линию не идет.
Код:
2018-03-17 12:23:37.063563 [NOTICE] sofia.c:8218 Channel [sofia/internal/201] has been answered
2018-03-17 12:23:37.083558 [INFO] switch_channel.c:3129 sofia/internal/201 Flipping CID from "192.168.1.110)" <+1234567890> to "Outbound Call" <201%192.168.1.110>
...
2018-03-17 12:23:38.963559 [NOTICE] switch_core_state_machine.c:385 sofia/internal/201 has executed the last dialplan instruction, hanging up.
2018-03-17 12:23:38.963559 [NOTICE] switch_core_state_machine.c:387 Hangup sofia/internal/201 [CS_EXECUTE] [NORMAL_CLEARING]
...
2018-03-17 12:23:38.963559 [NOTICE] switch_core_session.c:1683 Session 7 (sofia/internal/201) Ended
2018-03-17 12:23:38.963559 [NOTICE] switch_core_session.c:1687 Close Channel sofia/internal/201 [CS_DESTROY]


Что я делаю не так?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 17 мар 2018 19:09 
FreeSWITCH_GuRu

Зарегистрирован: 22 авг 2012 09:52
Сообщения: 1710
все правильно звонок и не должен идти
Код:
originate,<call url> <exten>|&<application_name>(<app_args>) [<dialplan>] [<context>] [<cid_name>] [<cid_num>] [<timeout_sec>],Originate a call,mod_commands
uuid_xfer_zombie,<uuid>,Allow A leg to hangup and continue originating,mod_commands
где увидели два "&<application_name>"?

_________________
ЛС: @rostel
Сообщество: @ru_freeswitch


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 17 мар 2018 19:49 

Зарегистрирован: 13 мар 2018 21:46
Сообщения: 12
Vlad1983 писал(а):
все правильно звонок и не должен идти
Код:
originate,<call url> <exten>|&<application_name>(<app_args>) [<dialplan>] [<context>] [<cid_name>] [<cid_num>] [<timeout_sec>],Originate a call,mod_commands
uuid_xfer_zombie,<uuid>,Allow A leg to hangup and continue originating,mod_commands
где увидели два "&<application_name>"?

Предположил, что выполнение как в обычной консоли, только чрез один амперсанд. Получается, в originate - можно использовать только 1 апп?... Грустно. :(
Правильно ли я понял, что в моем случае - самым простым и быстрым вариантом - будет сделать все через lua скрипт, который будет создавать одну сессию в коллцентр, после поднятия трубки - делать туда playback, создавать вторую сессию на внешний номер, и создавать бридж между ними?
Без lua тут не обойтись? Или это можно как-то реализовать в рамках стандартного диалплана?
И по uuid - его как-то можно получить, после originate? или его надо сначала сгенерировать, и при originate явно указывать?

Как сделать originate на группу - разобрался, но как сделать originate на колл-центр?...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 17 мар 2018 20:16 
FreeSWITCH_GuRu

Зарегистрирован: 22 авг 2012 09:52
Сообщения: 1710
Можно просто отправить в диалплан
Код:
<exten> [<dialplan>] [<context>]
там уже хоть playback хоть все остальное

_________________
ЛС: @rostel
Сообщество: @ru_freeswitch


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 17 мар 2018 21:33 

Зарегистрирован: 13 мар 2018 21:46
Сообщения: 12
Если отправляю в диалплан, то ничего не звонит, и в логе [NO_ROUTE_DESTINATION]. при том, что с телефона все эти звонки работают. ..

Пробую делать через консоль. Делаю:
Код:
originate {origination_uuid=66666666-6666-6666-6666-666666666666,leg=1,call_timeout=15,origination_caller_id_number=+111111111111}sofia/internal/21000@192.168.1.110 &park()

Сделали первый звонок. Отлично, коллцентр зазвонил, все ок. На одном телефоне коллцентра подняли трубку, все ок. Но.
[+] "show channels"
Код:
freeswitch@freeswitch> show channels
uuid,direction,created,created_epoch,name,state,cid_name,cid_num,ip_addr,dest,application,application_data,dialplan,context,read_codec,read_rate,read_bit_rate,write_codec,write_rate,write_bit_rate,secure,hostname,presence_id,presence_data,accountcode,callstate,callee_name,callee_num,callee_direction,call_uuid,sent_callee_name,sent_callee_num,initial_cid_name,initial_cid_num,initial_ip_addr,initial_dest,initial_dialplan,initial_context
66666666-6666-6666-6666-666666666666,outbound,2018-03-17 17:27:11,1521307631,sofia/internal/21000@192.168.1.110,CS_EXECUTE,Outbound Call,202,,21000,park,,,default,opus,48000,0,opus,48000,0,,freeswitch,,,,ACTIVE,,+111111111111,RECV,66666666-6666-6666-6666-666666666666,,,,+111111111111,,21000,,default
dfd1f26d-7721-4478-9697-6067f3c15a81,inbound,2018-03-17 17:27:11,1521307631,sofia/internal/+111111111111@192.168.1.110,CS_SOFT_EXECUTE,,+111111111111,192.168.1.110,21000,uuid_bridge,b45ce145-adb7-4265-a510-fdda6aad2c45,XML,192.168.1.110,opus,48000,0,opus,48000,0,,freeswitch,+111111111111@192.168.1.110,,,ACTIVE,Outbound Call,202,SEND,dfd1f26d-7721-4478-9697-6067f3c15a81,Outbound Call,202,,+111111111111,192.168.1.110,21000,XML,192.168.1.110
b45ce145-adb7-4265-a510-fdda6aad2c45,outbound,2018-03-17 17:27:11,1521307631,sofia/internal/202@192.168.2.55:51963,CS_EXCHANGE_MEDIA,,+111111111111,,202,uuid_bridge,dfd1f26d-7721-4478-9697-6067f3c15a81,,default,opus,48000,0,opus,48000,0,,freeswitch,202@192.168.1.110,,manager.office,ACTIVE,Outbound Call,202,SEND,dfd1f26d-7721-4478-9697-6067f3c15a81,+111111111111,+111111111111,,+111111111111,,202,,default

После того, как подняли трубку - имеем три канала. Первый - запущенный через originate, и у него сгенерированный мной uuid, и он park(). Второй канал - uuid_bridge с 21000 (коллцентром). И третий канал - бридж между вторым и третьим, на конце которого находится телефон, который поднял трубку. Как вычислить UUID третьего канала, чтобы сделать в него uuid_broadcast? как я только не пытался передавать uuid в originate - ничего не вышло, у третьего канала всегда свой ууид, и добраться до него - никак не получилось. %(


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 18 мар 2018 17:23 
FreeSWITCH_GuRu

Зарегистрирован: 22 авг 2012 09:52
Сообщения: 1710
в диалплан работает нормально
см. почему у вас NO_ROUTE_DESTINATION по логу

_________________
ЛС: @rostel
Сообщество: @ru_freeswitch


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 36


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB