Вы не авторизованы

Вы можете читать сообщения. Если вы хотите создать новую тему или присоединиться к обсуждению, пройдите процедуру регистрации или авторизуйтесь.

RSS
Не работает кнопка "ответить" в панели телефонии
 
Здравствуйте.

Используем панель телефонии 1.4.26.17 c Aterisk FreePBX 12.0.76.4 и конфигурацией 1С: Управление торговлей и взаимоотношениями с клиентами 2.0.16.15.
Пробовали использовать режимы "Панель телефонии + Встроенный SIP телефон" и "Панель телефонии + Внешний телефон" (в качестве внешнего телефона использовали SIP-клиенты MicroSIP и xlite).

При этом у нас ни во внешней ни во внутренней панели не работает кнопка "Ответить".
При использовании режима "Панель телефонии + Внешний телефон" принять звонок можно только с SIP-клиента.
В режиме "Панель телефонии + Встроенный SIP телефон" ответить на звонок вообще не возможно.

Подскажите, в чём может быть проблема?
 
Прикладываю лог (попытался как-раз часть где неудачная попытка ответить)
 
Убедитесь, что установлен модуль core нашей версии:
http://wiki.miko.ru/astpanel:ats:freepbx_distro

Работает ли функция "Ответть на звонок" в режиме 1С SIP Телефон?
 
Модуль core вашей версии установлен.

В режиме 1C SIP Телефон функция "Ответить на звонок работает".
 
Попробуйте клиент Jitsi
https://jitsi.org
 
С клиентом Jitsi тоже не работает.

Посмотрели ещё раз всё со своей стороны, появилось предположение что проблема может быть в различии версий. (Asterisk администрируем не мы, и есть подозрение что обновили FreePBX не заменяя модуль core).
Какая должна быть версия core в FreePBX 12.0.76.4? Есть ли у Вас ваша версия core для данной версии FreePBX?
 
см. вложение.
 
Проблему не решило..
 
Отправил Вам сообщением новую версию панели телефонии. Попробуйте работать с ней.
 
Новая версия панели телефонии ни чего не изменила.

Прошёлся отладкой в 1С  (внутренняя панель телефонии в режиме "Панель телефонии + Встроенный SIP телефон"), увидел следующую ситуацию:

Привожу две строки из лога панели телефонии:
[Call] <call id='0' number='sip:4953746072@192.168.168.63' name='test4953746072' status='ringing' incoming='1' />
[Dial] new Structure("event, privilege, subevent, channel, destination, calleridnum, calleridname, connectedlinenum, connectedlinename, uniqueid, destuniqueid, dialstring","Dial", "call,all", "Begin", "SIP/rt-84732106480-out-102-00001bb6", "SIP/159-00001bbd", "4953746072", "test4953746072", "<unknown>", "<unknown>", "1490806707.28927", "1490806708.28934", "159")

При событии Call в таблицу в 1с в качестве номера линии записывается id (в данном случае 0).
При событии Dial в другую таблицу в 1с в качестве номера линии записывается обработанное значение destuniqueid  (в данном случае 1490806708.28934).
При ответе на звонок происходит попытка найти в первой таблице номер линии из Dial, естественно он там не находится, и производится попытка ответить по линии из Dial. (я так понимаю этот номер линии не правильный).

В режиме "1С:SIP телефон" события Dial соответственно нету, и звонок нормально принимается по значению из Call - 0.

Где всё-таки у нас проблема? Из Asterisk приходит не правильное значение? Или всё-таки оно не правильно обрабатывается в коде в 1с?
 
Цитата
Долгов Олег написал:
При ответе на звонок происходит попытка найти в первой таблице номер линии из Dial
Не верно.
Действительно есть две таблицы: "Вызовы" и "ВызовыSIP".

  • Таблица "Вызовы" обновляется по событию "Dial" от компонента Asterisk.
  • Таблица "ВызовыSIP" обновляется по событию "Call" от компонента SIP
  1. При попытке ответить на вызов выполняется процедура "ОтветитьНаВызов".
  2. В таблице "Вызовы" мы ищем телефонный звонок по идентификатору линии
  3. В найденной лини должен быть корректно заполонен номер телефона
  4. Далее по номеру телефона происходит поиск  id линии в таблице "ВызовыSIP"
  5. Если id линии найден, то ответить на вызов пытаемся средствами компонента "SIP"
  6. Если id линии НЕ найден - ответ выполняется средствами приложения pickup (перехват) на Asterisk
 
Ок.

Иду отладкой от "ОтветитьНаВызов".
на момент входа в процедуру:
в таблице Вызовы одна строка (с номером линии 149087271833025 в данном примере и номером телефона "4952746072").
в таблице ВызовыSIP четыре строки (все с номером телефона "4952746072", и номерами линий от 0 до 3).

В процедуре ОтветитьНаВызов получается номер линии.
По номеру линии ищется номер телефона в таблице Вызовы.
Номерлинии и номер телефона передаются в процедуру ОтветитьНаВызовУниверсально.

В процедуре ОтветитьНаВызовУниверсально по номеру телефона находятся строки в таблице ВызовыSIP.
Если найденная строка одна - вызывается процедура SIP_Ответить() с номером линии из полученой строки.
Если не найдена или найдена не одна - вызывается процедура SIP_Ответить() с номером линии пришедшим из процедуры ответить на вызов.

В нашем случае найдено больше одной строки, и SIP_Ответить() с номером линии пришедшим из процедуры ответить на вызов (149087271833025) - и ответ на вызов не происходит.

Для теста, сделал что если найдена хоть одна строка, вызывается SIP_Ответить() с номером линии из первой строки (0) - ответ на вызов происходит.

Тогда у меня возникает вопрос - почему в ВызовыSIP четыре строки с одним номером?

Так же в тестовом варианте когда вызов принят во внутренней панели отобразилось два звонка с одного номера: один принятый, активный, с которым я "разговариваю" и он же звонящий. Предполагаю это тоже следствие того что строк несколько.

Так в чём у нас проблема?
 
Приложите снова лог из панели телефонии. Предварительно перезапустите 1С, открыв окно с логом - очистите его и воспроизведите ситуацию.
 
Прикладываю лог.
 
В рамках этого лога:
Вам на АТС поступило одновременно 5 телефонных звонков:
Код
[UserEvent] new Structure("event, privilege, userevent, uniqueid, callerid, chan1c","UserEvent", "user,all", "Interception", "1490877346.33690", "4953746072", "SIP/rt-84732106480-out-102-00002241")
[UserEvent] new Structure("event, privilege, userevent, uniqueid, callerid, chan1c","UserEvent", "user,all", "Interception", "1490877346.33689", "4953746072", "SIP/rt-84732106480-out-102-00002240")
[UserEvent] new Structure("event, privilege, userevent, uniqueid, callerid, chan1c","UserEvent", "user,all", "Interception", "1490877346.33691", "4953746072", "SIP/rt-84732106480-out-102-00002242")
[UserEvent] new Structure("event, privilege, userevent, uniqueid, callerid, chan1c","UserEvent", "user,all", "Interception", "1490877346.33693", "4953746072", "SIP/rt-84732106480-out-102-00002244")
[UserEvent] new Structure("event, privilege, userevent, uniqueid, callerid, chan1c","UserEvent", "user,all", "Interception", "1490877346.33694", "4953746072", "SIP/rt-84732106480-out-102-00002245")

До софтфона дошло 4 звонка, было создано 4 линии:
Код
[Call] <call id='0' number='sip:4953746072@192.168.168.63' name='4953746072' status='ringing' incoming='1' />
[Call] <call id='1' number='sip:4953746072@192.168.168.63' name='4953746072' status='ringing' incoming='1' />
[Call] <call id='2' number='sip:4953746072@192.168.168.63' name='4953746072' status='ringing' incoming='1' />
[Call] <call id='3' number='sip:4953746072@192.168.168.63' name='4953746072' status='ringing' incoming='1' />
Предлагаю сперва разобраться по какой причине с одного и того же номера поступило одновременно столько вызовов.
Читают тему (гостей: 1)