Пример с запретом публикации потока описан
здесь
Чтобы его реализовать, нужно сделать следующее:
1. Реализовать два скрипта, возвращающие JSON на любой технологии.
http://script/connect
http://script/publishStream
Ваши скрипты должны возвращать тот JSON, который получили (echo).
Например:
Request
Code:
{
URL:http://localhost:9091/EchoApp/connect
OBJECT:
"nodeId" : "KsYJFoOZzUl5F6Gl545v4Jf6Ip69fGW1@192.168.1.59",
"appKey" : "defaultApp",
"sessionId" : "/192.168.1.38:63503/192.168.1.59:8443",
"useWsTunnel" : false,
"useWsTunnelPacketization2" : false,
"useBase64BinaryEncoding" : false,
"mediaProviders" : [ "WebRTC", "WSPlayer" ],
"clientVersion" : "0.5.13",
"clientOSVersion" : "5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36",
"clientBrowserVersion" : "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36"
}
Response
Code:
URL:http://localhost:9091/EchoApp/connect
OBJECT:
{
"nodeId" : "KsYJFoOZzUl5F6Gl545v4Jf6Ip69fGW1@192.168.1.59",
"appKey" : "defaultApp",
"sessionId" : "/192.168.1.38:63503/192.168.1.59:8443",
"useWsTunnel" : false,
"useWsTunnelPacketization2" : false,
"useBase64BinaryEncoding" : false,
"mediaProviders" : [ "WebRTC", "WSPlayer" ],
"clientVersion" : "0.5.13",
"clientOSVersion" : "5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36",
"clientBrowserVersion" : "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36"
}
По-умолчанию эти вызовы идут на
http://localhost:9091/EchoApp
Логи выводятся в /usr/local/FlashphonerWebCallServer/logs/flashphoner_manager.log
2. В ответе на connect вернуть дополнительное поле
Code:
"restClientConfig":
{
"publishStream":
{
"restExclude":"",
"clientExclude":"",
"restOnError":"FAIL",
"restPolicy":"NOTIFY",
"restOverwrite":""
}
}
3. На запрос
http://script/publishStream вернуть HTTP-статус 403 Forbidden.
4. Указать новый URL
update app -l
http://script defaultApp
remove app-rest-method -a defaultApp
add app-rest-method connect defaultApp
add app-rest-method publishStream defaultApp
На шаге 1 создаются два скрипта, которые отвечают за аутентификацию и возвращают JSON (contentType: application/json)
На шаге 2 в теле ответа 200 OK на connect добавляется поле restClientConfig, которое описывает поведение метода publishStream, restOnError:FAIL.
Это значит что если publishStream не получит 200 ОК, то операция публикации потока не выполнится и будет ошибка.
На шаге 3 возвращаем 403 Forbidden чтобы запретить публикацию данного потока.