Les appels entrants avec le protocole SIP et WebRTC
Je suis à la recherche dans la mise en œuvre d'un navigateur à base de solution de VOIP qui utilise le protocole SIP et WebRTC et qui se connecte à la PTSN. Fondamentalement, les utilisateurs de me donner leurs informations d'identification SIP et j'utilise WebRTC pour l'accès à leurs haut-parleurs et microphone. Sur la page, j'ai l'intention d'exécuter un client SIP.
Comment puis-je mettre en œuvre les appels entrants en provenance de la PTSN? Dois-je besoin d'une sorte de port d'écoute qui se connecte au serveur SIP de l'utilisateur?
Je sais que c'est une vaste question, mais après avoir fait quelques recherches en ligne, je suis toujours un peu confus au sujet de la SIP de la mise en œuvre des appels entrants.
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin d'un serveur qui implémente un SIP-WebRTC passerelle. La passerelle sera en mesure de recevoir des appels entrants à partir d'un fournisseur SIP (qui lui-même agit comme une passerelle SIP-RTC par la conversion RNIS-SIP, SS7-SIP etc) via le protocole SIP et ensuite transférer l'appel vers votre navigateur basé clients à l'aide de WebRTC.
Mettez une autre façon, votre serveur doit être une combinaison d'un serveur SIP et un serveur HTTP et le serveur HTTP doit soutenir les web sockets et l'API WebRTC.
Si vous ne l'avez pas déjà jeter un oeil à la Phono SDK c'est un bon point de départ.
Mise à jour:
Les choses ont évolué un peu depuis la dernière fois que j'ai regardé WebRTC. Il existe maintenant ne semble SIP en javascript applications qui tirent parti de la nouvelle Api WebRTC pour les médias côté des choses. Une application de navigateur à l'aide d'un SIP-javascript pile n'aurait pas besoin de serveurs et peut se connecter directement à un serveur SIP. Un exemple que j'ai trouvé est sip-js mais je crois qu'il y a d'autres personnes qui l'entourent.
Peut-être une actualisation pour cela en vaut la peine.
WebRTC est mis en œuvre maintenant dans Firefox et Chrome (et manquant de IE, Edge et Safari).
L'héritage pour la SIP à WebRTC certaines conversions sont nécessaires.
Avec WebRTC vous pouvez utiliser n'importe quoi pour la signalisation en général sur WebSocket. Vous pouvez mettre en œuvre votre protocole propriétaire, cependant, si vous êtes à la recherche pour le SIP de compatibilité la plus naturelle est la WebSocket de protocole SIP.
WebRTC code pour les médias en DTLS/SRTP de sorte que vous aurez à le décoder également en clair RTP. Cela signifie que sur le côté serveur, soit vous utilisez un commutateur avec WebRTC support intégré ou un WebRTC de passerelle SIP. Assurez-vous de sélectionner un commutateur/passerelle avec support complet de transcodage de soutien.
WebRTC prend actuellement en charge G. 711, G. 722 et Opus. Pour l'héritage réseau SIP de votre serveur habituellement juste sélectionne G. 711 et tout est parfait. Dans certains cas, vous pouvez convertir des médias de l'autre populaire du codec G. 729, G. 723 ou GSM.
Habituellement, vous avez le protocole suivant coversions:
Softswitch avec WebRTC support:
WebRTC de passerelles SIP:
SIP (RFC 7118) capable WebRTC clients:
Aussi, vous devez déployer et d'utiliser votre propre ÉTOURDIR et de TOURNER des serveurs (certains le serveur/passerelles ont de ces, sinon utilisez coturn rfc5766-tour-serveur).
Une fois que le serveur est en place et en cours d'exécution, vous pouvez facilement créer votre propre côté client solution basée sur le webrtc clients, puisque chacun d'eux a un simple pour utiliser l'API JavaScript.
En théorie, vous pouvez déployer un serveur SIP à l'aide d'un open source softswitch (FreeSWITCH, Astérisque) et le projet d'achat "SIP trunking" de service pour obtenir les numéros de téléphone et acheminer les appels vers/en provenance du RTPC. Ensuite, vous pouvez configurer un WebRTC client SIP pour utiliser votre serveur. Il y a l'open source bibliothèques JavaScript (SIP.js, JsSIP, sipML5).
Qui peut être votre meilleur choix si vous travaillez dans les petites et très utilisé pour l'exécution d'infrastructures télécoms & de l'achat de l'agrégation. Dans la pratique, l'exécution de PSTN de WebRTC appels peut être difficile— beaucoup de soucis de qualité. Aussi, je ne sais pas à quelle échelle vous cherchez à construire votre application, mais plus de 100 connexions simultanées à votre serveur SIP, et vous aurez besoin pour faire face à l'échelle. Si vous voulez une solution hébergée pour couper les telecom tracas, vous pouvez utiliser SIP.js et inscrivez-vous pour OnSIP (société de soutien SIP.js), qui est un pay-as-you-go service qui vous permettra d'acheter les numéros de téléphone et juste obtenir le codage de votre client. SIP.js l'agent utilisateur de la construction ressemble à ceci:
Si vous avez choisi OnSIP (hébergé), ces informations d'identification sont fournies par le service et d'enregistrer avec OnSIP. Si vous choisissez de déployer vos propres serveurs SIP, vous pouvez modifier en conséquence.
solution pour votre problème est: