web-dev-qa-db-ja.com

アスタリスクは、SIP通知メッセージを介して通話を開始します

デスクにYealinkIP電話があり、電話で直接番号を入力するのではなく、コンピューターから電話をかけることができるように、リモートコントロールしたいと考えています。このリンクはそれを行う方法を説明しています:

リモコンを使用してダイヤルまたは電話をかける方法| Yealinkサポート

それを行うには2の方法があります。 1つは、電話にhttpリクエストを送信することです。そして他のオプションはSIP通知メッセージを送信することです。

A)HTTPリクエストの送信(動作します!)

  1. まず、電話がリモート接続を許可するように構成されていることを確認します

enter image description here

  1. 次に、このwgetリクエストを行います

    wget --user admin --password PASSWORD_PHONE  http://IP_OF_PHONE/servlet?key=SPEAKER
    

そのリクエストを行った後、電話のスピーカーキーが押されました!


B)送信SIP通知メッセージ(機能しません)

ユーザー名とパスワードを保存したくないので、これは私が使用したいオプションです。また、電話のIPアドレスが変更される場合があります。 とにかくここに私が試したものがあり、何らかの理由でこのオプションを機能させることができません:

  1. パート(A)で行った最初のステップは、電話をリモート制御できるようにすることで実行します。

  2. 電話をアスタリスクサーバーに接続し、接続されていることを確認します。 enter image description here

  3. SIPピアEduardoが接続されたので、それにSIP key = SPEAKERを含む本文で通知メッセージを送信する必要があります。

  4. 私は開ける /etc/asterisk/sip_notify.confそして、次のコンテキストを追加します。

    [テスト] Event => ACTION-URI Content => key = SPEAKER

  5. Sip_notify.confをリロードする方法がわからないため、アスタリスクを再起動します

    asterisk -rx "core restart gracefully"
    
  6. 次に、アスタリスクCLIで、sip通知メッセージを送信するために次のコマンドを入力します。

    sip notify test Eduardo
    
  7. そのコマンドを実行すると、アスタリスクは次のようになります。Sending NOTIFY of type 'test' to 'Eduardo'しかし、電話がSPEAKERキーを押すことはありません!何が間違っているのでしょうか?

  8. これがWiresharkによってキャプチャされた一口メッセージです!

enter image description here

  1. 指示に従っているのに、SPEAKERキーが押されていません!何が間違っているのでしょうか?

役立つ情報:

enter image description here

1
Tono Nam

一日中試した後、私はそれを理解することができました! content-typeヘッダーがありませんでした!

とにかくここに解決策があります:

  1. sip_notify.confファイルには次のものが含まれている必要があります:

    [test]
    Content-Type=>message/sipfrag
    Event=>ACTION-URI
    Content=>key=SPEAKER
    

    この線 Content-Type=>message/sipfrag はとても重要です!

  2. sip_notify.confがリロードされるようにアスタリスクを再起動します

    アスタリスク-rx「コアは正常に再起動します」

  3. 次に、このアスタリスクコマンドを入力します:

    sip notify test Eduardo
    

    ここで、Eduardoは、キーを送信するSIPピア)です。

  4. 使用可能なすべてのキーのリストはここにあります:

    http://support.yealink.com/faq/faqInfo?id=17

1
Tono Nam