【Android】端末標準の電話機能でSIPを使う方法(受信・送信)

設定から送信までまとめて日本語で書いてあるエントリがあんまり見当たらなかったので書く。

description

SMARTalkとかChiffonみたいなサードパーティアプリを使わず、050から始まる電話番号も使わず、Android端末の電話機能でSIP電話を受ける・かける方法。

スクショはNexus5 (Android 6.0)のものを掲載。

play.google.com

play.google.com

overview

  1. Android端末にSIPアカウントを割り当てる
  2. SIPアドレス宛てに電話をかける

Android端末にSIPアカウントを割り当てる

Android端末をSIP電話の受信機にするにはSIPアカウントを割り当てる必要がある。

key value
ユーザー名 foo
パスワード bar
ドメイン example.com

「foo@example.com」宛てのSIP電話を受信するための設定手順はだいたい以下の通り(例外多数)1

  1. 「電話(Phone)」を開く
  2. 連絡先検索バーの「…」をタップ
  3. 「設定(Settings)」をタップ(→画像)
  4. 「通話(Call settings)」をタップ
  5. 「通話アカウント(Calling accounts)」をタップ(→画像)
  6. SIPアカウント(SIP accounts)」をタップ(→画像)
  7. SIPアカウント」一覧のヘッダの「+」をタップ(→画像)
  8. ユーザー名、パスワード、ドメインを設定して「保存(Save)」(→画像)
  9. 「通話アカウント」画面で「着信を受ける(Receive incoming call)」をオンにする

f:id:wifeofvillon:20180308122912p:plain

f:id:wifeofvillon:20180308122946p:plain

f:id:wifeofvillon:20180308123826p:plain

f:id:wifeofvillon:20180308124026p:plain

f:id:wifeofvillon:20180308124257p:plain

SIPアドレス宛てに電話をかける

「foo@example.com」宛てに電話をかける場合「連絡先(Contact)」にアドレスを登録してしまうのが多分一番早い2

連絡先の「その他の項目(More fields)」に「SIP電話」の項目があるのでそこに「foo@example.com」を登録する。(→画像)

f:id:wifeofvillon:20180308125219p:plain

tl;dr

読まなくていい個人的にハマったところ

  • SIP ♯とは(→IP電話プロトコルの一種だよ!)
  • ドメインをタイポしまくる(→コピペするか他の人にも確認してもらおう!)
  • 「着信を受ける」がオンになってない(→送信はできるけど受信はできないよ!)
  • Wi-Fiがオンになってない(→インターネットに繋がってないと使えないよ!)

マスタリングTCP/IP SIP編

マスタリングTCP/IP SIP編


  1. ZenFoneシリーズだとそもそもこの通話設定が電話じゃなくてWi-Fiとかあの辺の設定と一緒に設定画面にあったり、メーカーによって微妙に画面遷移が違ってたりする。

  2. ダイヤルパッドからアルファベットと記号打てそうな気がするんだけどやり方がわからなかった

【MONA】tipmonaを使う方法

仮想通貨界隈が焦げ付いている今日この頃ですが、@を使った投げ銭を試してみたのでメモ

tipmonaの使い方

tipmonaはTwitterを使って投げ銭ができる仕組みで、送金以外にも残高参照などもろもろの機能をCIっぽく使うことができますが、TwitterAPI制限もあるので実質使うのは送金の「tip」だけになりそう。

送金以外の機能はだいたいMonappyからでも可能です。

@tipmona tip @${screen_name} ${value}

他のコマンドは公式ドキュメントを参照のこと。

monappy.jp

Monappy⇔tipmona間のMONA移動

今回はMonappyでMONAを貸してくれる人を募り、Monappyで投げ銭してもらったMONAをtipmonaで返してみました。

今回引っかかったのは「Monappyとtipmonaのウォレットは別」という点でした。簡単な図を用意しましたが、Monappyで借りたMONAをtipmonaで返すには

f:id:wifeofvillon:20180128171456j:plain

  1. Monappy上で受け取ったMONAはMonappyのウォレットにプールされる
  2. Monappyから手数料0.01MONAを払ってtipmonaのウォレットに入金する
  3. tipmonaでMONAを送金する

という手順を踏む必要があります(必然的に0.01MONA目減りする)。

毎回約7円くらい目減りするというのもアレなので、ウォレット間のMONA移動はある程度MONAが溜まってからの方が良さそうな気がしました。

MONAの入手方法

MONAbitbank.ccbitFlyerで購入することもできるのですが、口座開設の身元確認に少なくとも1営業日はかかるので、1MONAくらいなら絵が描ける人はMonappyで投げ銭してもらう方が早い気がします。

↓実装中

macOS High Sierra の「Month 13 is out of bounds」エラーに対処する(β)

f:id:wifeofvillon:20171201084934p:plain

NOTE: Mac初心者が成長するためのぼっちアドベントカレンダー・21日目

WIP: このエントリで紹介している内容には開発者向けbeta版の話題を含みます

前置き: 筆者のマシンに起こっていたこと(2017-12-21現在)

今回のエントリを書く背景には大きくふたつの問題があり、今回はひとつめの問題について対処した話をします。

  1. 大した作業をしているわけではないのにハング→再起動を繰り返す
  2. 艦隊これくしょん-艦これ-」と「刀剣乱舞-ONLINE-」を同時にGoogle ChromeでプレイするとCPU使用率がすごく高くなる

macOS High Sierraで起きていた(いる)「Month 13 is out of bounds」エラー

元々「滅多にフリーズしない」と言われているMacをやたらハングさせる筆者ですが、12月上旬は5日に1回ペースだった異常終了がどんどん頻繁になっていき、ついには12月20日の時点でブラウザ上での作業が困難になりました。

Macのログメッセージを確認する

Macでは「コンソール」を使用することでログメッセージを確認することができます。

support.apple.com

最初はSystem.logに適当にあたりをつけて再起動直前の状況を知ろうと思っていたのですが、とにかくものすごい勢いで「Month 13 is out of bounds」というエラーが吐かれていることを発見しました。

f:id:wifeofvillon:20171221221447p:plain

「Month 13 is out of bounds」エラー

これはCore Foundationに作り込まれているバグらしく、スペックがあまりに低いわけでもない限りそこまで著しくCPU使用率を逼迫させていたわけではないようです。

applech2.com

Core Foundation - Wikipedia

ただ筆者が使っているマシンがCore i5/メモリ8GBという微妙なスペックであること、常駐アプリが多いこと、Chromeで大量にタブを開いて作業をしていることなどが重なり、頻繁な再起動に繋がったのではないかと考えています。

とりあえずの対応としては以下が挙がっています。

  • システム時間を2017年12月以前に戻す
  • UserEventAgentをkillする

システム時間をいじるのは影響範囲が大きそうなのでやりたくないのと、UserEventAgentが何をやっているプロセスなのかググってもよくわからなかったのとで、他の対応を取ることにしました

applech2.com

対応1: mdworkerを止める

mdworkerというSpotlight検索のプロセスが、UserEventAgent以外で頻繁にエラーログに出現していたので、元々Spotlight検索をそれほど使っていなかったこともあり、マシン内を検索しないように設定しました。

webhoric.com

対応2: メモリを意識的にクリアする

下のエントリでMagicanLiteというアプリを紹介しています。常にCPU/メモリ使用率を意識してチェックするようにし、頻繁にメモリをクリアするようにしたのですが、「艦隊これくしょん」で遠征に出すことすらつらいという状況でした。

wifeofvillon.hatenablog.com

あとMagicanLiteがすげー勢いで「Month 13 is out of bounds」を吐く……

対応3: ChromeHelperをできるだけ立ち上げないようにする

Google Chromeを使っているとChromeHelperというプロセスが実行されます。
これがCPUもメモリも食う上にタブの数だけ(?)増えるという状態だったので一部の作業というか、連隊戦イベント絶賛開催中の「刀剣乱舞-ONLINE-」をSafariで実行するようにしました(薄々そんな気はしていたのですが案の定あまり意味はありませんでした。これについては明日書きます)。
また、できるだけタブを開きっぱなしにしないようにしましたがこれもまた限度がありました。

今検索したら良さげなコマンドがあったので明日試そう。

ottan.xyz

対応4: 「macOS High Sierra 10.13.3 beta 2」をインストールする

イムリーなことに12月19日に開発者向けbeta版がリリースされていたので、完全に力技なんですけどインストールしました。

minatokobe.com

Apple Developer

夫のアカウントを使ったので確証はないんですけど、以下の条件を満たす必要があるかもしれません。

  • Apple Developer Accountを持っている
  • メンバーシップを購入している

結論: 正式リリースはよ

とりあえずこれを書いている現状、理不尽な再起動は起こっていませんが、Google Chromeが阿呆ほど重いのと、Beta版なので(「Month 13 is out of bounds」でない)エラーログが尋常じゃない勢いで吐かれています。

はよう正式リリースを頼む。

おわりに

図らずもアドベントカレンダーのネタができてしまったことを嘆く筆者のツイートです。

Macでフルスクリーン化(最大化)した複数のアプリをひとつのディスプレイに表示させる方法

f:id:wifeofvillon:20171201084934p:plain

NOTE: Mac初心者が成長するためのぼっちアドベントカレンダー・20日目

フルスクリーン化(最大化)したふたつのアプリをひとつの作業領域(ディスプレイ)に表示させる

先日、Mission Controlを使って複数の作業領域を使う方法について書きました。

wifeofvillon.hatenablog.com

今日は「絶対できること知らない人いるって!」と言われたので、フルスクリーン化したふたつのアプリをひとつの作業領域に表示させる方法を紹介します。

上の表現だと意味不明だと思うんですけど要するにこういうこと(Atom+Trello)

f:id:wifeofvillon:20171220194612p:plain

複数のアプリをひとつの作業領域に表示する

実現方法は次の通りです。

  1. (前提:ふたつのアプリをフルスクリーン表示にする)
  2. Mission Controlを表示する
  3. 片方のアプリをもう片方のアプリにドラッグ&ドロップする

f:id:wifeofvillon:20171220195503p:plain

f:id:wifeofvillon:20171220195507p:plain

f:id:wifeofvillon:20171220195510p:plain

解除方法

何気なくやってできたのでちゃんと調べていないのですが、筆者は片方のアプリのフルスクリーン化を一旦解除することで元に戻しています。

余談

これ無限にアプリ追加していけるのかと思ったらそうでもなかった。

おわりに

ちなみにネタ提供者は曲面ディスプレイ使いでした。はぁなるほど

Macの「カレンダー」にGoogleカレンダーの内容を同期させる

f:id:wifeofvillon:20171201084934p:plain

NOTE: Mac初心者が成長するためのぼっちアドベントカレンダー・19日目

Macの「カレンダー」にGoogleカレンダーの内容を同期させる

生活基盤の結構な割合をGoogleAmazonに握られているので「全部ブラウザでいいじゃん」と思っていました。
ただ次のエントリを書いたときに「通知センターって実は超便利なのでは?」と思ったのと、Twitterで「ネタがない」と呻いていたら@さんからお題を頂戴したので、Googleカレンダーを「カレンダー」で読み込んでみることにしました。

AppleアカウントにGoogleアカウントを連携する

ログイン中のAppleアカウント(で合ってる?)と連携しているインターネットアカウントはシステム環境設定 > インターネットアカウントの「アカウント」タブで確認・追加・削除できます。
今回はタイトルに「Googleカレンダーの内容を同期させる」と大きく出ましたが、もちろんノータイムで変更が反映される訳ではなく定期的にReadして反映してくれるようです。その時間間隔もここで設定できます。

f:id:wifeofvillon:20171219153845p:plain

「カレンダー」からGoogleアカウントに接続する

「システム環境設定」を開かなくても「カレンダー」から直接Google他のアカウントに接続することができます。

「カレンダー」を開き、カレンダー > アカウントを追加をクリックすると、接続できるWebサービスの候補が表示されます。

f:id:wifeofvillon:20171219154941p:plain

Google」を選択し「続ける」と、Googleのログイン画面が表示されます。

f:id:wifeofvillon:20171219155057p:plain

Googleアカウントにログインすると、どのアプリケーション連携するかを訊かれるので、今回は「カレンダー」を選びます(ここで「メール」も選んでおくと普通にGmailの同期も始まる)。

f:id:wifeofvillon:20171219155146p:plain

この同期作業をしている間、16時に「テスト」という予定をブラウザ経由で追加しておいたのですが、ちゃんと反映されましたね。

f:id:wifeofvillon:20171219155803p:plain

通知センターにも反映されました。

f:id:wifeofvillon:20171219155853p:plain

おわりに

はるか昔SIerに入社したときにある先輩のすぐ「紐付ける」って言葉を使うところが(その先輩のことは今でも五本の指に入る程度には尊敬してるんですけど)好きじゃないなぁと思っていたのに、自分も「紐付ける」おばさんになってしまったことに気付きました。
慌てて別の用語に変更しましたが漏れがあるかもしれません。

Macのターミナルプロンプト名($より前の文字列)を変更する

f:id:wifeofvillon:20171201084934p:plain

NOTE: Mac初心者が成長するためのぼっちアドベントカレンダー・17日目

Macのターミナルプロンプト名を変更する

ターミナルの$より前の文字列の呼び方

Macに限らずターミナル(コマンドプロンプト)の$より前の文字列って「プロンプト」って呼ぶらしいですよ

[wifeofvillonnoMac-mini:~ wifeofvillon$ 

コンピューターにコマンドを入力する場所を表す画面上の表示。特に、MS-DOSUNIXWindowsのコマンド プロンプトでのコマンド入力表示を指す。

kotobank.jp

プロンプト名の変更手順

macOSのプロンプトのデフォルトは(Mac miniの場合)以下の通りになっています。

{user_name}noMac-mini: {current_path} {user_name} $

これを次のような文字列に変更しようと思います。

{hh:mm:ss} {current_path} $

変更手順は以下の通りです。

  1. /etc/bashrcの記述を変更する
  2. /etc/bashrcの内容を読み込む

/etc/bashrcの記述を変更する

bashrcをsudoで開きます。エディタは何でもいいと思うんですけど使い慣れたvimで行きましょう。

$ sudo vim /etc/bashrc

PS1という変数があるので、その値を変更します。以下によく使いそうなオプションを記載します。

オプション 意味
\h ホスト名
\W 現在のディレクトリ名
\w 現在のディレクトリ(フルパス)
\u 現在のユーザー名
\d 曜日 月 日の形式の日付
\t 時刻 HH:MM:SS 形式(24時間)
\s シェル名

そのほかのオプションについてはこちらのエントリが詳しいです。

oxynotes.com

:wq!で変更内容を保存します。

/etc/bashrcの内容を読み込む

変更直後は設定が反映されないので、変更内容を再読み込みします。

$ source /etc/bashrc

実行ログと設定内容はこんな感じです。

f:id:wifeofvillon:20171217063057p:plain

おわりに

すごく無理矢理やってる気がしてならないので、この企画全体に言えることなんですけど本当に自己責任でお願いします。

MacでIPアドレスを調べる

f:id:wifeofvillon:20171201084934p:plain

NOTE: Mac初心者が成長するためのぼっちアドベントカレンダー・16日目

MacIPアドレスを調べる

ターミナルでifconfigする

Windowsで端末のIPアドレスを知りたいとき、筆者はコマンドプロンプトを立ち上げてipconfigを打っていたんですけど、Macのターミナルで同じことをする場合ifconfigを打てばいいらしいです。

この企画のテーマを踏まえると「らしい」止まりなのは本当よくないと思うんですけど、正直ネットワーク方面は問題視されるレベルでわからないので参考にしたエントリを貼るだけにします。

bambinya.hateblo.jp

システム環境設定から確認する

プライベートIPアドレスシステム環境設定 > ネットワークから確認できます。

f:id:wifeofvillon:20171216180447p:plain f:id:wifeofvillon:20171216180452p:plain

ねっとりわーく……?

もっと詳しいアドレスはネットワーク > 詳細で確認できます。

f:id:wifeofvillon:20171216180456p:plain

おわりに

偶然知ったんですけどLinuxではifconfigコマンドの使用は非推奨になったらしいですよ

qiita.com

そして筆者はもうすこしネットワークに興味を持った方がいいと思う

まるごとわかるネットワーク入門

まるごとわかるネットワーク入門