[global] type=global user_agent=LCT-112-Training-SIP endpoint_identifier_order=auth_username,username,ip,anonymous [transport-udp] type=transport protocol=udp bind=0.0.0.0:5060 [transport-tcp] type=transport protocol=tcp bind=0.0.0.0:5060 [transport-tls] type=transport protocol=tls bind=0.0.0.0:5061 cert_file=/tls/sip.crt priv_key_file=/tls/sip.key method=tlsv1_2 verify_client=no verify_server=no allow_reload=yes ; TLS для браузера завершает тот же Nginx, что обслуживает АРМ. До Asterisk ; SIP signaling идёт WebSocket внутри изолированной Docker-сети. [transport-ws] type=transport protocol=ws bind=0.0.0.0 external_media_address=${SIP_EXTERNAL_MEDIA_ADDRESS} [training-endpoint](!) type=endpoint context=lct-training disallow=all allow=ulaw allow=alaw direct_media=no rtp_symmetric=yes force_rport=yes rewrite_contact=yes ice_support=yes timers=yes dtmf_mode=rfc4733 language=ru [6001](training-endpoint) auth=6001-auth aors=6001 callerid=Диспетчер ДДС <6001> [6001-auth] type=auth auth_type=userpass username=6001 password=${SIP_6001_PASSWORD} [6001] type=aor max_contacts=3 remove_existing=yes qualify_frequency=30 [6002](training-endpoint) auth=6002-auth aors=6002 callerid=Старший группы <6002> [6002-auth] type=auth auth_type=userpass username=6002 password=${SIP_6002_PASSWORD} [6002] type=aor max_contacts=3 remove_existing=yes qualify_frequency=30 [6003](training-endpoint) auth=6003-auth aors=6003 callerid=Преподаватель <6003> [6003-auth] type=auth auth_type=userpass username=6003 password=${SIP_6003_PASSWORD} [6003] type=aor max_contacts=3 remove_existing=yes qualify_frequency=30 [webrtc-endpoint](!) type=endpoint context=lct-training disallow=all allow=ulaw allow=alaw direct_media=no webrtc=yes use_avpf=yes media_encryption=dtls dtls_auto_generate_cert=yes dtls_verify=fingerprint dtls_setup=actpass ice_support=yes media_use_received_transport=yes rtcp_mux=yes rtp_symmetric=yes force_rport=yes rewrite_contact=yes timers=yes dtmf_mode=rfc4733 language=ru [6101](webrtc-endpoint) auth=6101-auth aors=6101 callerid=Веб ДДС <6101> [6101-auth] type=auth auth_type=userpass username=6101 password=${SIP_6101_PASSWORD} [6101] type=aor max_contacts=2 remove_existing=yes # Browser SIP.js clients use a persistent WSS registration and do not reliably # answer Asterisk's periodic OPTIONS probes. Do not mark a live WSS contact # unreachable based on those probes; registration expiry still governs liveness. qualify_frequency=0 [6102](webrtc-endpoint) auth=6102-auth aors=6102 callerid=Веб старший группы <6102> [6102-auth] type=auth auth_type=userpass username=6102 password=${SIP_6102_PASSWORD} [6102] type=aor max_contacts=2 remove_existing=yes qualify_frequency=0 ; Вышестоящий начальник ДДС: роль играет преподаватель со страницы ; /phone?role=superior. Обязательный голосовой маршрут по ответу заказчика (П.7). [6103](webrtc-endpoint) auth=6103-auth aors=6103 callerid=Веб вышестоящий начальник <6103> [6103-auth] type=auth auth_type=userpass username=6103 password=${SIP_6103_PASSWORD} [6103] type=aor max_contacts=2 remove_existing=yes qualify_frequency=0