Ich habe nach einer Möglichkeit gesucht, den Android-SIP-Stack so einzurichten, dass er in der Lage ist, einen SIP-Anruf zwischen zwei Geräten im selben Netzwerk ad hoc durchzuführen. d. h. ohne an einen SIP-Server REGISTRIERT zu werden.
Ich konnte das nicht zum Laufen bringen, da die SIP-Demo die Serverregistrierung beinhaltet, und ich kann es nicht dazu bringen, einen Anruf ohne diesen Schritt zu tätigen oder zu empfangen.
Ich bin mir nicht einmal sicher, ob das möglich sein soll. Die kleine Erwähnung, die ich finden konnte, ist widersprüchlich (einige sagen, dass es mit einer spezifischen Einrichtung gemacht werden kann, die sie nicht sagen, was ist, und einige sagen, dass die Android SIP API dafür nicht gedacht ist).
Ich habe mich gefragt, ob jemand das funktioniert hat oder irgendwelche Hinweise hat, wie ich die API dafür konfigurieren könnte, da ich gerne die eingebaute SIP-API verwenden würde, bevor ich die von Dritten betrachte. p>
Die Anwendung, die ich entwickle, ist eine interne, die immer auf den gleichen Geräten läuft, daher ist die Tatsache, dass die SIP API nicht auf allen Geräten vorhanden ist, kein Problem für mich.
Ich habe mich auf dieselbe Problematik festgelegt.
Wenn Sie es ohne die Android-SIP-API machen können, können Sie sich die rtp ansehen api , die Ihnen ein wenig untergeordnete Werkzeuge gibt, um eine P2P VOIP-Anwendung ohne die Notwendigkeit eines Servers zu machen.
Um Audiokonferenzen und ähnliche Anwendungen zu unterstützen, müssen Sie instanziieren zwei Klassen als Endpunkte für den Stream:
AudioStream gibt einen Remote-Endpunkt an und besteht aus einem Netzwerk Mapping und ein konfigurierter AudioCodec. AudioGroup repräsentiert das Lokale Endpunkt für einen oder mehrere AudioStreams. Die AudioGroup mischt alle AudioStreams und optional interagiert mit dem Gerät Lautsprecher und der Mikrofon gleichzeitig.
Das Gegenstück ist, dass Sie Ihr eigenes Device Discovery-Protokoll schreiben müssen, um den Port zu kennen, der vom Audiostream-Peer verwendet wird, wie in diesem antworten
Das Problem ist nicht so schwer, wenn Sie nur eins zu eins Konversation machen wollen, aber ein wenig kniffliger ist, wenn Sie eine Eins-zu-eins Konversation machen wollen.
Für eine Eins-zu-n-Konversation muss der Konferenz-Host für jedes entfernte Gerät, das er anrufen möchte, n Audiostream installieren. Jeder Remote-Peer hat nur einen Audiostream, der mit einem der Host-Audiostreams verbunden ist.
Sip-Peer ist wie eine Nebenstellennummer, die zur Konfiguration im SIP-Telefon verwendet wird. Details zum Erstellen von SIP-Peer finden Sie hier. Ich benutze Centos 6.9 64 Bit und Asterisk 11 installiert Sie können sip peer mit dem asterisk server erstellen. Gehe zu vi /etc/asterisk/sip.conf
%Vor%Für mehr Details und einfaches Verständnis. Bitte beachten Sie den untenstehenden Link
%Vor%oder
%Vor%