血統の森+はてな

旧はてなダイアリーの自動インポートによるアーカイブです。

telスキームのメモ(HTML5メモ(1)の追補)

なんか引っかかるものがあるのは、携帯向けコンテンツを作ったことがない、というのは確実にあると思いますが。
具体的には、電話をかけるという機能、携帯のHTMLにおけるphoneto機能は、キャリアによって記述が異なるのでしょうか? 3キャリアについて記述方法をそれぞれ教えてください。(下記であっていますか?)にあるような以下の表記

<a href="tel:0312345678">03-1234-5678</a>

これは、RFCとして妥当なのかどうか?

RFC 3966 電話番号のためのtel URIによれば、

3.  URI構文

   URIは、RFC 2234 [RFC2234]に記載されているABNF (augmented Backus-Naur 
   form)を使用して定義され、そのコア定義の要素が使用される(RFC 2234の付録
   A)。
(中略)
   「tel」URIの構文を次に示す。

   telephone-uri        = "tel:" telephone-subscriber
   telephone-subscriber = global-number / local-number
   global-number        = global-number-digits *par
   global-number-digits = "+" *phonedigit DIGIT *phonedigit
   phonedigit           = DIGIT / [ visual-separator ]
   visual-separator     = "-" / "." / "(" / ")"
5.  電話番号とそのコンテキスト

5.1.   電話番号

   URIの「telephone-subscriber」部は番号を示す。電話番号は、グローバル(E.
   164)表記またはローカル表記で表すことができる。すべての電話番号は、グ
   ローバル形式で表すことができない場合を除き、グローバル形式を使用しなけ
   ればならない[MUST]。緊急番号(「911」、「112」)や何らかの電話番号案内の
   番号(例: 「411」)といったプライベートな付番計画による番号、およびその
   他のサービスコード(米国におけるN11形式の番号)は、グローバル形式で表す
   ことができない[訳注]。そのため、コンテキスト付きのローカル番号として
   表す必要がある。ローカル番号は、「phone-context」(セクション5.1.5)でタ
   グを付けなければならない[MUST]。

     [訳注: 「911」は米国など、「112」はEU各国などで使用されている緊急
            通報先で、日本では「110」または「119」に相当します。
           「411」は米国などの電話番号案内で、日本では「104」に相当しま
           す。
           「N11」は、211や711など911以外の番号を公的情報サービスの番号
           に割り当てる計画です。]

E.164形式というのは「E.164」とは:ITproによれば、

  • 一つは「81+市外局番(先頭の0を除く)+市内局番(市外局番と合わせて4〜5けた)+加入者番号(4けた)」の加入電話番号
  • もう一つは「81+A0(0A0から先頭の0を除いたもの。A=2,5,7,8,9)+事業者番号(3けた)+加入者番号(5けた)」という携帯電話やPHSIP電話などの電話番号である。

とまあ、国際電話をかけるような電話番号のこと(だと思う)。

5.1.5.  ローカル番号

   ローカル番号とは、特定の地域内、または電話網の特定部分(PBX (Private 
   Branch Exchange)、州や地方、特定地域の交換キャリア、または特定の国な
   ど)でのみ一意な番号である。ローカル電話番号が含まれるURIは、その番号を
   ダイヤルソフトウェアに渡すと、すべてのローカルエンティティが通話を確立
   できる環境でのみ、使用すべきである。たとえば、外線にアクセスするときに
   必要な数字は、ローカル番号に含まれない。ローカル番号は、グローバル番号
   として表す方法がない場合を除き、使用すべきではない[SHOULD NOT]。

   ローカル番号は、いくつかの理由から使用すべきではない[SHOULD NOT]。ロー
   カル番号は、正しいコンテキスト記述を挿入および認識することができるよう
   に、発信元または受信者を適切に設定する必要がある。同じ記述子を単独で選
   択するアルゴリズムはないため、コンテキストで番号にラベルを付ける場合、
   誤設定の可能性が高くなる。結果的に、有効な識別子が誤って拒否される。記
   述子を選択するアルゴリズムは、偶然による衝突がほとんど発生しないように
   選択されたが、完全になくすことはできていない。

これは私たちが馴染みのある、電話番号そのもの(090-ABCD-EFGH)のこと(だと思う)。

ということは、グローバル表記なURIとしては、こうでいいのか?

<a href="tel:+81-90-ABC-DEFGH">tel:+81-90-ABC-DEFGH</a>

ただ残念ながら、手元のau(W53CA/EZweb)ではかかることはなかった…。

ローカル表記なURIとしてはこうのはず。

<a href="tel:090-ABC-DEFGH">tel:090-ABC-DEFGH</a>

これは当然の如く?かかった。

電話がかけられることと、一意な識別子は別ってことでしょうが、どうにもしっくりこない…