• 締切済み

他のアプリのデータを取り出す方法について

作りたい機能 スマートフォンとLINUXをlinphoneというSIPのアプリで通話状態にします。 スマートフォンからLINUXへDTMF信号を送信し、DTMFの値に応じてLINUX側で処理を行いたいと考えています。 ※LINUXではlinphoneをコンソールで立ち上げています。 現状 スマートフォンからLINUXへDTMF信号を送信したときに、 LINUX側のコンソールにDTMFの値が表示されることを確認しました。 確認した時のログは以下になります。 --------------------------------------------------------------------------------- call sip:a****b****@sip.linphone.org Establishing call id to <sip:a****b****@sip.linphone.org>, assigned id 2 linphonec> Contacting <sip:a****b****@sip.linphone.org> linphonec> Call 2 to <sip:a****b****@sip.linphone.org> in progress. Remote ringing. linphonec> Remote ringing... linphonec> Call 2 to <sip:a****b****@sip.linphone.org> ringing. Call 2 with <sip:a****b****@sip.linphone.org> connected. Call answered by <sip:a****b****@sip.linphone.org>. linphonec> Media streams established with <sip:a****b****@sip.linphone.org> for call 2. Receiving tone 1 from <sip:a****b****@sip.linphone.org> /* ←DTMF この値を他のプログラムで使用いしたいです */ Receiving tone 3 from <sip:a****b****@sip.linphone.org> /* ←DTMF この値を他のプログラムで使用いしたいです */ Call terminated. linphonec> Call 2 with <sip:a****b****@sip.linphone.org> ended (No error). -------------------------------------------------------------------------------- 質問 通話中のlinphoneからDTMFの値を取り出し、他のプログラムで使用する方法を教えて頂けませんか? 補足 LINUX側で自作するプログラム(C言語を予定しています。)がDTMFの値を認識して処理を行いたいです。 自作するプログラムとlinphoneは同時に起動している状態です。 よろしくお願いします。

みんなの回答

  • Foster_B
  • ベストアンサー率71% (5/7)
回答No.2

Linphoneはソースコードが公開されていますから 自分で改造すればいいのではないでしょうか? https://www.linphone.org/eng/download/git.html 他の方法としては、 Linphoneの前にSIPサーバをおいて、プラグイン等でDTMFを監視する。

全文を見る
すると、全ての回答が全文表示されます。
  • wormhole
  • ベストアンサー率28% (1622/5659)
回答No.1

wiresharkやtcpdumpを参考にしてみてはいかがですか。

ninja333333
質問者

お礼

回答ありがとうございます。 スマートフォンから送られてくるパケットからDTMFの値を直接取得するという方法ですね。 自分の頭にない考えでした。 試してみます! ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルマクロで、他ブックのプログラムを実行する方法

    よろしくお願いします。 A.xlsとB.xlsがあるとします。 A.xlsの中にaというマクロプログラムがあるとしまして、 この中で色々と処理をするとします。そしてその処理結果(例えばxという変数)をB.xlsの中にあるbというマクロプログラムに渡してbを実行させたいのです。 aの中で、   Application.Run "B.xls!b" と書けば、bは走ってくれるのですが、xをbに渡す方法がわかりません。   Call b(x) のような感じでできないものでしょうか? 何卒よろしくお願いします。

  • 他マシンへの接続法

     手元にあるマシンA(Windows,Linux)から別の部屋にあるマシンB(Linux)に何かしらの方法でログインし,マシンB上で,ある数値計算プログラムを実行することを考えています.  とりあえず,マシンAからマシンBにtelnetでログインして計算を実行することは可能ですが,一旦,telnet接続を切ると計算も強制終了されてしまいます(計算し続けるにはtelnet接続し続けないといけない).  マシンB上で計算実行中に一旦接続を切っても,引き続き,マシンBで計算を実行し続けるにはどのような方法があるのでしょうか?.

  • 別のプロセスの関数を呼び出す方法はありますか?

    別のプロセスの関数を呼び出す方法はありますか? WINDOWSでプロセスAとプロセスBがあり、 プロセスBの関数ポインタをプロセスAで取得するところまではできるのですが、 この後、プロセスAからプロセスBの関数をコールバックする方法はありますか? アドレス空間はプロセスごとに固有であるため、 通常のコールバックではうまくいかないと思うのですが・・・。 尚、プロセスAとプロセスBは、異なるプログラムです。

  • 値の比較方法

    VBをはじめて2週間の新人です。よろしくお願いします。 早速質問させていただきたいのですが、 データグリッドに入力した列の値(複数)をすべて比較するというプログラムを作りたいのですがどうすればいいのかわかりません。 たとえばデータ列に[A][B][C][D][E]・・・という風にどんどん入力されていき、その値を比較、[A]=[B],[A]=[C],[A]=[D],[A]=[E], [B]=[C],[B]=[D],[B]=[E]・・・・ という感じですべての値が同一にならないよう(同一の場合はエラーを発生)にしたいのです。 ループを使うのだろうなぁとはおもうのですが、うまくいきません。 お助けいただけますでしょうか、よろしくお願いします。

  • 下記の問題の解き方を教えて下さい。

    主プログラム Main と副プログラム SubX からなる図のプログラムを実行した  後の,変数 A,B の値の組合せとして,正しいものはどれか。ここで,プログラ  ム中の [ ] の部分は,コードの代わりにその内容を記述したものである。  ┌―――――――――┐┌―――――――――――――――――――――――┐  │Main       ││SubX(参照引渡しの仮引数 C ,値渡しの仮引数 D) │  │         ││                       │  │[変数 A の宣言]  ││[変数 E の宣言]                │  │[変数 B の宣言」 ││ E = C                   │  │ A = 1     ││ C = D                   │  │ B = 2     ││ D = E                   │  │Call SubX ( A,B )││                       │  │         ││End Sub                    │  │End        ││                       │  └―――――――――┘└―――――――――――――――――――――――┘    ┌――┬――┐    │ A │ B │  ┌―┼――┼――┤  │ア│ 1 │ 1 │  ├―┼――┼――┤  │イ│ 1 │ 2 │  ├―┼――┼――┤  │ウ│ 2 │ 1 │  ├―┼――┼――┤  │エ│ 2 │ 2 │  └―┴――┴――┘

  • テーブル間の差分抽出方法は? - クエリー文

    Red Hat Enterpraise Linux 3 PostgreSQL7.3.10(Linux) 現在2つのテーブルA,Bにてメールアドレスを管理していますが その2つのテーブルの差分を知りたいのですが、 (Aを基準と考えBとの差分:つまりAには存在しないデータ抽出) プログラム(PHP等)を使用せずに 差分を取得するには、どの様なクエリー文を組むと出来るのでしょうか? よろしくお願いします。

  • socket使用時の環境変数(REMOTE_ADDR)について

    色々調べても結局わかりませんでしたので もしお分かりになる方がいらっしゃれば 教えて頂ければ幸いです。 socketを使用するAというプログラムを作ったのですが、 そのプログラムからBというプログラムを呼び出した時、 Aに取得されるREMOTE_ADDRは、私のREMOTE_ADDRになるのですが、 Bに取得されるREMOTE_ADDRは、サーバのREMOTE_ADDRになってしまいます。 Bに対しても私のREMOTE_ADDRを取得させたいのですが、 方法はありますでしょうか? 具体的なSOCKET使用機構は以下のようになっております。 use IO::Socket qw(:DEFAULT :crlf); $/ = CRLF . CRLF; my $data; my ($host,$path) = $url =~m!^http://([^/]+)(/[^\#]*)!; my $socket = IO::Socket::INET->new(PeerAddr => $host, PeerPort => 'http(80)', Proto => 'tcp'); select($socket); $|= 1; select (STDOUT); print $socket "POST $path HTTP/1.0",CRLF,CRLF; close($socket); どうぞ宜しくお願い致します。

    • ベストアンサー
    • Perl
  • 別フォームで入力したデータを表示させる方法

    Visual Basic 2005 Express Edhition 2日目の超初心者です。 Form1にA,B,Cのテキストボックスを作り、計算釦を押すとAとBに入力した数値の和をCに表示させるプログラムを作りました。 ただし、Bへの入力のみForm1から呼び出したForm2で行い、入力後はForm2を閉じています。 この時、Form1に表示されるBの値が計算釦を押すまで新しい入力値で表示されません。 Form2を閉じたタイミングで新しい入力値を表示させる方法を教えて下さい。

  • 変数を複数のモジュール間で共有する方法

    VBAで大きなプログラムを書いた際に、 後から修正したりしやすくするために、機能ごとにモジュールに分けて保存しておきたいと考えています。 例えば、 sub call start(a, b, c, d, e, f, ,・・・・・) call first(a, b, c, d, e, f, ,・・・・・) call second(a, b, c, d, e, f, ,・・・・・) ・・・・・ end sub のようにcallで繋いでいけば、複数のモジュールに機能を分散させることができるのですが、 変数をいちいち、括弧内に入れる必要があり、 後から修正するのが大変です。 sub call start() call first() call second() ・・・・・ end sub のように変数を書かずにcallを使いたいのですが、 複数のモジュール間で変数を共有することってできないのでしょうか? また、Excelのデータシートには、データ→グループ化という機能がついていますが こういうような機能はVBAにはないのでしょうか?

  • ウォッチの値とprintfの値が違う

    main関数で構造体に値をセットしています。 構造体はA,B,Cとします。 ここでCをprintfすると"97979"と正しい値が表示されます。 次にV00関数をコールし、この構造体のポインタを渡します。 ここでprintfすると"-11111"と表示されます。 ウォッチでは"97979"が出ています。 "-11111"は、構造体の1つ前のBの値です。 プログラムは"-11111"と判断して処理が続行され 正常に流れません。 どうしたらよいのでしょうか?