Комментарии 15
На нашем астериске настроен WSS протокол для SIP. И астер ожидает в параметрах соединения именно его, но библиотека JSSIP упорно отправляет WS несмотря ни на какую конфигурацию. Разработчики библиотеки при этом упорно тыкают в стандарты, в которых действительно нет никаких требований по этому поводу. А коллеги из астера упорно не хотят ничего исправлять. В общем, тупик. Ну а мы в это время находим в исходниках строку this._configuration.contact_uri = new URI(...), меняем transport: 'ws' на transport: 'wss' и продолжаем радоваться жизни.
Напишите нормально, что хотели сказать. Из написанного вами не понятно в чем дело…
Напишите просто, что астер исходя из параметра в contact выбирает не шифрованный ws для доставки сообщений, когда нужен шифрованный.
0
Спасибо за замечание, поправил, надеюсь, стало понятнее.
+1
Кстати, если страничка со звонилкой секурная (https), то транспорт ОБЯЗАТЕЛЬНО должен быть wss. По крайней мере sipml5 поступает именно так и блокирует ws. И это правильно.
-1
Не правильно. Уровень приложения не в ответе за транспортный уровень.
0
Нет практического смысла в звонилке расположенной на http странице так как браузеры дают доступ к камере и микрофону только на https страницах.
А вот с страницы открытой по https нельзя обращаться к ресурсам по http
Так что это скорее всего не sipml5 блокирует ws а он просто понимает что нечего не будет работать на по ws вместо wss.
А вот с страницы открытой по https нельзя обращаться к ресурсам по http
Так что это скорее всего не sipml5 блокирует ws а он просто понимает что нечего не будет работать на по ws вместо wss.
-1
при чем тут практический смысл и название протокола?
Есть протокол WS он может использовать как транспорт транспорт TCP (WS) так и TLS (WSS). Сам протокол при этом остается тем же самым, отличаются только заголовки согласования соединения на этапе HTTP запросов, так что обозначать WS или WSS с практической точки зрения да и с точки зрения здравого смысла — как на клиенте так и на сервере НЕТ, так как данные после установления соединения будут идти по установленному траcпортному каналу, коим будет являться или TCP или TLS.
Более того, WS может не обязательно использоваться в web
многие предпочитают этот протокол как межсерверный (тот же астериск для отсылки events по ARI)
И там вполне можно это делать по незащищенному каналу ибо нет смысла нагружать приложение в локальной среде.
Есть протокол WS он может использовать как транспорт транспорт TCP (WS) так и TLS (WSS). Сам протокол при этом остается тем же самым, отличаются только заголовки согласования соединения на этапе HTTP запросов, так что обозначать WS или WSS с практической точки зрения да и с точки зрения здравого смысла — как на клиенте так и на сервере НЕТ, так как данные после установления соединения будут идти по установленному траcпортному каналу, коим будет являться или TCP или TLS.
Более того, WS может не обязательно использоваться в web
многие предпочитают этот протокол как межсерверный (тот же астериск для отсылки events по ARI)
И там вполне можно это делать по незащищенному каналу ибо нет смысла нагружать приложение в локальной среде.
0
Как собрать свою Web-звонилку за час
буквально на коленке из нескольких десятков строк java-скрипта сделать собственную WEB-звонилку
Вам понадобится сервер с поддержкой всего вышеперечисленного добра — вроде FreeSwitch или Asterisk.[...] Будем считать, что вам повезло так же, как нам, и в распоряжении уже имеется настроенная VoIP телефония.
Охохо.
+7
Я хорошо помню этот момент несколько лет назад, когда хромовский движок втихую включил мультиплексирование, а на астериске реализации этой фичи еще не было. И несколько месяцев жалобы клиентов, пока не раскопал в чем причина.
Так что для веб-ртс необходим астериск версии не ниже 13.15.
Кроме того, есть неплохая аналогичная библитека sipml5, о ней уже писали на Хабре.
Кстати, проблему задержки вначале вызова так и не удалось на 100% победить, хотя все ice вроде убраны…
Не логично. Пока дозваниваетесь — необходимо прокидывать звук от абонента Б до вызывающего, иначе никогда не услышите автоинформатор в предответном состоянии — типа «абонент занят или временно недоступен» или «оставьте сообщение после звукового сигнала»…
Звуки дозвона (тоновый сигнал КПВ) должна играть станция вызываемого абонента…
Так что для веб-ртс необходим астериск версии не ниже 13.15.
Кроме того, есть неплохая аналогичная библитека sipml5, о ней уже писали на Хабре.
Кстати, проблему задержки вначале вызова так и не удалось на 100% победить, хотя все ice вроде убраны…
В общем, всё довольно логично. Пока дозваниваемся ['progress'] — играем звуки дозвона.
Не логично. Пока дозваниваетесь — необходимо прокидывать звук от абонента Б до вызывающего, иначе никогда не услышите автоинформатор в предответном состоянии — типа «абонент занят или временно недоступен» или «оставьте сообщение после звукового сигнала»…
Звуки дозвона (тоновый сигнал КПВ) должна играть станция вызываемого абонента…
+1
Спасибо за дельное замечание по поводу 'progress', поправлю, дабы никто не спотыкался.
sipml5 то же пробовал, но она довольно большая, и была какая то проблема с ней, сейчас уже не вспомню.
sipml5 то же пробовал, но она довольно большая, и была какая то проблема с ней, сейчас уже не вспомню.
0
Ну да, там не все так просто с этим прогрессом. Обычно должна играть удаленная станция выслав сообщение SIP\183, но она может выслать только SIP\180 и тогда играть КПВ должен аппарат вызывающего, иначе будет тишина… Кажется так. Но лучше всегда прокидывать голос с удаленной стороны, а в случае тишины при дозвоне сдавать ТТ оператору.
And thanks to rfc3960, some policies for these messes are recommended:
1. Unless a 180 (Ringing) response is received, never generate
local ringing.
2. If a 180 (Ringing) has been received but there are no incoming
media packets, generate local ringing.
3. If a 180 (Ringing) has been received and there are incoming
media packets, play them and do not generate local ringing.
0
С хромом нужно быть очень осторожным. Для доступа к микрофону, просим хром запросить разрешение. Но этот запрос на разрешение он показывает только при работе по https
0
Эти штуки оставляем за рамками статьи. Будем считать, что вам повезло так же, как нам, и в распоряжении уже имеется настроенная VoIP телефония.
Как наивно, помню ставил астериск на сервер… с телефонией аля 3g модем(chan_dongle).
Передача данных по sip протоколу через webrtc по мне дак, это самая простая ее часть
+1
Согласен с вами, статья как раз демонстрирует, как можно сделать эту простую часть максимально быстро. Для настройки и поддержки инфраструктуры у нас в компании есть крутые админы, а наивные разработчики обычно занимаются разработкой:)
Что касается настройки астериска, можно почитать, например, вот эту статью.
Что касается настройки астериска, можно почитать, например, вот эту статью.
0
Чтобы не переизобретать велосипед можно просто использовать voximplant.com
-1
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Дозвонились! Как собрать свою Web-звонилку за час