私はSIP UAを実装しようとしています。そのために、AsteriskコンソールをSIPのデバッグモードで調べました。別の内線番号(B)から1つの内線番号(A)を呼び出そうとしました。アスタリスクSIPメッセージフローを簡素化したい
ダイジェスト認証の部分を含め、最初のメッセージがRINGINGメッセージまで流れていたことが分かりました。 これらは次のとおりです。
前後一連のメッセージが続く(B) >--->INVITE-----[Asterisk]
:
401 Unauthorized with NONCE
ACK
INVITE with correct Digest
TRYING
TRYING
RINGING
鳴っ電話(A)がピックアップされた後、私はメッセージの以下の交換を参照してください。
(A) >----> OK >-----> [Asterisk]
(A) <----< ACK<-----< [Asterisk]
[Asterisk] >----- OK ------> (B)
(A) >---(re)INVITE--> [Asterisk]
[Asterisk] <-----ACK-------< (B)
[Asterisk] >---(re)INVITE--> (B)
(A) >---TRYING -----> [Asterisk]
[Asterisk] <-----OK--------< (B)
(A) >-----OK--------> [Asterisk]
(A) <----ACK--------< [Asterisk]
私は、(B)側のUAの一部を書き込み、事前にAのためのSDPを知っているし、私のコントロールであるBのための SDPを生成することができています。私のコールフローは常にBからAになります。 (B)からのすべてのメッセージを制御できます。 上記のメッセージフローをどのように減らすことができますか?また、最初のSDPがRINGINGまで交換されたあと、多くのメッセージの必要性を十分に理解していません。それとも彼らは?
真。ダイレクトメディアを無効にすると、多くのメッセージが保存されます。私の場合は、アスタリスクをループの中に残して、オプションが意味をなさないようにしたいと思います。私は早期メディアを無効にすることについて確信しています、私はそれを読むでしょう。 SDPを無視すると、その意味が分かりません。エンドポイントはメディアの機能やポートなどをどのように知っていますか? – Sam
完全準拠のUAを使用する場合は、RFCに記載されているすべてのメッセージをサポートする必要があります。それははるかにあなたが表示されます。あなたが "収縮した" UAを望むなら、1つのコーデック、固定ポート、SDPを無視して作業することができます – arheops
私に必要なのは、トランスポートとしてUDPを持つNodeアプリケーションサーバを通してAsteriskにSIPを呼び出すメカニズムです。基本的なINVITEをサポートする必要があります。それがうまくいくと、INVITEにもう少しオプションを追加できます。本格的なSIP UAを構築するつもりはない。 sip、js、jssip、sipml5などのJSライブラリはすべて、転送としてWebソケットを使用します。私が手にしている限られた仕事のために彼らはあまりにも肥大しているだけでなく、 – Sam